我正在試圖製作一個用YML文件存儲用戶數據的Bukkit/Spigot插件,並且我無法在用戶創建文件時創建一個列表連接。我正在使用內置的解析器。正在創建文件,但FileConfiguration沒有在其中添加文本
驗證碼:
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
File f;
f = new File(getDataFolder(), "UserData/" + p.getUniqueId() + ".yml");
if (!f.exists()) {
try {
f.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
FileConfiguration mapconfig = YamlConfiguration.loadConfiguration(new File(getDataFolder() + "UserData/" + p.getUniqueId() + ".yml"));
mapconfig.createSection("Mobs");
mapconfig.set("Mobs", "mob1");
Bukkit.getServer().getLogger().info("[Morph] Creating new user file " + p.getUniqueId() + "for user " + p.getName());
}
}
中的文件被創建,但都是空的。
Mobs:
- mob1
我需要該部分爲空。我究竟做錯了什麼?
更新代碼--------------------
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
File f;
f = new File(getDataFolder(), "UserData/" + p.getUniqueId() + ".yml");
if (!f.exists()) {
try {
f.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
FileConfiguration mapconfig = YamlConfiguration.loadConfiguration(new File(getDataFolder() + "UserData/" + p.getUniqueId() + ".yml"));
mapconfig.createSection("Mobs");
List<String> ListOfStrings = Arrays.asList("mob1");
mapconfig.set("Mobs", ListOfStrings);
try {
mapconfig.save(getDataFolder() + "UserData/" + p.getUniqueId() + ".yml");
} catch (IOException e1) {
e1.printStackTrace();
}
Bukkit.getServer().getLogger().info("[Morph] Creating new user file " + p.getUniqueId() + "for user " + p.getName());
}
}
我已經用我現在的代碼更新了主題。它仍然不起作用,它只是創建文件,沒有任何內容,甚至沒有列表的開始。我究竟做錯了什麼? – BumbleBee
您是否在運行之間刪除了該文件,該代碼僅在該文件不存在時才運行。 – JimW
是的,在測試之前每次都將其移除 – BumbleBee