diff --git a/src/main/java/de/fanta/challenges/Challenges.java b/src/main/java/de/fanta/challenges/Challenges.java index 7c29f2f..9a1f424 100644 --- a/src/main/java/de/fanta/challenges/Challenges.java +++ b/src/main/java/de/fanta/challenges/Challenges.java @@ -67,6 +67,7 @@ public FileConfiguration RndDropsConfig; public FileConfiguration AllItemsConfig; public FileConfiguration ServerConfig; + public File serverConfigFile; public RandomDropsChallenge rndDrops; public NMSUtils nmsUtils; public PlayerUUIDCache playerUUIDCache; @@ -380,8 +381,16 @@ return ServerConfig; } + public void saveServerConfig() { + try { + ServerConfig.save(serverConfigFile); + } catch (IOException e) { + getLogger().log(Level.SEVERE, "Error while saving Server Config", e); + } + } + private void createServerConfig() { - File serverConfigFile = new File(getDataFolder(), "serverconfig.yml"); + serverConfigFile = new File(getDataFolder(), "serverconfig.yml"); if (!serverConfigFile.exists()) { serverConfigFile.getParentFile().mkdirs(); saveResource("serverconfig.yml", false); diff --git a/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java b/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java index b898988..43539e5 100644 --- a/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java +++ b/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java @@ -265,8 +265,10 @@ } public static void stopTask() { - task.cancel(); - task = null; + if (task != null) { + task.cancel(); + task = null; + } } record MLGInfo(ItemStack[] content, Location location) { diff --git a/src/main/java/de/fanta/challenges/guis/savegui/ChallengeSaveGui.java b/src/main/java/de/fanta/challenges/guis/savegui/ChallengeSaveGui.java index 570e41a..a962c4b 100644 --- a/src/main/java/de/fanta/challenges/guis/savegui/ChallengeSaveGui.java +++ b/src/main/java/de/fanta/challenges/guis/savegui/ChallengeSaveGui.java @@ -146,15 +146,8 @@ } } - private static String getFileDate(File file) { - FileTime fileTime; - try { - BasicFileAttributes attr = Files.readAttributes(file.toPath(), BasicFileAttributes.class); - fileTime = attr.creationTime(); - } catch (IOException e) { - throw new RuntimeException(e); - } - return StringUtil.formatDate(fileTime.toMillis()); + private static String getFileDate(YamlConfiguration serverConfig) { + return StringUtil.formatDate(serverConfig.getLong("saveTime", 0)); } private static ItemStack getDisplayItem(Player player, SaveSlot saveSlot, File save) { @@ -164,8 +157,8 @@ File mapConfig = new File(save, "/Challenges/serverconfig.yml"); Material displayItem = null; String displayName = null; + YamlConfiguration serverConfig = new YamlConfiguration(); try { - YamlConfiguration serverConfig = new YamlConfiguration(); serverConfig.load(mapConfig); String itemType = serverConfig.getString("displayItem.item"); String itemName = serverConfig.getString("displayItem.name"); @@ -187,9 +180,9 @@ meta.displayName(displayName != null ? Component.text(displayName) : Component.text("Save " + saveSlot.getSlot(), ChatUtil.GREEN)); if (saveSlot == SaveSlot.SLOT_AUTO) { - meta.lore(List.of(Component.text("AutoSave kann nicht überschrieben werden!", ChatUtil.RED), Component.text("Gespeichert am " + getFileDate(save), ChatUtil.GREEN))); + meta.lore(List.of(Component.text("AutoSave kann nicht überschrieben werden!", ChatUtil.RED), Component.text("Gespeichert am " + getFileDate(serverConfig), ChatUtil.GREEN))); } else { - meta.lore(List.of(Component.text("Gespeichert am " + getFileDate(save), ChatUtil.GREEN))); + meta.lore(List.of(Component.text("Gespeichert am " + getFileDate(serverConfig), ChatUtil.GREEN))); } stack.setItemMeta(meta); diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java index 18e0561..f6fc22c 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java @@ -153,7 +153,6 @@ } else if (event.isRightClick()) { new MLGSettingsGui(player).open(); } - } case WORLD_BORDER_LEVEL_INDEX -> { if (event.isLeftClick()) { diff --git a/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java b/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java index 670344c..a409453 100644 --- a/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java +++ b/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java @@ -58,6 +58,8 @@ return; } isSavingWorld = true; + plugin.getServerConfig().set("saveTime", System.currentTimeMillis()); + plugin.saveServerConfig(); Config.setValue("timertime", Challenges.getPlugin().getTimer().getTime()); Config.setValue("backpack_size", Challenges.getPlugin().getBackpack().getSize() / 9); Challenges.getPlugin().getBackpack().saveInventoryToConfig();