我在从文件中检索数据时遇到一些困难。首先,这是我创建文件的主要方法,当玩家登录服务器时将触发(稍后)。
// SettingsManager.java
private File file;
private FileConfiguration config;
// ...
public void createFile(String fileName) {
file = new File(UnderCovern.getPlugin().getDataFolder(), fileName + ".yml");
if ( !file.exists()) {
try {
file.createNewFile();
} catch (Exception e) {
UtilLogger.exception(e, "[SettingsManager] Could not create new file.");
}
}
config = YamlConfiguration.loadConfiguration(file);
}
该文件正在为每个用户(在另一个类中)正常创建,其名称作为文件名,如下所示。
SettingsManager.get().createFile(player.getName());
但是,我不知道如何为用户检索正确 .yml
文件,并从中检索数据。此代码块向我抛出一个 NullPointerException
。
public Rank getRank() {
if (SettingsManager.get().getConfig().get(player.getName()) != null)
return (Rank) SettingsManager.get().getConfig().get(player.getName() + ".Rank");
return null;
}
另请注意,我正在使用 Bukkit 框架。
最佳答案
你的方法:
public Rank getRank() {
if (SettingsManager.get().getConfig().get(player.getName()) != null)
return (Rank) SettingsManager.get().getConfig().get(player.getName() + ".Rank");
return null;
}
如果 if (SettingsManager.get().getConfig().get(player.getName()) != null)
等于 null,则返回 null。因此,该文件可能未创建,或者您尝试获取不存在的文件。我可以看看 .getConfig() 方法吗?
关于java - 检索播放器的正确文件和数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25533855/