3维地图
3 Dimensional map
我有这个代码:
File folder = new File(getDataFolder() + "/messages");
String[] fileNames = folder.list();
for (int i = 0; i < fileNames.length; i++) {
configManager.loadConfigFile("messages/" + fileNames[i]);
String lang = fileNames[i].substring(8, fileNames[i].length() - 4);
YamlConfiguration messagesConfig = configManager.getConfig("messages/" + fileNames[i]);
messagesConfigs.put(lang, messagesConfig);
}
private static Map<String, Map<String, String>> messages = new HashMap<String, Map<String, String>>();
public void loadMessages(String lang) {
for (String mes : PluginBase.plugin.messagesConfigs.get(lang).getKeys(false)) {
messages.put(lang, new HashMap<String, String>().put(mes, PluginBase.plugin.messagesConfigs.get(lang).getString(mes)));
}
}
public static String getMessage(String lang, String id) {
return messages.get(lang).get(id);
}
我有语言、来电者和消息者("us" -> "nopermission" -> "You do not have a permission!")。当我打电话给 getMessage(String lang, String caller)
时,我想收到语言 lang
和来电者 caller
的消息。当前代码在第 messages.put(lang, new HashMap<String, String>().put(mes, PluginBase.plugin.messagesConfigs.get(lang).getString(mes)));
行出错
非常感谢。
您收到该错误是因为 HashMap.put()
在空地图中 return 没有任何内容。
如果你想解决这个问题,而不是使用:
messages
.put(
lang,
new HashMap<String, String>()
.put(
mes,
PluginBase.plugin.messagesConfigs.get(lang).getString(mes)
)
);
你应该使用:
Map<String, String> message = new HashMap<String, String>();
message.put(mes, PluginBase.plugin.messagesConfigs.get(lang).getString(mes));
messages.put(lang, message);
我有这个代码:
File folder = new File(getDataFolder() + "/messages");
String[] fileNames = folder.list();
for (int i = 0; i < fileNames.length; i++) {
configManager.loadConfigFile("messages/" + fileNames[i]);
String lang = fileNames[i].substring(8, fileNames[i].length() - 4);
YamlConfiguration messagesConfig = configManager.getConfig("messages/" + fileNames[i]);
messagesConfigs.put(lang, messagesConfig);
}
private static Map<String, Map<String, String>> messages = new HashMap<String, Map<String, String>>();
public void loadMessages(String lang) {
for (String mes : PluginBase.plugin.messagesConfigs.get(lang).getKeys(false)) {
messages.put(lang, new HashMap<String, String>().put(mes, PluginBase.plugin.messagesConfigs.get(lang).getString(mes)));
}
}
public static String getMessage(String lang, String id) {
return messages.get(lang).get(id);
}
我有语言、来电者和消息者("us" -> "nopermission" -> "You do not have a permission!")。当我打电话给 getMessage(String lang, String caller)
时,我想收到语言 lang
和来电者 caller
的消息。当前代码在第 messages.put(lang, new HashMap<String, String>().put(mes, PluginBase.plugin.messagesConfigs.get(lang).getString(mes)));
非常感谢。
您收到该错误是因为 HashMap.put()
在空地图中 return 没有任何内容。
如果你想解决这个问题,而不是使用:
messages
.put(
lang,
new HashMap<String, String>()
.put(
mes,
PluginBase.plugin.messagesConfigs.get(lang).getString(mes)
)
);
你应该使用:
Map<String, String> message = new HashMap<String, String>();
message.put(mes, PluginBase.plugin.messagesConfigs.get(lang).getString(mes));
messages.put(lang, message);