diff --git a/ChallengeUtils/src/main/java/de/fanta/challengeutils/FileUtils.java b/ChallengeUtils/src/main/java/de/fanta/challengeutils/FileUtils.java new file mode 100644 index 0000000..68c7f34 --- /dev/null +++ b/ChallengeUtils/src/main/java/de/fanta/challengeutils/FileUtils.java @@ -0,0 +1,51 @@ +package de.fanta.challengeutils; + +import de.iani.cubesideutils.StringUtil; +import org.bukkit.Bukkit; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.io.File; +import java.io.IOException; +import java.util.logging.Level; + +public class FileUtils { + public static File getPluginFolder(File saveSlot) { + File challengeFolder = null; + File challenges = new File(saveSlot, "/Challenges"); + File challenge = new File(saveSlot, "/Challenge"); + File adventure = new File(saveSlot, "/Adventure"); + if (challenges.isDirectory()) { + challengeFolder = challenges; + } else if (challenge.isDirectory()) { + challengeFolder = challenge; + } else if (adventure.isDirectory()) { + challengeFolder = adventure; + } + + if (challengeFolder == null) { + return null; + } + + if (!challengeFolder.isDirectory()) { + return null; + } + + return challengeFolder; + } + + public static String getFileDate(File serverConfigFile) { + return StringUtil.formatDate(getFileTime(serverConfigFile)); + } + + public static long getFileTime(File serverConfigFile) { + long saveTime; + YamlConfiguration serverConfiguration = new YamlConfiguration(); + try { + serverConfiguration.load(serverConfigFile); + } catch (IOException | org.bukkit.configuration.InvalidConfigurationException e) { + Bukkit.getLogger().log(Level.SEVERE, "Error while loading Server Config", e); + } + saveTime = serverConfiguration.getLong("saveTime", 0); + return saveTime; + } +} diff --git a/Lobby/src/main/java/de/fanta/lobby/commands/ChallengesCommand/ChallengeClearSavesCommand.java b/Lobby/src/main/java/de/fanta/lobby/commands/ChallengesCommand/ChallengeClearSavesCommand.java index f03c2fe..3389a22 100644 --- a/Lobby/src/main/java/de/fanta/lobby/commands/ChallengesCommand/ChallengeClearSavesCommand.java +++ b/Lobby/src/main/java/de/fanta/lobby/commands/ChallengesCommand/ChallengeClearSavesCommand.java @@ -5,16 +5,12 @@ import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.apache.commons.io.FileUtils; -import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.io.File; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.attribute.BasicFileAttributes; -import java.nio.file.attribute.FileTime; import java.util.Objects; import java.util.logging.Level; @@ -36,8 +32,7 @@ plugin.getServer().getScheduler().runTaskAsynchronously(plugin, () -> { File challengeSaveFolder = plugin.getChallengeSavePath().toFile(); //DELETE OLD ChallengeMaps if (challengeSaveFolder.isDirectory()) { - File[] playerFolders; - playerFolders = challengeSaveFolder.listFiles(); + File[] playerFolders = challengeSaveFolder.listFiles(); if (playerFolders != null) { int deletecounter = 0; long starttime = System.currentTimeMillis(); @@ -47,9 +42,8 @@ if (saveFolders != null) { try { for (File map : saveFolders) { - BasicFileAttributes attr = Files.readAttributes(map.toPath(), BasicFileAttributes.class); - FileTime fileTime = attr.creationTime(); - if (10368000000L + fileTime.toMillis() <= System.currentTimeMillis()) { //120 Tage + long fileTime = de.fanta.challengeutils.FileUtils.getFileTime(new File(de.fanta.challengeutils.FileUtils.getPluginFolder(map), "/serverconfig.yml")); + if (10368000000L + fileTime <= System.currentTimeMillis()) { //120 Tage FileUtils.deleteDirectory(map); deletecounter++; plugin.getComponentUtil().sendNormalMessage(p, "Welt " + playerFolder.getName() + "/" + map.getName() + " gelöscht. (" + deletecounter + ")"); diff --git a/Lobby/src/main/java/de/fanta/lobby/listeners/EntityListener.java b/Lobby/src/main/java/de/fanta/lobby/listeners/EntityListener.java index e26c3c8..de7599f 100644 --- a/Lobby/src/main/java/de/fanta/lobby/listeners/EntityListener.java +++ b/Lobby/src/main/java/de/fanta/lobby/listeners/EntityListener.java @@ -91,6 +91,12 @@ if (data == null) { return; } + + if (player.hasPermission("lobby.piglin.info") && player.isSneaking()) { + player.performCommand("piglin info " + serverName); + return; + } + switch (data.getServerStatus()) { case ONLINE: if (data.getPlayerCount() < data.getMaxPlayers()) { diff --git a/Lobby/src/main/java/de/fanta/lobby/loadgui/AdventureLoadGUI.java b/Lobby/src/main/java/de/fanta/lobby/loadgui/AdventureLoadGUI.java index 0f102b9..6043c99 100644 --- a/Lobby/src/main/java/de/fanta/lobby/loadgui/AdventureLoadGUI.java +++ b/Lobby/src/main/java/de/fanta/lobby/loadgui/AdventureLoadGUI.java @@ -1,6 +1,7 @@ package de.fanta.lobby.loadgui; import de.fanta.challengeutils.Color; +import de.fanta.challengeutils.FileUtils; import de.fanta.challengeutils.ItemUtils; import de.fanta.lobby.Lobby; import de.fanta.lobby.SaveSlot; @@ -173,7 +174,7 @@ ItemStack item; if (player.hasPermission(saveSlot.getPermission())) { if (save.isDirectory()) { - File mapConfig = new File(getPluginFolder(save), "/serverconfig.yml"); + File mapConfig = new File(FileUtils.getPluginFolder(save), "/serverconfig.yml"); Material displayItem = null; String displayName = null; YamlConfiguration serverConfig = new YamlConfiguration(); @@ -210,28 +211,4 @@ } return item; } - - private static File getPluginFolder(File saveSlot) { - File challengeFolder = null; - File challenges = new File(saveSlot, "/Challenges"); - File challenge = new File(saveSlot, "/Challenge"); - File adventure = new File(saveSlot, "/Adventure"); - if (challenges.isDirectory()) { - challengeFolder = challenges; - } else if (challenge.isDirectory()) { - challengeFolder = challenge; - } else if (adventure.isDirectory()) { - challengeFolder = adventure; - } - - if (challengeFolder == null) { - return null; - } - - if (!challengeFolder.isDirectory()) { - return null; - } - - return challengeFolder; - } } diff --git a/Lobby/src/main/java/de/fanta/lobby/loadgui/ChallengeLoadGUI.java b/Lobby/src/main/java/de/fanta/lobby/loadgui/ChallengeLoadGUI.java index f48ef61..4df7c99 100644 --- a/Lobby/src/main/java/de/fanta/lobby/loadgui/ChallengeLoadGUI.java +++ b/Lobby/src/main/java/de/fanta/lobby/loadgui/ChallengeLoadGUI.java @@ -1,6 +1,7 @@ package de.fanta.lobby.loadgui; import de.fanta.challengeutils.Color; +import de.fanta.challengeutils.FileUtils; import de.fanta.challengeutils.ItemUtils; import de.fanta.lobby.Lobby; import de.fanta.lobby.Server; @@ -53,7 +54,7 @@ case SAVE_1_INDEX -> { if (p.hasPermission("challenge.save.slot1")) { if (challengeSave1.isDirectory()) { - item = ItemUtils.createGuiItem(Material.MAP, Component.text("Save 1", Color.GREEN), Component.text("Klicken zum laden.", Color.GREEN), Component.text("Gespeichert am " + getFileDate(new File(getPluginFolder(challengeSave1), "/serverconfig.yml")), Color.GREEN)); + item = ItemUtils.createGuiItem(Material.MAP, Component.text("Save 1", Color.GREEN), Component.text("Klicken zum laden.", Color.GREEN), Component.text("Gespeichert am " + FileUtils.getFileDate(new File(FileUtils.getPluginFolder(challengeSave1), "/serverconfig.yml")), Color.GREEN)); } else { item = ItemUtils.createGuiItem(Material.LIME_STAINED_GLASS_PANE, Component.text("Frei", Color.GREEN)); } @@ -65,7 +66,7 @@ case SAVE_2_INDEX -> { if (p.hasPermission("challenge.save.slot2")) { if (challengeSave2.isDirectory()) { - item = ItemUtils.createGuiItem(Material.MAP, Component.text("Save 2", Color.GREEN), Component.text("Klicken zum laden.", Color.GREEN), Component.text("Gespeichert am " + getFileDate(new File(getPluginFolder(challengeSave2), "/serverconfig.yml")), Color.GREEN)); + item = ItemUtils.createGuiItem(Material.MAP, Component.text("Save 2", Color.GREEN), Component.text("Klicken zum laden.", Color.GREEN), Component.text("Gespeichert am " + FileUtils.getFileDate(new File(FileUtils.getPluginFolder(challengeSave2), "/serverconfig.yml")), Color.GREEN)); } else { item = ItemUtils.createGuiItem(Material.LIME_STAINED_GLASS_PANE, Component.text("Frei", Color.GREEN)); } @@ -77,7 +78,7 @@ case SAVE_3_INDEX -> { if (p.hasPermission("challenge.save.slot3")) { if (challengeSave3.isDirectory()) { - item = ItemUtils.createGuiItem(Material.MAP, Component.text("Save 3", Color.GREEN), Component.text("Klicken zum laden.", Color.GREEN), Component.text("Gespeichert am " + getFileDate(new File(getPluginFolder(challengeSave3), "/serverconfig.yml")), Color.GREEN)); + item = ItemUtils.createGuiItem(Material.MAP, Component.text("Save 3", Color.GREEN), Component.text("Klicken zum laden.", Color.GREEN), Component.text("Gespeichert am " + FileUtils.getFileDate(new File(FileUtils.getPluginFolder(challengeSave3), "/serverconfig.yml")), Color.GREEN)); } else { item = ItemUtils.createGuiItem(Material.LIME_STAINED_GLASS_PANE, Component.text("Frei", Color.GREEN)); ; @@ -90,7 +91,7 @@ case SAVE_AUTO_INDEX -> { if (p.hasPermission("challenge.save.slotauto")) { if (challengeSaveAuto.isDirectory()) { - item = ItemUtils.createGuiItem(Material.MAP, Component.text("Auto Save", Color.GREEN), Component.text("Klicken zum laden.", Color.GREEN), Component.text("Gespeichert am " + getFileDate(new File(getPluginFolder(challengeSaveAuto), "/serverconfig.yml")), Color.GREEN)); + item = ItemUtils.createGuiItem(Material.MAP, Component.text("Auto Save", Color.GREEN), Component.text("Klicken zum laden.", Color.GREEN), Component.text("Gespeichert am " + FileUtils.getFileDate(new File(FileUtils.getPluginFolder(challengeSaveAuto), "/serverconfig.yml")), Color.GREEN)); } else { item = ItemUtils.createGuiItem(Material.LIME_STAINED_GLASS_PANE, Component.text("AutoSave", Color.GREEN)); } @@ -194,43 +195,4 @@ } } } - - private static String getFileDate(File serverConfigFile) { - long saveTime; - YamlConfiguration serverConfiguration = new YamlConfiguration(); - if (!serverConfigFile.exists()) { - saveTime = 0; - } - try { - serverConfiguration.load(serverConfigFile); - } catch (IOException | org.bukkit.configuration.InvalidConfigurationException e) { - plugin.getLogger().log(Level.SEVERE, "Error while loading Server Config", e); - } - saveTime = serverConfiguration.getLong("saveTime", 0); - return StringUtil.formatDate(saveTime); - } - - private File getPluginFolder(File saveSlot) { - File challengeFolder = null; - File challenges = new File(saveSlot, "/Challenges"); - File challenge = new File(saveSlot, "/Challenge"); - File adventure = new File(saveSlot, "/Adventure"); - if (challenges.isDirectory()) { - challengeFolder = challenges; - } else if (challenge.isDirectory()) { - challengeFolder = challenge; - } else if (adventure.isDirectory()) { - challengeFolder = adventure; - } - - if (challengeFolder == null) { - return null; - } - - if (!challengeFolder.isDirectory()) { - return null; - } - - return challengeFolder; - } }