所以我想做一个.yml文件,用来存储所有被命令拖拽的玩家(例如/toggleblind Gustav_G)。它应该看起来像这样:
2aed-6cdff32-1abaef9-de85f4a-ec66b7:
- name: Gustav_G
trolls:
- SLOW
- BLINDNESS
2aed-6ca4532-1acf4f9-debb5fa-eaf2b7:
- name: Marvin_M
trolls:
- NOPICKAXE
- NOJUMP我已经创建了一个playerDataFile对象,通过它我可以访问该文件:
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();
}
}
}和
public class PlayerDataFile extends AbstractFile{
public PlayerDataFile(Main main) {
super(main, "playerdata.yml");
}
public FileConfiguration get()
{
return config;
}
}我的问题是,我如何将一个玩家添加到这个文件中,我如何检查他是否已经在这个文件中,我如何才能看到他有哪些巨魔,以及如何检查他是否有一个特定的巨魔,如何从那个文件中的玩家中删除一个巨魔等等。我做了很多研究,但我很沮丧地尝试了所有的方法,因为我每次编辑插件时都必须重新启动服务器……
发布于 2021-03-12 09:13:11
您正在寻找的是一种重新加载文件中缓存数据的方法,这可以通过以下代码轻松完成:
this.config = YamlConfiguration.loadConfiguration(file);尝试在一个方法中使用它,如下所示:
public void reloadConfig(){
this.config = YamlConfiguration.loadConfiguration(file);
}但是每X次重新加载文件会浪费资源,所以我建议您首先创建一个列表或映射来存储临时数据,在禁用插件之前将临时数据保存在配置文件中,在加载时将配置文件加载到映射或列表中。但您应该主要编辑配置的缓存版本。
https://stackoverflow.com/questions/66307358
复制相似问题