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

标签 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 框架。

最佳答案

你的方法:

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/

相关文章:

java - Spigot API - 从玩家获取多个字符串

java - 如何将方 block 放到方 block 面前面?

java - Bukkit 记分板行为怪异

java - 是否可以设置 Twilio 验证 api token 到期时间?

java - 贾夫、卢塞恩 : Search with numbers as String not working

java - 单击两次按钮的持续时间返回错误值

java - 保存玩家库存

java - Bukkit 掉落爆炸 block

java - 多线程的 sleep() 方法和 yield() 方法有什么区别?

java - Selenium 2 chrome 驱动程序首选项 java 等同于 RubyBindings