在编写我的bukkit插件时,我意识到我需要拥有自己的配置文件,所以我可以在文件中添加注释。我还需要能够更新配置(如果它已经创建并且已经过时)。
我最近也完成了一个简单的jQuery插件,我使用jQuery.extend
并合并了两个设置数组。我想知道在带有配置文件的java中这是否可行。
我的问题:
Is there a way i can merge the new default config with the one the user already has? (Removing non-needed values or changing the names of the same strings)
对问题的解释:
以下是我可能拥有的一个示例config.yml:
# Comment here....
myString: defaultString
myBool: false
myList:
- Value
- Value 2
非常简单。让我们说这是我的默认配置。该插件已在插件文件夹中复制了此配置(如果它尚未存在)。但是,这提出了一个问题:
What if i need to update my config? (Add/Remove a bool, string, etc.)
有一天,我说"我不再需要那个布尔myBool
"。我从默认的config.yml中删除它,配置看起来像这样:
# Comment here....
myString: defaultString
myList:
- Value
- Value 2
或者,我可能需要添加额外的字符串myNewString
:
# Comment here....
myString: defaultString
myNewString: string
myList:
- Value
- Value 2
如果我将配置yml重写为我的新"默认"配置文件,我将丢失所有用户的配置设置。
Is there a way i can merge the new default config with the one the user already has and just add the new string with the default values?
答案 0 :(得分:0)
Bukkit有一个内置的YamlConfiguration
类,其中包含允许您获取值或指定默认值的方法(如果不存在),例如getString(String path, String default)。
按路径获取请求的String,如果找不到则返回默认值。
如果String不存在,则无论是否在根配置中标识了缺省值,都将返回指定的缺省值。
但是它没有办法从配置中删除值。如果新配置与前一个配置有很大不同,您可以考虑创建新配置,删除旧配置并重新命名新配置以进行配置。虽然我不会太在意它,除非它有很大的不同。