diff --git a/pom.xml b/pom.xml
index 0bfe29b..2166e1c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
de.fanta.challenges
ChallengesJoinEntities
- 1.18.2
+ 1.19
UTF-8
UTF-8
@@ -27,7 +27,7 @@
io.papermc.paper
paper-api
- 1.18.2-R0.1-SNAPSHOT
+ 1.19-R0.1-SNAPSHOT
provided
diff --git a/src/main/java/de/fanta/challengesjoinentities/Server.java b/src/main/java/de/fanta/challengesjoinentities/Server.java
index b5385be..a98e007 100644
--- a/src/main/java/de/fanta/challengesjoinentities/Server.java
+++ b/src/main/java/de/fanta/challengesjoinentities/Server.java
@@ -65,16 +65,13 @@
return this.gPLocation;
}
- public void loadSaved(Player p, Boolean isAutosave) {
+ public void loadSaved(Player p, String slot) {
this.online = true;
serverPlayers.put(this, p.getUniqueId());
UUID uuid = p.getUniqueId();
File dir;
- if (isAutosave) {
- dir = new File("/home/minecraft/" + this.serverType.getDir() + "/" + uuid + "/autosave");
- } else {
- dir = new File("/home/minecraft/" + this.serverType.getDir() + "/" + uuid + "/1");
- }
+ dir = new File("/home/minecraft/" + this.serverType.getDir() + "/" + uuid + "/" + slot);
+
if (!dir.isDirectory()) {
ChatUtil.sendErrorMessage(p, "Du hast noch keine Map gespeichert!");
this.online = false;
@@ -82,24 +79,18 @@
return;
}
- if (isAutosave) {
- load(p, this.serverType.getDir(), uuid + "/autosave", getMapVersion(new File(dir + "/Challenges/serverconfig.yml"))); //TODO LOAD VERSION FROM ADVENTURE CONFIG
- } else {
- load(p, this.serverType.getDir(), uuid + "/1", getMapVersion(new File(dir + "/Challenges/serverconfig.yml"))); //TODO LOAD VERSION FROM ADVENTURE CONFIG
- }
+
+ load(p, this.serverType.getDir(), uuid + "/" + slot, getMapVersion(new File(dir + "/Challenges/serverconfig.yml"))); //TODO LOAD VERSION FROM ADVENTURE CONFIG
+
}
- public void loadSaved(Player p, String mapname, Boolean isAutosave) {
+ public void loadSaved(Player p, String mapname, String slot) {
this.online = true;
serverPlayers.put(this, p.getUniqueId());
File dir;
- if (isAutosave) {
- dir = new File("/home/minecraft/" + this.serverType.getDir() + "/" + mapname + "/autosave");
- mapname = mapname + "/autosave";
- } else {
- dir = new File("/home/minecraft/" + this.serverType.getDir() + "/" + mapname + "/1");
- mapname = mapname + "/1";
- }
+ dir = new File("/home/minecraft/" + this.serverType.getDir() + "/" + mapname + "/" + slot);
+ mapname = mapname + "/" + slot;
+
if (!dir.isDirectory()) {
ChatUtil.sendErrorMessage(p, "Map " + mapname + " nicht gefunden!");
@@ -124,44 +115,46 @@
}
public void load(Player p, String serverTypeDir, String targetDir, String ServerVersion) {
- File configs = new File("/home/minecraft/" + this.dir + "/plugins/Challenges");
- File end = new File("/home/minecraft/" + this.dir + "/world_the_end");
- File nether = new File("/home/minecraft/" + this.dir + "/world_nether");
- File world = new File("/home/minecraft/" + this.dir + "/world");
- File mlgworld = new File("/home/minecraft/" + this.dir + "/mlg_challenge");
- File serverJar = new File("/home/minecraft/" + this.dir + "/paper.jar");
- File saveServerJar = new File("/home/minecraft/ServerJars/" + ServerVersion + "/paper.jar");
- File saveend = new File("/home/minecraft/" + serverTypeDir + "/" + targetDir + "/world_the_end");
- File savenether = new File("/home/minecraft/" + serverTypeDir + "/" + targetDir + "/world_nether");
- File saveworld = new File("/home/minecraft/" + serverTypeDir + "/" + targetDir + "/world");
- File saveconfigs = new File("/home/minecraft/" + serverTypeDir + "/" + targetDir + "/Challenges");
- ChatUtil.sendNormalMessage(p, "Versuche Map zu laden!");
- try {
- if (world.isDirectory()) {
- FileUtils.deleteDirectory(world);
- FileUtils.deleteDirectory(end);
- FileUtils.deleteDirectory(nether);
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
+ File configs = new File("/home/minecraft/" + this.dir + "/plugins/Challenges");
+ File end = new File("/home/minecraft/" + this.dir + "/world_the_end");
+ File nether = new File("/home/minecraft/" + this.dir + "/world_nether");
+ File world = new File("/home/minecraft/" + this.dir + "/world");
+ File mlgworld = new File("/home/minecraft/" + this.dir + "/mlg_challenge");
+ File serverJar = new File("/home/minecraft/" + this.dir + "/paper.jar");
+ File saveServerJar = new File("/home/minecraft/ServerJars/" + ServerVersion + "/paper.jar");
+ File saveend = new File("/home/minecraft/" + serverTypeDir + "/" + targetDir + "/world_the_end");
+ File savenether = new File("/home/minecraft/" + serverTypeDir + "/" + targetDir + "/world_nether");
+ File saveworld = new File("/home/minecraft/" + serverTypeDir + "/" + targetDir + "/world");
+ File saveconfigs = new File("/home/minecraft/" + serverTypeDir + "/" + targetDir + "/Challenges");
+ ChatUtil.sendNormalMessage(p, "Versuche Map zu laden!");
+ try {
+ if (world.isDirectory()) {
+ FileUtils.deleteDirectory(world);
+ FileUtils.deleteDirectory(end);
+ FileUtils.deleteDirectory(nether);
+ }
+ if (mlgworld.isDirectory()){
+ FileUtils.deleteDirectory(mlgworld);
+ }
+ if (serverJar.exists()) {
+ FileUtils.delete(serverJar);
+ }
+ FileUtils.copyFile(saveServerJar, serverJar);
+ FileUtils.copyDirectory(saveconfigs, configs);
+ FileUtils.copyDirectory(saveworld, world);
+ FileUtils.copyDirectory(savenether, nether);
+ FileUtils.copyDirectory(saveend, end);
+ } catch (IOException e) {
+ e.printStackTrace();
+ ChatUtil.sendErrorMessage(p, "Map konnte nicht geladen werden!");
+ this.online = false;
+ serverPlayers.remove(this);
+ return;
}
- if (mlgworld.isDirectory()){
- FileUtils.deleteDirectory(mlgworld);
- }
- if (serverJar.exists()) {
- FileUtils.delete(serverJar);
- }
- FileUtils.copyFile(saveServerJar, serverJar);
- FileUtils.copyDirectory(saveconfigs, configs);
- FileUtils.copyDirectory(saveworld, world);
- FileUtils.copyDirectory(savenether, nether);
- FileUtils.copyDirectory(saveend, end);
- } catch (IOException e) {
- e.printStackTrace();
- ChatUtil.sendErrorMessage(p, "Map konnte nicht geladen werden!");
- this.online = false;
- serverPlayers.remove(this);
- return;
- }
- ChatUtil.sendNormalMessage(p, "Map wurde geladen! Server wird nun gestartet!");
- start(p);
+ ChatUtil.sendNormalMessage(p, "Map wurde geladen! Server wird nun gestartet!");
+ start(p);
+ });
}
public void start(Player player) {
@@ -214,7 +207,6 @@
} else {
serverVersion = "latest";
}
- System.out.println(serverVersion);
return serverVersion;
}
}
\ No newline at end of file
diff --git a/src/main/java/de/fanta/challengesjoinentities/adventure/ui/AdventureMapsUI.java b/src/main/java/de/fanta/challengesjoinentities/adventure/ui/AdventureMapsUI.java
index 6a9a9cb..a78dfbc 100644
--- a/src/main/java/de/fanta/challengesjoinentities/adventure/ui/AdventureMapsUI.java
+++ b/src/main/java/de/fanta/challengesjoinentities/adventure/ui/AdventureMapsUI.java
@@ -75,6 +75,7 @@
if (event.isRightClick()) {
getPlayer().sendMessage(ChallengesJoinEntities.PREFIX_COMPONENT.append(Component.text("MapLink: klick mich :)", TextColor.color(Color.YELLOW.asRGB())).clickEvent(ClickEvent.clickEvent(ClickEvent.Action.OPEN_URL, map.getWebLink()))));
} else if (!Server.serverPlayers.containsValue(p.getUniqueId())) {
+ getPlayer().closeInventory();
this.plugin.getPluginConfig().getOnlineAdventureServer().ifPresentOrElse(server -> server.loadNewAdventure(p, category.getName(), map.getName()), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
} else {
ChatUtil.sendErrorMessage(p, "Du kannst nur einen Server starten!");
diff --git a/src/main/java/de/fanta/challengesjoinentities/commands/AdventureCommand/AdventureLoadCommand.java b/src/main/java/de/fanta/challengesjoinentities/commands/AdventureCommand/AdventureLoadCommand.java
index f8faf9e..35a4e33 100644
--- a/src/main/java/de/fanta/challengesjoinentities/commands/AdventureCommand/AdventureLoadCommand.java
+++ b/src/main/java/de/fanta/challengesjoinentities/commands/AdventureCommand/AdventureLoadCommand.java
@@ -25,16 +25,25 @@
if (!args.hasNext()) {
AdventureLoadGUI.createloadGUI(p);
return true;
- }
- String next = args.getNext();
- Boolean autosave = Boolean.parseBoolean(args.getNext());
- if (sender.hasPermission("challenges.load.admin")) {
- if (!Server.serverPlayers.containsValue(p.getUniqueId())) {
- this.plugin.getPluginConfig().getOnlineAdventureServer().ifPresentOrElse(server -> server.loadSaved(p, next.toLowerCase(), autosave), () -> ChatUtil.sendErrorMessage(sender, "Aktuell ist kein Server Frei!"));
- } else {
- ChatUtil.sendErrorMessage(sender, "Du kannst nur einen Server starten!");
+ } else {
+ if (sender.hasPermission("challenges.load.admin")) {
+ if (args.remaining() != 1 && args.remaining() != 2) {
+ ChatUtil.sendWarningMessage(p, "/adventure load [key] [Slot]");
+ return true;
+ }
+
+ String next = args.getNext();
+ String slot = args.getNext();
+ if (!Server.serverPlayers.containsValue(p.getUniqueId())) {
+ this.plugin.getPluginConfig().getOnlineAdventureServer().ifPresentOrElse(server -> server.loadSaved(p, next.toLowerCase(), slot), () -> ChatUtil.sendErrorMessage(sender, "Aktuell ist kein Server Frei!"));
+ } else {
+ ChatUtil.sendErrorMessage(sender, "Du kannst nur einen Server starten!");
+ }
}
}
+
+
+
return true;
}
}
diff --git a/src/main/java/de/fanta/challengesjoinentities/commands/ChallengesCommand/ChallengesloadCommand.java b/src/main/java/de/fanta/challengesjoinentities/commands/ChallengesCommand/ChallengesloadCommand.java
index 343cf6b..6d56750 100644
--- a/src/main/java/de/fanta/challengesjoinentities/commands/ChallengesCommand/ChallengesloadCommand.java
+++ b/src/main/java/de/fanta/challengesjoinentities/commands/ChallengesCommand/ChallengesloadCommand.java
@@ -26,11 +26,17 @@
ChallengeLoadGUI.createloadGUI(p);
return true;
}
- String next = args.getNext();
- Boolean autosave = Boolean.parseBoolean(args.getNext());
if (sender.hasPermission("challenges.load.admin")) {
+ if (args.remaining() != 1 && args.remaining() != 2) {
+ ChatUtil.sendWarningMessage(p, "/challenges load [key] [Slot]");
+ return true;
+ }
+
+ String next = args.getNext();
+ String slot = args.getNext();
+
if (!Server.serverPlayers.containsValue(p.getUniqueId())) {
- this.plugin.getPluginConfig().getOnlineChanllengeServer().ifPresentOrElse(server -> server.loadSaved(p, next.toLowerCase(), autosave), () -> ChatUtil.sendErrorMessage(sender, "Aktuell ist kein Server Frei!"));
+ this.plugin.getPluginConfig().getOnlineChanllengeServer().ifPresentOrElse(server -> server.loadSaved(p, next.toLowerCase(), slot), () -> ChatUtil.sendErrorMessage(sender, "Aktuell ist kein Server Frei!"));
} else {
ChatUtil.sendErrorMessage(sender, "Du kannst nur einen Server starten!");
}
diff --git a/src/main/java/de/fanta/challengesjoinentities/loadgui/AdventureLoadGUI.java b/src/main/java/de/fanta/challengesjoinentities/loadgui/AdventureLoadGUI.java
index a867933..9380be1 100644
--- a/src/main/java/de/fanta/challengesjoinentities/loadgui/AdventureLoadGUI.java
+++ b/src/main/java/de/fanta/challengesjoinentities/loadgui/AdventureLoadGUI.java
@@ -59,14 +59,16 @@
if (RESET_GUI.equals(e.getClickedInventory())) {
if (slot == SAVE_1_INDEX) {
if (!Server.serverPlayers.containsValue(p.getUniqueId())) {
- plugin.getPluginConfig().getOnlineAdventureServer().ifPresentOrElse(server -> server.loadSaved(p, false), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
+ p.closeInventory();
+ plugin.getPluginConfig().getOnlineAdventureServer().ifPresentOrElse(server -> server.loadSaved(p, "1"), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
} else {
ChatUtil.sendErrorMessage(p, "Du kannst nur einen Server starten!");
}
}
if (slot == AUTOSAVE_INDEX) {
if (!Server.serverPlayers.containsValue(p.getUniqueId())) {
- plugin.getPluginConfig().getOnlineAdventureServer().ifPresentOrElse(server -> server.loadSaved(p, true), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
+ p.closeInventory();
+ plugin.getPluginConfig().getOnlineAdventureServer().ifPresentOrElse(server -> server.loadSaved(p, "autosave"), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
} else {
ChatUtil.sendErrorMessage(p, "Du kannst nur einen Server starten!");
}
diff --git a/src/main/java/de/fanta/challengesjoinentities/loadgui/ChallengeLoadGUI.java b/src/main/java/de/fanta/challengesjoinentities/loadgui/ChallengeLoadGUI.java
index 76246ea..598d94e 100644
--- a/src/main/java/de/fanta/challengesjoinentities/loadgui/ChallengeLoadGUI.java
+++ b/src/main/java/de/fanta/challengesjoinentities/loadgui/ChallengeLoadGUI.java
@@ -11,7 +11,6 @@
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
-import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
@@ -22,51 +21,86 @@
private static final ChallengesJoinEntities plugin = ChallengesJoinEntities.getPlugin();
private static final int SAVE_1_INDEX = 1;
- private static final int AUTOSAVE_INDEX = 3;
+ private static final int SAVE_2_INDEX = 3;
+ private static final int SAVE_3_INDEX = 5;
+ private static final int AUTOSAVE_INDEX = 7;
- public static final int INVENTORY_SIZE = 5;
- public static final Inventory RESET_GUI = Bukkit.createInventory(null, InventoryType.HOPPER, ChallengesJoinEntities.CHALLENGEGUIPREFIX + " >> Challenge laden");
+
+ public static final Inventory CHALLENGE_LOAD_GUI = Bukkit.createInventory(null, 9, ChallengesJoinEntities.CHALLENGEGUIPREFIX + " >> Challenge laden");
+ public static final int INVENTORY_SIZE = CHALLENGE_LOAD_GUI.getSize();
+
public static void createloadGUI(Player p) {
- File adventuresave = new File("/home/minecraft/saves/" + p.getUniqueId() + "/1");
+ File adventuresave1 = new File("/home/minecraft/saves/" + p.getUniqueId() + "/1");
+ File adventuresave2 = new File("/home/minecraft/saves/" + p.getUniqueId() + "/2");
+ File adventuresave3 = new File("/home/minecraft/saves/" + p.getUniqueId() + "/3");
File adventureautosave = new File("/home/minecraft/saves/" + p.getUniqueId() + "/autosave");
- if (adventuresave.isDirectory()) {
- RESET_GUI.setItem(SAVE_1_INDEX, GUIUtils.createGuiItem(Material.MAP, ChatColor.GREEN + "Save 1", ChatColor.GREEN + "Klicken zum laden."));
+ if (adventuresave1.isDirectory()) {
+ CHALLENGE_LOAD_GUI.setItem(SAVE_1_INDEX, GUIUtils.createGuiItem(Material.MAP, ChatColor.GREEN + "Save 1", ChatColor.GREEN + "Klicken zum laden."));
} else {
- RESET_GUI.setItem(SAVE_1_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.DARK_RED + "Du hast noch keine Map gespeichert."));
+ CHALLENGE_LOAD_GUI.setItem(SAVE_1_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.DARK_RED + "Du hast noch keine Map gespeichert."));
+ }
+ if (adventuresave2.isDirectory()) {
+ CHALLENGE_LOAD_GUI.setItem(SAVE_2_INDEX, GUIUtils.createGuiItem(Material.MAP, ChatColor.GREEN + "Save 2", ChatColor.GREEN + "Klicken zum laden."));
+ } else {
+ CHALLENGE_LOAD_GUI.setItem(SAVE_2_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.DARK_RED + "Du hast noch keine Map gespeichert."));
+ }
+ if (adventuresave3.isDirectory()) {
+ CHALLENGE_LOAD_GUI.setItem(SAVE_3_INDEX, GUIUtils.createGuiItem(Material.MAP, ChatColor.GREEN + "Save 3", ChatColor.GREEN + "Klicken zum laden."));
+ } else {
+ CHALLENGE_LOAD_GUI.setItem(SAVE_3_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.DARK_RED + "Du hast noch keine Map gespeichert."));
}
if (adventureautosave.isDirectory()) {
- RESET_GUI.setItem(AUTOSAVE_INDEX, GUIUtils.createGuiItem(Material.CLOCK, ChatUtil.GREEN + "AutoSave", ChatColor.GREEN + "Klicken zum laden."));
+ CHALLENGE_LOAD_GUI.setItem(AUTOSAVE_INDEX, GUIUtils.createGuiItem(Material.CLOCK, ChatUtil.GREEN + "AutoSave", ChatColor.GREEN + "Klicken zum laden."));
} else {
- RESET_GUI.setItem(AUTOSAVE_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.DARK_RED + "Du hast noch keine Map gespeichert."));
+ CHALLENGE_LOAD_GUI.setItem(AUTOSAVE_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.DARK_RED + "Du hast noch keine Map gespeichert."));
}
for (int i = 0; i < INVENTORY_SIZE; i++) {
- ItemStack item = RESET_GUI.getItem(i);
+ ItemStack item = CHALLENGE_LOAD_GUI.getItem(i);
if (item == null || item.getType() == Material.AIR) {
- RESET_GUI.setItem(i, GUIUtils.EMPTY_ICON);
+ CHALLENGE_LOAD_GUI.setItem(i, GUIUtils.EMPTY_ICON);
}
}
- p.openInventory(RESET_GUI);
+ p.openInventory(CHALLENGE_LOAD_GUI);
}
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
int slot = e.getRawSlot();
Player p = (Player) e.getWhoClicked();
- if (RESET_GUI.equals(e.getClickedInventory())) {
+ if (CHALLENGE_LOAD_GUI.equals(e.getClickedInventory())) {
if (slot == SAVE_1_INDEX) {
if (!Server.serverPlayers.containsValue(p.getUniqueId())) {
- plugin.getPluginConfig().getOnlineChanllengeServer().ifPresentOrElse(server -> server.loadSaved(p, false), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
+ p.closeInventory();
+ plugin.getPluginConfig().getOnlineChanllengeServer().ifPresentOrElse(server -> server.loadSaved(p, "1"), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
} else {
ChatUtil.sendErrorMessage(p, "Du kannst nur einen Server starten!");
}
}
+ if (slot == SAVE_2_INDEX) {
+ if (!Server.serverPlayers.containsValue(p.getUniqueId())) {
+ p.closeInventory();
+ plugin.getPluginConfig().getOnlineChanllengeServer().ifPresentOrElse(server -> server.loadSaved(p, "2"), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
+ } else {
+ ChatUtil.sendErrorMessage(p, "Du kannst nur einen Server starten!");
+ }
+ }
+ if (slot == SAVE_3_INDEX) {
+ if (!Server.serverPlayers.containsValue(p.getUniqueId())) {
+ p.closeInventory();
+ plugin.getPluginConfig().getOnlineChanllengeServer().ifPresentOrElse(server -> server.loadSaved(p, "3"), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
+ } else {
+ ChatUtil.sendErrorMessage(p, "Du kannst nur einen Server starten!");
+ }
+ }
+
if (slot == AUTOSAVE_INDEX) {
if (!Server.serverPlayers.containsValue(p.getUniqueId())) {
- plugin.getPluginConfig().getOnlineChanllengeServer().ifPresentOrElse(server -> server.loadSaved(p, true), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
+ p.closeInventory();
+ plugin.getPluginConfig().getOnlineChanllengeServer().ifPresentOrElse(server -> server.loadSaved(p, "autosave"), () -> ChatUtil.sendErrorMessage(p, "Aktuell ist kein Server Frei!"));
} else {
ChatUtil.sendErrorMessage(p, "Du kannst nur einen Server starten!");
}