我正在做一個Minecraft Bukkit插件,並且我的配置文件有問題。配置文件給我值隨意類
當我嘗試從配置中獲取值時,使用getConfig().getString(path)
,它可以很好地工作。但現在,我想從我的配置加載隊的名單中,YAML,它們分別是:
teams:
list:
- ArnyminerZ
ArnyminerZ:
players: []
prefix: ''
suffix: ''
dispname: ArnyminerZ
seeinvbuddies: false
friendlyfire: false
color: WHITE
起初,我是用for(String team : config.createSection("teams").getKeys(false))
,和它的工作,但suddently,一些修改後,它停止工作,我改變了我的方法加載一個字符串列表,我不知道爲什麼,它有點奇怪。
在我onEnable()
方法,我有這樣的:
public FileConfiguration config;
public static AlcoasUHC plugin;
@Override
public void onEnable() {
plugin = this;
config = this.getConfig();
loadConfigDefaults();
getLogger().info("Alcoas UHC -> Enabled! There are " + scoreboard.getTeams().size() + " teams registered.");
}
而且在外部類中,我有方法getTeams()
:
public List<String> getTeams() {
return plugin.config.getStringList("teams.list");
}
的loadConfigDefaults()
方法只加載某些特定值的配置,與config.addDefault(path, value);
和config.options().copyDefaults(false);
。
在這第一種方法中,加載工作正常,它調試Alcoas UHC -> Enabled! There are 1 teams registered.
。但是,當我嘗試再次裝入球隊,例如,在這種方法:
} else if (args[0].equalsIgnoreCase("teams")) {
List<String> teams = scoreboard.getTeams();
if (teams.size() <= 0) {
SendMessage.sendMessage(sender,
config.getString("messages.anyTeamCreated"));
} else {
StringBuilder printingTeams = new StringBuilder();
for (String team : scoreboard.getTeams()) {
if (teams.toString().equals("")) {
printingTeams.append(AndColor.GOLD).append(team);
} else {
printingTeams.append(AndColor.GREEN).append(", ").append(AndColor.GOLD).append(team);
}
}
SendMessage.sendMessage(sender, config.getString("messages.availableTeams").replace("%at%", printingTeams));
}
}
它返回我的空單在服務器日誌,並在遊戲運行此行config.getString("messages.anyTeamCreated"));
,這意味着名單空。
我該怎麼辦?難道我做錯了什麼?
我使用的服務器git-Spigot-549c1fa-45c8386
,實現API版本1.12.2-R0.1-SNAPSHOT
,與我的世界1.12.2,但我是
IntelliJ IDEA 2017.3.1 (Community Edition)
Build #IC-173.3942.27, built on December 11, 2017
JRE: 1.8.0_152-release-1024-b8 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
'createSection'將覆蓋任何設置值。而是使用'getConfigurationSection'。還要加載一次團隊列表,然後在所有計算中使用該列表,而不是每次使用時從配置中加載 – Squiddie
好的。我要試一試 –
確定,完美的工作,謝謝。 –