用另一个路径加载.yml文件

时间:2013-03-16 10:45:03

标签: plugins load yaml messages minecraft

实际上,我需要一些帮助。 我开始编写一个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的指定消息,该消息应该被发送到播放器运行命令。

我希望你能理解我的问题是什么。 是的,我的英语太可怕了。为此而战。

1 个答案:

答案 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字段添加到配置类中。