检索播放器的正确文件和数据

时间:2014-08-27 17:47:52

标签: java bukkit

我在从文件中检索数据时遇到一些困难。首先,这是我创建文件的主要方法,当玩家登录服务器时将会触发(稍后)。

// 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框架。

1 个答案:

答案 0 :(得分:1)

你的方法:

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()方法吗?