2

事实上,我需要一些帮助。我开始编写我的世界插件,即使我是 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 获取指定的消息,因为消息应该发送给运行命令的玩家。

我希望你能理解我的问题。是的,我的英语很糟糕。对此感到抱歉。

4

1 回答 1

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 字段。

于 2015-08-12T11:41:24.333 回答