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