diff --git a/Challenge/pom.xml b/Challenge/pom.xml index a04608c..2b6e31f 100644 --- a/Challenge/pom.xml +++ b/Challenge/pom.xml @@ -18,6 +18,12 @@ 1.0.0-SNAPSHOT provided + + de.fanta + ChallengeCore + 0.0.1-SNAPSHOT + provided + diff --git a/Challenge/src/main/java/de/fanta/challenge/challenges/ChallengeEvents/DifferentItemsChallenge.java b/Challenge/src/main/java/de/fanta/challenge/challenges/ChallengeEvents/DifferentItemsChallenge.java index 0b83fb5..583b9bc 100644 --- a/Challenge/src/main/java/de/fanta/challenge/challenges/ChallengeEvents/DifferentItemsChallenge.java +++ b/Challenge/src/main/java/de/fanta/challenge/challenges/ChallengeEvents/DifferentItemsChallenge.java @@ -1,7 +1,7 @@ package de.fanta.challenge.challenges.ChallengeEvents; import de.fanta.challenge.Challenge; -import de.fanta.challenge.events.ChallengeEventStatusChangedEvent; +import de.fanta.challenge.events.TimerChangedEvent; import de.fanta.challenge.guis.eventgui.BingoItemsGui; import de.fanta.challenge.scoreboard.ChallengePlayer; import de.fanta.challenge.scoreboard.ScoreManager; @@ -41,7 +41,7 @@ private static final Map bossBarMap = new HashMap<>(); @EventHandler - public void onActivation(ChallengeEventStatusChangedEvent event) { + public void onActivation(TimerChangedEvent event) { if (Objects.equals(Config.getString("event.type"), "differentitems")) { if (event.isRunning()) { for (Player pp : plugin.getVanish().getPlayerListWithoutVanishPlayers()) { diff --git a/Challenge/src/main/java/de/fanta/challenge/challenges/MobRemoveWorldChallenge.java b/Challenge/src/main/java/de/fanta/challenge/challenges/MobRemoveWorldChallenge.java index a6ebcd8..29ab94d 100644 --- a/Challenge/src/main/java/de/fanta/challenge/challenges/MobRemoveWorldChallenge.java +++ b/Challenge/src/main/java/de/fanta/challenge/challenges/MobRemoveWorldChallenge.java @@ -40,7 +40,7 @@ @EventHandler public void onTImerChange(TimerChangedEvent e) { if (Config.getBoolean("mobremoveworld")) { - if (plugin.getTimer().isRunning()) { + if (e.isRunning()) { startUpdateTask(); } else { stopUpdateTask(); diff --git a/Challenge/src/main/java/de/fanta/challenge/guis/savegui/ChallengeSaveGui.java b/Challenge/src/main/java/de/fanta/challenge/guis/savegui/ChallengeSaveGui.java index 2067be9..dfe9769 100644 --- a/Challenge/src/main/java/de/fanta/challenge/guis/savegui/ChallengeSaveGui.java +++ b/Challenge/src/main/java/de/fanta/challenge/guis/savegui/ChallengeSaveGui.java @@ -151,7 +151,7 @@ ItemStack item; if (player.hasPermission(saveSlot.getPermission())) { if (save.isDirectory()) { - File mapConfig = new File(save, "/Challenge/serverconfig.yml"); + File mapConfig = new File(getPluginFolder(save), "/serverconfig.yml"); Material displayItem = null; String displayName = null; YamlConfiguration serverConfig = new YamlConfiguration(); @@ -194,4 +194,28 @@ } 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/ChallengeUtils/pom.xml b/ChallengeUtils/pom.xml new file mode 100644 index 0000000..d8359a8 --- /dev/null +++ b/ChallengeUtils/pom.xml @@ -0,0 +1,26 @@ + + 4.0.0 + ChallengeUtils + + de.fanta.challengeutils.ChallengeUtils + + + ChallengeSystem + de.fanta + 0.0.1-SNAPSHOT + ../pom.xml + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.3.0 + + ${project.artifactId} + + + + + diff --git a/ChallengeUtils/src/main/resources/plugin.yml b/ChallengeUtils/src/main/resources/plugin.yml new file mode 100644 index 0000000..dc15486 --- /dev/null +++ b/ChallengeUtils/src/main/resources/plugin.yml @@ -0,0 +1,4 @@ +name: ChallengeUtils +version: '${project.version}' +main: de.fanta.challengeutils.ChallengeUtils +api-version: '1.20' diff --git a/Lobby/pom.xml b/Lobby/pom.xml index f074606..2e976ff 100644 --- a/Lobby/pom.xml +++ b/Lobby/pom.xml @@ -47,6 +47,12 @@ 0.0.1-SNAPSHOT provided + + de.fanta + ChallengeCore + 0.0.1-SNAPSHOT + provided + diff --git a/Lobby/src/main/java/de/fanta/lobby/Lobby.java b/Lobby/src/main/java/de/fanta/lobby/Lobby.java index 4816649..4ad1301 100644 --- a/Lobby/src/main/java/de/fanta/lobby/Lobby.java +++ b/Lobby/src/main/java/de/fanta/lobby/Lobby.java @@ -49,6 +49,7 @@ import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.Nullable; +import java.io.File; import java.nio.file.Path; import java.util.ArrayList; import java.util.HashMap; @@ -106,8 +107,19 @@ } @Override - public void onEnable() { + public void onLoad() { plugin = this; + File oldPluginFolder = new File("plugins/ChallengesJoinEntities"); + if (oldPluginFolder.isDirectory()) { + if (!oldPluginFolder.renameTo(new File("plugins/Lobby"))) { + getLogger().severe("ChallengesJoinEntities Ordner konnte nicht in Lobby umgenannt werden!"); + plugin.getServer().shutdown(); + } + } + } + + @Override + public void onEnable() { playerUUIDCache = (PlayerUUIDCache) getServer().getPluginManager().getPlugin("PlayerUUIDCache"); nmsUtils = getServer().getServicesManager().load(NMSUtils.class); @@ -137,7 +149,7 @@ this.config = new Config(this); loadCategoriesAndMaps(); - if (Bukkit.getPluginManager().getPlugin("Challenges") != null) { // Challenge server -> listen on Challenge events + if (Bukkit.getPluginManager().getPlugin("Challenge") != null) { // Challenge server -> listen on Challenge events Bukkit.getPluginManager().registerEvents(new ChallengesEventListener(this), this); } else { // Lobby server -> register commands CommandRouter router = new CommandRouter(getCommand("piglins")); diff --git a/Lobby/src/main/java/de/fanta/lobby/listeners/ChallengesEventListener.java b/Lobby/src/main/java/de/fanta/lobby/listeners/ChallengesEventListener.java index 437cfb4..e55a348 100644 --- a/Lobby/src/main/java/de/fanta/lobby/listeners/ChallengesEventListener.java +++ b/Lobby/src/main/java/de/fanta/lobby/listeners/ChallengesEventListener.java @@ -3,6 +3,7 @@ import de.fanta.challenge.events.EventStatusChangedEvent; import de.fanta.challenge.events.PlayerCountChangedEvent; import de.fanta.challenge.events.ServerStatusChangedEvent; +import de.fanta.challenge.events.TimerChangedEvent; import de.fanta.lobby.Lobby; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -16,7 +17,7 @@ } @EventHandler - public void onTimerChanged(de.fanta.challenge.events.TimerChangedEvent event) { + public void onTimerChanged(TimerChangedEvent event) { plugin.getGlobalDataHelper().sendTimerUpdate(event.isRunning()); } 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 341d6d7..4bf3ea7 100644 --- a/Lobby/src/main/java/de/fanta/lobby/loadgui/AdventureLoadGUI.java +++ b/Lobby/src/main/java/de/fanta/lobby/loadgui/AdventureLoadGUI.java @@ -182,7 +182,7 @@ ItemStack item; if (player.hasPermission(saveSlot.getPermission())) { if (save.isDirectory()) { - File mapConfig = new File(save, "/Challenges/serverconfig.yml"); + File mapConfig = new File(getPluginFolder(save), "/serverconfig.yml"); Material displayItem = null; String displayName = null; YamlConfiguration serverConfig = new YamlConfiguration(); @@ -219,4 +219,28 @@ } 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 2008505..5c14a53 100644 --- a/Lobby/src/main/java/de/fanta/lobby/loadgui/ChallengeLoadGUI.java +++ b/Lobby/src/main/java/de/fanta/lobby/loadgui/ChallengeLoadGUI.java @@ -56,7 +56,7 @@ case SAVE_1_INDEX -> { if (p.hasPermission("challenge.save.slot1")) { if (challengeSave1.isDirectory()) { - item = ItemUtil.createGuiItem(Material.MAP, ChatUtil.GREEN + "Save 1", ChatUtil.GREEN + "Klicken zum laden.", ChatUtil.GREEN + "Gespeichert am " + getFileDate(new File(challengeSave1 + "/Challenges/serverconfig.yml"))); + item = ItemUtil.createGuiItem(Material.MAP, ChatUtil.GREEN + "Save 1", ChatUtil.GREEN + "Klicken zum laden.", ChatUtil.GREEN + "Gespeichert am " + getFileDate(new File(getPluginFolder(challengeSave1), "/serverconfig.yml"))); } else { item = ItemUtil.createGuiItem(Material.LIME_STAINED_GLASS_PANE, ChatUtil.GREEN + "Frei"); } @@ -68,7 +68,7 @@ case SAVE_2_INDEX -> { if (p.hasPermission("challenge.save.slot2")) { if (challengeSave2.isDirectory()) { - item = ItemUtil.createGuiItem(Material.MAP, ChatUtil.GREEN + "Save 2", ChatUtil.GREEN + "Klicken zum laden.", ChatUtil.GREEN + "Gespeichert am " + getFileDate(new File(challengeSave2 + "/Challenges/serverconfig.yml"))); + item = ItemUtil.createGuiItem(Material.MAP, ChatUtil.GREEN + "Save 2", ChatUtil.GREEN + "Klicken zum laden.", ChatUtil.GREEN + "Gespeichert am " + getFileDate(new File(getPluginFolder(challengeSave2), "/serverconfig.yml"))); } else { item = ItemUtil.createGuiItem(Material.LIME_STAINED_GLASS_PANE, ChatUtil.GREEN + "Frei"); } @@ -80,7 +80,7 @@ case SAVE_3_INDEX -> { if (p.hasPermission("challenge.save.slot3")) { if (challengeSave3.isDirectory()) { - item = ItemUtil.createGuiItem(Material.MAP, ChatUtil.GREEN + "Save 3", ChatUtil.GREEN + "Klicken zum laden.", ChatUtil.GREEN + "Gespeichert am " + getFileDate(new File(challengeSave3 + "/Challenges/serverconfig.yml"))); + item = ItemUtil.createGuiItem(Material.MAP, ChatUtil.GREEN + "Save 3", ChatUtil.GREEN + "Klicken zum laden.", ChatUtil.GREEN + "Gespeichert am " + getFileDate(new File(getPluginFolder(challengeSave3), "/serverconfig.yml"))); } else { item = ItemUtil.createGuiItem(Material.LIME_STAINED_GLASS_PANE, ChatUtil.GREEN + "Frei"); } @@ -92,7 +92,7 @@ case SAVE_AUTO_INDEX -> { if (p.hasPermission("challenge.save.slotauto")) { if (challengeSaveAuto.isDirectory()) { - item = ItemUtil.createGuiItem(Material.CLOCK, ChatUtil.GREEN + "AutoSave", ChatUtil.GREEN + "Klicken zum laden.", ChatUtil.GREEN + "Gespeichert am " + getFileDate(new File(challengeSaveAuto + "/Challenges/serverconfig.yml"))); + item = ItemUtil.createGuiItem(Material.CLOCK, ChatUtil.GREEN + "AutoSave", ChatUtil.GREEN + "Klicken zum laden.", ChatUtil.GREEN + "Gespeichert am " + getFileDate(new File(getPluginFolder(challengeSaveAuto), "/serverconfig.yml"))); } else { item = ItemUtil.createGuiItem(Material.LIME_STAINED_GLASS_PANE, ChatUtil.GREEN + "AutoSave"); } @@ -216,4 +216,28 @@ 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; + } } diff --git a/Lobby/src/main/resources/plugin.yml b/Lobby/src/main/resources/plugin.yml index feeabdc..c01d91a 100644 --- a/Lobby/src/main/resources/plugin.yml +++ b/Lobby/src/main/resources/plugin.yml @@ -4,7 +4,7 @@ api-version: '1.20' depend: [GlobalClient, CubesideUtils, GlobalPort, CubesideNMSUtils] -softdepend: [Challenges, CubesideNPCs, SignGUI, ViaVersion, CubesideStatistics] +softdepend: [Challenge, CubesideNPCs, SignGUI, ViaVersion, CubesideStatistics] commands: piglins: diff --git a/pom.xml b/pom.xml index 085d95b..1462d2e 100644 --- a/pom.xml +++ b/pom.xml @@ -14,6 +14,7 @@ fanta, vollkorntomate + ChallengeUtils ChallengeCore Challenge Adventure