diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/DeathrunChallengeEvent.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/DeathrunChallengeEvent.java index 64d019b..a5a1ed1 100644 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/DeathrunChallengeEvent.java +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/DeathrunChallengeEvent.java @@ -7,6 +7,7 @@ import de.fanta.challenges.scoreboard.ScoreManager; import de.fanta.challenges.utils.ChatSkullAPI.ChatSkull; import de.fanta.challenges.utils.ChatUtil; +import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.GameRule; @@ -38,35 +39,21 @@ private final Challenges plugin = Challenges.getPlugin(); - private static final List deadPlayer = new ArrayList<>(); + private static final List deadPlayer = new ArrayList<>(); private final Map bossBarMap = new HashMap<>(); public static Location spawnLocation; private final Map> currentBarrier = new HashMap<>(); private static final Material barrierBlock = Material.GLASS; + private int taskId = -1; + @EventHandler public void onMove(PlayerMoveEvent e) { Player p = e.getPlayer(); World world = p.getWorld(); if (Objects.equals(plugin.getConfig().getString("event.type"), "deathrun") && plugin.getTimer().isRunning() && !plugin.getVanish().isVanish(p) && p.getGameMode() != GameMode.SPECTATOR) { - if (!deadPlayer.contains(p.getUniqueId().toString())) { - if (!e.getTo().equals(e.getFrom())) { - int distance = (int) p.getLocation().toVector().subtract(p.getWorld().getSpawnLocation().toVector()).length(); - ScoreManager scoreManager = plugin.getScoreManager(); - scoreManager.setScore(new ChallengePlayer(p), distance); - - BossBar bossBar = bossBarMap.computeIfAbsent(p, player -> { - BossBar newBossBar = Bukkit.createBossBar(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + (scoreManager.getPosition(new ChallengePlayer(p))) + ChatUtil.RED + " | " + ChatUtil.GREEN + " Distanz zum Spawn: " + ChatUtil.BLUE + distance + " Blöcke", BarColor.GREEN, BarStyle.SOLID); - newBossBar.setVisible(true); - newBossBar.addPlayer(p); - return newBossBar; - }); - - bossBar.setTitle(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + (scoreManager.getPosition(new ChallengePlayer(p))) + ChatUtil.RED + " | " + ChatUtil.GREEN + " Distanz zum Spawn: " + ChatUtil.BLUE + distance + " Blöcke"); - - } - + if (!deadPlayer.contains(p.getUniqueId())) { Location playerLoc = p.getLocation(); double posRelatedToCenter = playerLoc.getZ() - spawnLocation.getZ(); double distanceToCenter = Math.abs(posRelatedToCenter); @@ -118,7 +105,7 @@ public void onDeath(PlayerDeathEvent e) { Player p = e.getEntity(); if (Objects.equals(plugin.getConfig().getString("event.type"), "deathrun") && plugin.getTimer().isRunning()) { - deadPlayer.add(p.getUniqueId().toString()); + deadPlayer.add(p.getUniqueId()); plugin.getSBManager().removeScoreboard(p); if (plugin.getSBManager().countScoreboardPlayers() == 0) { plugin.getTimer().stopTimer(); @@ -138,6 +125,7 @@ public void onTimerChange(TimerChangedEvent e) { if (Objects.equals(plugin.getConfig().getString("event.type"), "deathrun")) { if (!e.isRunning()) { + stopUpdateTask(); for (Scorable scorable : plugin.getScoreManager().getByPositon(1)) { OfflinePlayer p = (Bukkit.getServer().getOfflinePlayer(scorable.getName())); if (p.isOnline()) { @@ -156,6 +144,7 @@ spawn.setYaw(-90f); pp.teleport(spawn); } + startUpdateTask(); } } } @@ -224,7 +213,40 @@ } } - public static List getDeadPlayer() { + public static List getDeadPlayer() { return deadPlayer; } + + public void startUpdateTask() { + taskId = plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, this::updateScoreAndBossBar, 1L, 1L); + } + + public void stopUpdateTask() { + plugin.getServer().getScheduler().cancelTask(taskId); + } + + private void updateScoreAndBossBar() { + if (Objects.equals(plugin.getConfig().getString("event.type"), "deathrun") && plugin.getTimer().isRunning()) { + ScoreManager scoreManager = plugin.getScoreManager(); + for (Player p : plugin.getVanish().getPlayerListWithoutVanishPlayers()) { + if (!plugin.getVanish().isVanish(p) && p.getGameMode() != GameMode.SPECTATOR) { + if (!deadPlayer.contains(p.getUniqueId())) { + int distance = (int) p.getLocation().toVector().subtract(p.getWorld().getSpawnLocation().toVector()).length(); + scoreManager.setScore(new ChallengePlayer(p), distance); + } + BossBar bossBar = bossBarMap.computeIfAbsent(p, player -> { + BossBar newBossBar = Bukkit.createBossBar(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + scoreManager.getPosition(new ChallengePlayer(p)) + ChatUtil.RED + " | " + ChatUtil.GREEN + "Distanz zum Spawn: " + ChatUtil.BLUE + scoreManager.getScore(new ChallengePlayer(p)) + " Blöcke", BarColor.GREEN, BarStyle.SOLID); + newBossBar.setVisible(true); + newBossBar.addPlayer(p); + return newBossBar; + }); + if (!deadPlayer.contains(p.getUniqueId())) { + bossBar.setTitle(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + scoreManager.getPosition(new ChallengePlayer(p)) + ChatUtil.RED + " | " + ChatUtil.GREEN + "Distanz zum Spawn: " + ChatUtil.BLUE + scoreManager.getScore(new ChallengePlayer(p)) + " Blöcke"); + } else { + bossBar.setTitle(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + scoreManager.getPosition(new ChallengePlayer(p)) + ChatUtil.RED + " | " + ChatUtil.GREEN + ChatColor.BOLD + "†" + ChatUtil.RED + "Distanz zum Spawn: " + ChatUtil.BLUE + scoreManager.getScore(new ChallengePlayer(p)) + " Blöcke"); + } + } + } + } + } } diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/ForceItemChallengeEvent.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/ForceItemChallengeEvent.java index 8d1397d..085054d 100644 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/ForceItemChallengeEvent.java +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/ForceItemChallengeEvent.java @@ -19,6 +19,7 @@ import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; +import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; @@ -33,6 +34,7 @@ import org.bukkit.event.inventory.InventoryAction; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryMoveItemEvent; +import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.PlayerArmorStandManipulateEvent; import org.bukkit.event.player.PlayerAttemptPickupItemEvent; import org.bukkit.event.player.PlayerBucketEntityEvent; @@ -44,6 +46,8 @@ import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerSwapHandItemsEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataType; @@ -62,13 +66,13 @@ public class ForceItemChallengeEvent implements Listener { private static boolean running; - private final Challenges plugin = Challenges.getPlugin(); + private static final Challenges plugin = Challenges.getPlugin(); private static boolean isRunning() { return running; } - private void setRunning(boolean run) { + private static void setRunning(boolean run) { running = run; } @@ -80,13 +84,13 @@ private static final HashMap> playerMaterials = new HashMap<>(); - private final Map bossBarMap = new HashMap<>(); + private static final Map bossBarMap = new HashMap<>(); private int taskId = -1; - private final Random random = new Random(); + private static final Random random = new Random(); - private ItemStack skipItem; + public static ItemStack skipItem; private final NamespacedKey skipKey = new NamespacedKey(plugin, "SkipItem"); @@ -172,7 +176,6 @@ if (isRunning()) { Player player = e.getPlayer(); removeArmorStand(player); - plugin.getScoreManager().leave(new ChallengePlayer(player)); } } @@ -356,18 +359,8 @@ Player p = e.getPlayer(); ItemStack stack = p.getInventory().getItemInMainHand(); ItemMeta meta = stack.getItemMeta(); - Material playerItem = itemByPlayerList.get(p.getUniqueId()); if (meta != null && meta.getPersistentDataContainer().has(skipKey)) { - ItemStack skipStack = skipItem.clone(); - skipStack.setAmount(1); - p.getInventory().removeItem(skipStack); - List stackList = new ArrayList<>(); - stackList.add(new ItemStack(playerItem)); - Collection droplist = p.getInventory().addItem(stackList.toArray(new ItemStack[0])).values(); - for (ItemStack itemStack : droplist) { - p.getLocation().getWorld().dropItem(p.getLocation(), itemStack); - } - selectItem(p, playerItem); + AcceptGUI.createAcceptGUI(p); } } @@ -444,7 +437,7 @@ } } - public void updateArmorStand(Player player, Material material) { + public static void updateArmorStand(Player player, Material material) { if (entityListContainsUUID(player.getUniqueId())) { ArmorStand stand = (ArmorStand) entityListGetEntity(player.getUniqueId()); stand.getEquipment().setHelmet(new ItemStack(material)); @@ -458,8 +451,8 @@ } } - public void updateItem(Player player) { - ArrayList itemList = playerMaterials.getOrDefault(player.getUniqueId(), materials); + public static void updateItem(Player player) { + ArrayList itemList = playerMaterials.get(player.getUniqueId()); if (itemList.isEmpty()) { plugin.getTimer().stopTimer(); setRunning(false); @@ -478,10 +471,10 @@ updateArmorStand(player, item); } - public void selectItem(Player player, Material pickupItem) { + public static void selectItem(Player player, Material pickupItem) { Material playerItem = itemByPlayerList.get(player.getUniqueId()); if (pickupItem.equals(playerItem)) { - ArrayList itemList = playerMaterials.getOrDefault(player.getUniqueId(), materials); + ArrayList itemList = playerMaterials.get(player.getUniqueId()); itemList.remove(pickupItem); playerMaterials.put(player.getUniqueId(), itemList); plugin.getScoreManager().updateScore(new ChallengePlayer(player), 1); @@ -491,7 +484,7 @@ } } - public void updateBossBar() { + public static void updateBossBar() { ScoreManager scoreManager = plugin.getScoreManager(); for (Player player : plugin.getVanish().getPlayerListWithoutVanishPlayers()) { Material playerItem = itemByPlayerList.get(player.getUniqueId()); @@ -517,7 +510,7 @@ entityList.remove(uuid); } - public boolean entityListContainsUUID(UUID uuid) { + public static boolean entityListContainsUUID(UUID uuid) { return entityList.containsKey(uuid); } @@ -525,7 +518,7 @@ return entityList.containsValue(entity); } - public Entity entityListGetEntity(UUID uuid) { + public static Entity entityListGetEntity(UUID uuid) { return entityList.get(uuid); } @@ -543,6 +536,7 @@ if (itemByPlayerList.get(player.getUniqueId()) != null) { updateArmorStand(player, itemByPlayerList.get(player.getUniqueId())); } else { + playerMaterials.put(player.getUniqueId(), createMaterielList()); updateItem(player); } } @@ -551,7 +545,7 @@ } public ItemStack createSkipItem() { - ItemStack stack = new ItemStack(Material.STRUCTURE_VOID, 3); + ItemStack stack = new ItemStack(Material.STRUCTURE_VOID, 5); ItemMeta meta = stack.getItemMeta(); List lorelist = new ArrayList<>(); meta.setDisplayName(ChatUtil.GREEN + "Skip Item"); @@ -559,8 +553,67 @@ lorelist.add(ChatUtil.GREEN + "Rechtsklick um das Aktuelle Item zu Skippen."); lorelist.add(ChatUtil.GREEN + "Geskippte Items bekommst du 1x ins Inventar."); meta.setLore(lorelist); + meta.addEnchant(Enchantment.VANISHING_CURSE, 1, true); + meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); stack.setItemMeta(meta); return stack; } + + public ArrayList createMaterielList() { + return new ArrayList<>(materials); + } + + public static class AcceptGUI implements Listener { + private static final int JA_INDEX = 1; + private static final int NEIN_INDEX = 3; + + public static final int INVENTORY_SIZE = 5; + + private static final Map InventoryperPlayer = new HashMap<>(); + + public static void createAcceptGUI(Player p) { + Inventory ACCEPT_GUI = Bukkit.createInventory(p, InventoryType.HOPPER, ChatUtil.GREEN + "Willst du wirklich Skippen?"); + InventoryperPlayer.put(p, ACCEPT_GUI); + + ACCEPT_GUI.setItem(JA_INDEX, GUIUtils.createGuiItem(Material.LIME_CONCRETE, ChatUtil.GREEN + "Ja", true)); + ACCEPT_GUI.setItem(NEIN_INDEX, GUIUtils.createGuiItem(Material.RED_CONCRETE, ChatUtil.RED + "Nein", true)); + for (int i = 0; i < INVENTORY_SIZE; i++) { + ItemStack item = ACCEPT_GUI.getItem(i); + if (item == null || item.getType() == Material.AIR) { + ACCEPT_GUI.setItem(i, GUIUtils.EMPTY_ICON); + } + } + p.openInventory(ACCEPT_GUI); + } + + @EventHandler + public void onInventoryClick(InventoryClickEvent e) { + Player player = (Player) e.getWhoClicked(); + if (InventoryperPlayer.isEmpty()) { + return; + } + if (InventoryperPlayer.get(player).equals(e.getClickedInventory())) { + int slot = e.getRawSlot(); + if (slot == JA_INDEX) { + Material playerItem = itemByPlayerList.get(player.getUniqueId()); + player.closeInventory(); + ItemStack skipStack = skipItem.clone(); + skipStack.setAmount(1); + player.getInventory().removeItem(skipStack); + List stackList = new ArrayList<>(); + stackList.add(new ItemStack(playerItem)); + Collection droplist = player.getInventory().addItem(stackList.toArray(new ItemStack[0])).values(); + for (ItemStack itemStack : droplist) { + player.getLocation().getWorld().dropItem(player.getLocation(), itemStack); + } + selectItem(player, playerItem); + } + if (slot == NEIN_INDEX) { + player.closeInventory(); + } + e.setCancelled(true); + } + } + } } diff --git a/src/main/java/de/fanta/challenges/gravestones/GravestoneUtils.java b/src/main/java/de/fanta/challenges/gravestones/GravestoneUtils.java index cf8f352..a967cc1 100644 --- a/src/main/java/de/fanta/challenges/gravestones/GravestoneUtils.java +++ b/src/main/java/de/fanta/challenges/gravestones/GravestoneUtils.java @@ -127,6 +127,7 @@ container.set(UUIDKey, PersistentDataType.STRING, player.getUniqueId().toString()); container.set(inventoryKey, PersistentDataType.BYTE_ARRAY, inventoryBytes); }); + ChatUtil.sendNormalMessage(player, "Dein Grabschstein steht bei:" + ChatUtil.ORANGE + " (" + player.getLocation().getBlockX() + "/" + player.getLocation().getBlockY() + "/" + player.getLocation().getBlockZ() + ")"); } } diff --git a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java index 9c37019..ac2b6d0 100644 --- a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java +++ b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java @@ -104,5 +104,7 @@ pM.registerEvents(new ForceItemChallengeEvent(), plugin); pM.registerEvents(new CheckItemsGUI(), plugin); + + pM.registerEvents(new ForceItemChallengeEvent.AcceptGUI(), plugin); } } diff --git a/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java b/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java index d06f153..7617522 100644 --- a/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java +++ b/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java @@ -43,7 +43,7 @@ ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat die Lobby betreten! " + ChatUtil.YELLOW + "[" + (Bukkit.getServer().getOnlinePlayers().size() - plugin.getVanish().countVanishPlayers()) + "/" + Bukkit.getServer().getMaxPlayers() + "]"); e.setJoinMessage(null); if (plugin.getServerType() != ServerType.ADVENTURE) { - if (!DeathrunChallengeEvent.getDeadPlayer().contains(p.getUniqueId().toString())) { + if (!DeathrunChallengeEvent.getDeadPlayer().contains(p.getUniqueId())) { plugin.getScoreManager().join(new ChallengePlayer(p)); plugin.getSBManager().setScoreboardtoPlayer(p); plugin.getSBManager().updateEventScoreboard(); diff --git a/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java b/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java index 9d59651..52c05d5 100644 --- a/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java +++ b/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java @@ -87,9 +87,11 @@ } public void join(Scorable s) { - ScoreData data = new ScoreData(s, positions.size()); - scores.put(s, data); - positions.add(data); + if (!scores.containsKey(s)) { + ScoreData data = new ScoreData(s, positions.size()); + scores.put(s, data); + positions.add(data); + } } public void leave(Scorable s) { @@ -111,10 +113,7 @@ IntPredicate forCondition = (dir == -1) ? curr -> curr > 0 && positions.get(curr - 1).getScore() < data.getScore() : curr -> curr < positions.size() - 1 && positions.get(curr + 1).getScore() > data.getScore(); - // did we have the same score as the one before us and thus hat the same position but dont anymore because we got worse? - if (dir == 1 && current > 0 && data.getScore() == positions.get(current - 1).getScore()) { - data.setPosition(data.getPostition() + 1); - } + int startingIndex = data.getIndex(); // swap with neighbors as long as we are now better/worse then them for (; forCondition.test(current); current += dir) { @@ -124,24 +123,31 @@ positions.set(current, other); data.setIndex(current + dir); other.setIndex(current); - - int oldPosition = data.getPostition(); - data.setPosition(other.getPostition()); - other.setPosition(oldPosition); } - // do we now have the same score as the one before us and thus get the same position? - if (dir == -1 && current > 0 && data.getScore() == positions.get(current - 1).getScore()) { - data.setPosition(positions.get(current + dir).getPostition()); + // update positions + int endIndex = data.getIndex(); + int i = Math.min(startingIndex, endIndex); + + ScoreData curr; + int lastPosition; + int lastScore; + if (i == 0) { + curr = positions.get(0); + curr.setPosition(1); + lastPosition = 1; + lastScore = curr.getScore(); + i++; + } else { + curr = positions.get(i-1); + lastPosition = curr.getPostition(); + lastScore = curr.getScore(); } - // do the positions of those below us change as a result of our new position? - int lastPosition = data.getPostition(); - int lastScore = data.getScore(); - for (int i = current + 1; i < positions.size(); i++) { - ScoreData curr = positions.get(i); + for (; i < positions.size(); i++) { + curr = positions.get(i); int correctPosition = (curr.getScore() == lastScore) ? lastPosition : lastPosition + 1; - if (curr.getPostition() == correctPosition) + if (curr.getPostition() == correctPosition && i > Math.max(startingIndex,endIndex)) break; curr.setPosition(correctPosition); @@ -179,6 +185,10 @@ if (current.getPostition() == position) { found = middle; break; + } else if (start >= end - 1) { + plugin.getLogger().log(Level.SEVERE, "position not found but expected to be present: " + position); + plugin.getLogger().log(Level.SEVERE, positions.toString()); + return Collections.emptySet(); } else if (current.getPostition() > position) { end = middle; } else { @@ -229,20 +239,18 @@ sb.append(" Das Event hatte keine Teilnehmer!\n"); } else { if (plugin.getConfig().getBoolean("event.teams")) { - int i = 1; for (ScoreData entry : positions) { ChallengeTeam challengeTeam = TeamUtils.getTeam(entry.getScorable().getName()); if (challengeTeam != null) { Team team = TeamUtils.getScoreboard().getTeam(challengeTeam.getName()); if (team != null) { - sb.append(i++).append(". ").append(entry.getScorable().getName()).append(" (").append(team.getEntries().toString().replace("[", "").replace("]", "")).append(")").append(" ").append(entry.getScore()).append("\n"); + sb.append(entry.getPostition()).append(". ").append(entry.getScorable().getName()).append(" (").append(team.getEntries().toString().replace("[", "").replace("]", "")).append(")").append(" ").append(entry.getScore()).append("\n"); } } } } else { - int i = 1; for (ScoreData entry : positions) { - sb.append(i++).append(". ").append(entry.getScorable().getName()).append(" ").append(entry.getScore()).append("\n"); + sb.append(entry.getPostition()).append(". ").append(entry.getScorable().getName()).append(" ").append(entry.getScore()).append("\n"); } } } diff --git a/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java b/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java index 5054d4d..9e3a596 100644 --- a/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java +++ b/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java @@ -18,6 +18,9 @@ private static final Challenges plugin = Challenges.getPlugin(); public static void saveWorld(String uuid, Boolean autosafe) { + if (plugin.getServerType() == ServerType.CHALLENGE_EVENT) { + return; + } Challenges.getPlugin().getConfig().set("timertime", Challenges.getPlugin().getTimer().getTime()); Challenges.getPlugin().saveConfig(); Challenges.getPlugin().getConfig().set("backpack_size", Challenges.getPlugin().getBackpack().getSize() / 9); @@ -58,19 +61,19 @@ if (loaddir.isDirectory()) { loaddir.delete(); } - try { - FileUtils.forceMkdir(dir); - FileUtils.copyDirectory(configs, saveconfigs); - FileUtils.copyDirectory(end, saveend); - FileUtils.copyDirectory(nether, savenether); - FileUtils.copyDirectory(world, saveworld); - if (loaddir.isDirectory()) { - FileUtils.deleteDirectory(loaddir); - } - FileUtils.moveDirectory(dir, loaddir); - } catch (IOException ex) { - Bukkit.getLogger().log(Level.SEVERE, "Could not save world ", ex); + try { + FileUtils.forceMkdir(dir); + FileUtils.copyDirectory(configs, saveconfigs); + FileUtils.copyDirectory(end, saveend); + FileUtils.copyDirectory(nether, savenether); + FileUtils.copyDirectory(world, saveworld); + if (loaddir.isDirectory()) { + FileUtils.deleteDirectory(loaddir); } + FileUtils.moveDirectory(dir, loaddir); + } catch (IOException ex) { + Bukkit.getLogger().log(Level.SEVERE, "Could not save world ", ex); + } } else if (plugin.getServerType() == ServerType.ADVENTURE) { File loaddir; if (autosafe) { @@ -95,8 +98,6 @@ Bukkit.getLogger().log(Level.SEVERE, "Could not save world ", ex); ChatUtil.sendErrorMessage(Bukkit.getPlayer(uuid), "Map konnte nicht richtig gespeichert werden, bitte versuche es noch einmal"); } - } else { - throw new RuntimeException("Motd stimmt nicht überein!"); } } }