首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的世界插件中读/写.yml文件?

如何在我的世界插件中读/写.yml文件?
EN

Stack Overflow用户
提问于 2021-02-22 05:34:14
回答 1查看 56关注 0票数 0

所以我想做一个.yml文件,用来存储所有被命令拖拽的玩家(例如/toggleblind Gustav_G)。它应该看起来像这样:

代码语言:javascript
复制
2aed-6cdff32-1abaef9-de85f4a-ec66b7:
    - name: Gustav_G
    trolls:
      - SLOW
      - BLINDNESS
2aed-6ca4532-1acf4f9-debb5fa-eaf2b7:
    - name: Marvin_M
    trolls:
      - NOPICKAXE
      - NOJUMP

我已经创建了一个playerDataFile对象,通过它我可以访问该文件:

代码语言:javascript
复制
public abstract class AbstractFile {
    protected Main main;
    private File file;
    protected FileConfiguration config;
    
    public AbstractFile(Main main, String fileName)
    {
        this.main = main;
        this.file = new File(main.getDataFolder(), fileName);
        if(!file.exists())
        {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        
        }
        this.config = YamlConfiguration.loadConfiguration(file);
    }
    public void save()
    {
        try {
            config.save(file);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }   
}

代码语言:javascript
复制
public class PlayerDataFile extends AbstractFile{

    public PlayerDataFile(Main main) {
        super(main, "playerdata.yml");
    }
    
    
    public FileConfiguration get()
    {
        return config;
    }
    
}

我的问题是,我如何将一个玩家添加到这个文件中,我如何检查他是否已经在这个文件中,我如何才能看到他有哪些巨魔,以及如何检查他是否有一个特定的巨魔,如何从那个文件中的玩家中删除一个巨魔等等。我做了很多研究,但我很沮丧地尝试了所有的方法,因为我每次编辑插件时都必须重新启动服务器……

EN

回答 1

Stack Overflow用户

发布于 2021-03-12 09:13:11

您正在寻找的是一种重新加载文件中缓存数据的方法,这可以通过以下代码轻松完成:

代码语言:javascript
复制
this.config = YamlConfiguration.loadConfiguration(file);

尝试在一个方法中使用它,如下所示:

代码语言:javascript
复制
public void reloadConfig(){
    this.config = YamlConfiguration.loadConfiguration(file);
}

但是每X次重新加载文件会浪费资源,所以我建议您首先创建一个列表或映射来存储临时数据,在禁用插件之前将临时数据保存在配置文件中,在加载时将配置文件加载到映射或列表中。但您应该主要编辑配置的缓存版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66307358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档