实际上,我需要一些帮助。
我开始编写一个Minecraft插件,即使我是java的初学者。
我想加载一个.yml文件的内容,该文件有另一个路径作为默认文件。据我所知,我需要使用.getString(String)
。但我不知道如何设置另一条路径并立即使用getString。
加载语言的方法
public void loadLanguage() throws IOException {
String language = this.getConfig().getString("language");
InputStream lang = this.getClass().getClassLoader().getResourceAsStream("languages/" + language + ".yml");
YamlConfiguration langfile = YamlConfiguration.loadConfiguration(lang);
langfile.options().copyDefaults(true);
langfile.save("plugins/Costumized/languages/" + language + ".yml");
}
在主要部分,我需要获取带有getString的指定消息,该消息应该被发送到播放器运行命令。
我希望你能理解我的问题是什么。 是的,我的英语太可怕了。为此而战。
答案 0 :(得分:0)
您可以使用我的SpigotLib插件轻松进行配置管理:
https://www.spigotmc.org/resources/spigotlib.5925/
为了处理它的几个配置,为了简单起见,你应该使用静态字段为每个配置创建新类。 您可以按如下方式保存和加载配置onEnable:
ConfigFile kf1,kf2;
public void onEnable()
{
SU.saveResources(this, "config.yml", "config2.yml");
kf1=new ConfigFile(new File(getDataFolder()+File.separator+"config1.yml");
kf2=new ConfigFile(new File(getDataFolder()+File.separator+"config2.yml");
kf1.data.deserialize(Config1.class);
kf2.data.deserialize(Config2.class);
SU.pm.registerEvents(this, this);
}
配置保存也非常简单:
public void onDisable()
{
kf1.save();
kf2.save();
}
因此,您将不再需要使用get或set等配置设置,您可以拥有任何类型的数据结构,这些数据结构由SpigotLib自动处理。因此,如果您只需要存储一些字符串,则可以将hashmap字段添加到配置类中。