本帖最后由 Mucrazy 于 2019-10-26 19:00 编辑
PlayerJoinEvent ePlayer p = e.getPlayer();
ConfigurationSection cs = Main.getInstance().getConfig();
if (!cs.contains(p.getName)) {
cs.set(p.getName+".xx",Boolean.valueOf(false));
File file = new File(Main.getInstance().getDataFolder(), "PlayerData.yml");
try {
Main.getInstance().getConfig().save(file);
} catch (IOException ex) {
ex.printStackTrace();
}
}
到这里PlayerData.yml里就是
PlayerName:
xx:false
里面的值修改后退出在进cs.contains(p.getName) =true,但是重启服务器后在进cs.contains(p.getName) 就会=False
求解
楼下答案不hao使,问题已自行解决
答案:
File file = new File(Main.getInstance().getDataFolder(), "PlayerData.yml");
FileConfiguration fc = file.exists()?YamlConfiguration.loadConfiguration(file):new YamlConfiguration();
if (!fc.contains(p.getName)) {
fc.set(String.valueOf(p2) + ".Achievement.Shoes", Boolean.valueOf(false));
}
PlayerJoinEvent ePlayer p = e.getPlayer();
ConfigurationSection cs = Main.getInstance().getConfig();
if (!cs.contains(p.getName)) {
cs.set(p.getName+".xx",Boolean.valueOf(false));
File file = new File(Main.getInstance().getDataFolder(), "PlayerData.yml");
try {
Main.getInstance().getConfig().save(file);
} catch (IOException ex) {
ex.printStackTrace();
}
}
到这里PlayerData.yml里就是
PlayerName:
xx:false
里面的值修改后退出在进cs.contains(p.getName) =true,但是重启服务器后在进cs.contains(p.getName) 就会=False
求解
楼下答案不hao使,问题已自行解决
答案:
File file = new File(Main.getInstance().getDataFolder(), "PlayerData.yml");
FileConfiguration fc = file.exists()?YamlConfiguration.loadConfiguration(file):new YamlConfiguration();
if (!fc.contains(p.getName)) {
fc.set(String.valueOf(p2) + ".Achievement.Shoes", Boolean.valueOf(false));
}
本帖最后由 TheRam_ 于 2019-10-26 14:28 编辑
复制代码
- Player p = e.getPlayer();
- File file = new File(new File(Main.getInstance().getDataFolder(),"/").getAbsolutePath() + "/PlayerData.yml");
- FileConfiguration config = YamlConfiguration.loadConfiguration(file);
- Boolean exist = config.getConfigurationSection("PlayerData").getKeys(false).contains(p.getName());
本帖最后由 a1294790523 于 2019-10-26 18:54 编辑
不推荐这种方法,这样你每次玩家加入的时候就载入一遍配置文件,还有不必要的对象创建
还有潜在的不兼容linux系统的问题.....
应该将FileConfiguration缓存在内存中,在服务器开启时读取,在服务器关闭时才进行更新
还有,为什么你要以默认的配置文件为模板保存玩家数据....
不推荐这种方法,这样你每次玩家加入的时候就载入一遍配置文件,还有不必要的对象创建
还有潜在的不兼容linux系统的问题.....
应该将FileConfiguration缓存在内存中,在服务器开启时读取,在服务器关闭时才进行更新
还有,为什么你要以默认的配置文件为模板保存玩家数据....
a1294790523 发表于 2019-10-26 18:47
不推荐这种方法,这样你每次玩家加入的时候就载入一遍配置文件,还有不必要的对象创建
还有潜在的不兼容li ...
请问如何在关闭时更新指定的配置文件呢?我只知道saveDefaultConfig(),但是这是保存Config.yml来着qwq