From b5faa1d836d5b94908ee7371427285d296c512a0 Mon Sep 17 00:00:00 2001 From: Butzlabben Date: Thu, 14 Feb 2019 19:05:37 +0100 Subject: [PATCH] Fixed #16 on github --- pom.xml | 19 +- .../butzlabben/world/command/WSCommand.java | 14 +- .../butzlabben/world/gui/WorldChooseGUI.java | 8 + .../butzlabben/world/wrapper/SystemWorld.java | 742 +++++++++--------- src/main/resources/1_13_gui.yml | 2 +- .../test/UpdateInformationsTest.java | 21 - 6 files changed, 403 insertions(+), 403 deletions(-) delete mode 100644 src/test/java/de/butzlabben/autoupdater/test/UpdateInformationsTest.java diff --git a/pom.xml b/pom.xml index 30aea2a..077ce57 100644 --- a/pom.xml +++ b/pom.xml @@ -3,14 +3,24 @@ 4.0.0 de.butzlabben.world WorldSystem - 2.4.3 + 2.4.3.2 UTF-8 - ${project.version} Build:${project.build.number} - + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.0.1 + + + + package src/main/java @@ -22,6 +32,11 @@ + + org.apache.maven.plugins + maven-javadoc-plugin + 3.0.1 + maven-compiler-plugin 3.3 diff --git a/src/main/java/de/butzlabben/world/command/WSCommand.java b/src/main/java/de/butzlabben/world/command/WSCommand.java index c838068..2fffdf9 100644 --- a/src/main/java/de/butzlabben/world/command/WSCommand.java +++ b/src/main/java/de/butzlabben/world/command/WSCommand.java @@ -69,6 +69,13 @@ public class WSCommand { @Command(name = "ws.get", inGameOnly = true) public void getCommand(CommandArgs args) { Player p = args.getSender(Player.class); + + // Check if use can create a world + if (!p.hasPermission("ws.get")) { + p.sendMessage(MessageConfig.getNoPermission()); + return; + } + // create New Entry DependenceConfig dc = new DependenceConfig(p); if (dc.hasWorld()) { @@ -76,16 +83,13 @@ public class WSCommand { return; } - if (!p.hasPermission("ws.get")) { - p.sendMessage(MessageConfig.getNoPermission()); - return; - } if (PluginConfig.isMultiChoose()) { if (args.length() > 0) { String key = args.getArgument(0); WorldTemplate template = WorldTemplateProvider.getInstace().getTemplate(key); if (template != null) { + // Permission for this specific template if (template.getPermission() != null && !p.hasPermission(template.getPermission())) { p.sendMessage(MessageConfig.getNoPermission()); return; @@ -94,7 +98,7 @@ public class WSCommand { return; } } - p.openInventory(new WorldChooseGUI().getInventory(p)); + WorldChooseGUI.letChoose(p); } else { WorldTemplate template = WorldTemplateProvider.getInstace() .getTemplate(PluginConfig.getDefaultWorldTemplate()); diff --git a/src/main/java/de/butzlabben/world/gui/WorldChooseGUI.java b/src/main/java/de/butzlabben/world/gui/WorldChooseGUI.java index f08ffed..c79257f 100644 --- a/src/main/java/de/butzlabben/world/gui/WorldChooseGUI.java +++ b/src/main/java/de/butzlabben/world/gui/WorldChooseGUI.java @@ -22,6 +22,10 @@ public class WorldChooseGUI extends OrcInventory { this(null, null); } + public WorldChooseGUI(Player player) { + this(null, player); + } + public WorldChooseGUI(Consumer onClick, Player player) { super(GuiConfig.getTitle(GuiConfig.getConfig(), "worldchoose"), GuiConfig.getRows("worldchoose"), GuiConfig.isFill("worldchoose")); @@ -54,6 +58,10 @@ public class WorldChooseGUI extends OrcInventory { player.openInventory(new WorldChooseGUI(template, player).getInventory(player)); } + public static void letChoose(Player player) { + player.openInventory(new WorldChooseGUI(player).getInventory(player)); + } + public void loadItem(String subpath, OrcClickListener listener) { if (GuiConfig.isEnabled(path + subpath) == false) return; diff --git a/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java b/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java index 1b4e016..11787cf 100644 --- a/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java +++ b/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java @@ -1,432 +1,426 @@ package de.butzlabben.world.wrapper; +import com.google.common.base.Preconditions; +import de.butzlabben.world.WorldSystem; +import de.butzlabben.world.config.*; +import de.butzlabben.world.event.WorldCreateEvent; +import de.butzlabben.world.event.WorldLoadEvent; +import de.butzlabben.world.event.WorldUnloadEvent; +import org.apache.commons.io.FileUtils; +import org.bukkit.*; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + import java.io.File; import java.io.IOException; import java.util.HashMap; -import org.apache.commons.io.FileUtils; -import org.bukkit.Bukkit; -import org.bukkit.Chunk; -import org.bukkit.GameMode; -import org.bukkit.OfflinePlayer; -import org.bukkit.World; -import org.bukkit.WorldCreator; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; - -import com.google.common.base.Preconditions; - -import de.butzlabben.world.WorldSystem; -import de.butzlabben.world.config.DependenceConfig; -import de.butzlabben.world.config.MessageConfig; -import de.butzlabben.world.config.PluginConfig; -import de.butzlabben.world.config.SettingsConfig; -import de.butzlabben.world.config.WorldConfig; -import de.butzlabben.world.event.WorldCreateEvent; -import de.butzlabben.world.event.WorldLoadEvent; -import de.butzlabben.world.event.WorldUnloadEvent; - /** * This class represents a systemworld, loaded or not - * + * * @author Butzlabben * @since 14.02.2018 */ public class SystemWorld { - private World w; - private String worldname; - private boolean unloading = false; - private boolean creating = false; + private World w; + private String worldname; + private boolean unloading = false; + private boolean creating = false; - private static HashMap cached = new HashMap<>(); + private static HashMap cached = new HashMap<>(); - /** - * This method is the online way to get a system world instance - * - * @param worldname as in minecraft - * @return a systemworld instance if it is a systemworld or null if is not a - * systemworld - * @exception NullPointerException worldname == null - */ - public static SystemWorld getSystemWorld(String worldname) { - Preconditions.checkNotNull(worldname, "worldname must not be null"); - if (cached.containsKey(worldname)) - return cached.get(worldname); - SystemWorld sw = new SystemWorld(worldname); - if (sw != null && sw.exists()) { - cached.put(worldname, sw); - return sw; - } - return null; - } + /** + * This method is the online way to get a system world instance + * + * @param worldname as in minecraft + * @return a systemworld instance if it is a systemworld or null if is not a + * systemworld + * @throws NullPointerException worldname == null + */ + public static SystemWorld getSystemWorld(String worldname) { + Preconditions.checkNotNull(worldname, "worldname must not be null"); + if (cached.containsKey(worldname)) + return cached.get(worldname); + SystemWorld sw = new SystemWorld(worldname); + if (sw != null && sw.exists()) { + cached.put(worldname, sw); + return sw; + } + return null; + } - /** - * @param w a world in bukkit, no matter if systemworld or not Trys to unload a - * systemworld later, with the given delay in the config - */ - public static void tryUnloadLater(World w) { - if (w != null) - Bukkit.getScheduler().runTaskLater(WorldSystem.getInstance(), () -> { - if (w.getPlayers().size() == 0) { - SystemWorld sw = SystemWorld.getSystemWorld(w.getName()); - if (sw != null && sw.isLoaded()) - sw.unloadLater(w); - } - }, 20); - } + /** + * @param w a world in bukkit, no matter if systemworld or not Trys to unload a + * systemworld later, with the given delay in the config + */ + public static void tryUnloadLater(World w) { + if (w != null) + Bukkit.getScheduler().runTaskLater(WorldSystem.getInstance(), () -> { + if (w.getPlayers().size() == 0) { + SystemWorld sw = SystemWorld.getSystemWorld(w.getName()); + if (sw != null && sw.isLoaded()) + sw.unloadLater(w); + } + }, 20); + } - private SystemWorld(String worldname) { - this.worldname = worldname; - w = Bukkit.getWorld(worldname); - } + private SystemWorld(String worldname) { + this.worldname = worldname; + w = Bukkit.getWorld(worldname); + } - /** - * Trys to force-unload this world - * - * @param w associated world - * @exception NullPointerException w == null - */ - public void directUnload(World w) { - if (!Bukkit.isPrimaryThread()) { - Bukkit.getScheduler().runTask(WorldSystem.getInstance(), () -> { - directUnload(w); - }); - return; - } - Preconditions.checkNotNull(w, "world must not be null"); - unloading = true; - w.save(); - Chunk[] arrayOfChunk; - int j = (arrayOfChunk = w.getLoadedChunks()).length; - for (int i = 0; i < j; i++) { - Chunk c = arrayOfChunk[i]; - c.unload(); - } - for (Player a : w.getPlayers()) { - a.teleport(PluginConfig.getSpawn()); - a.setGameMode(PluginConfig.getSpawnGamemode()); - } - if (unloading) { - if (Bukkit.unloadWorld(w, true)) { - File worldinserver = new File(Bukkit.getWorldContainer(), worldname); - File worlddir = new File(PluginConfig.getWorlddir()); - try { - FileUtils.moveDirectoryToDirectory(worldinserver, worlddir, false); - Bukkit.getWorlds().remove(w); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - } + /** + * Trys to force-unload this world + * + * @param w associated world + * @throws NullPointerException w == null + */ + public void directUnload(World w) { + if (!Bukkit.isPrimaryThread()) { + Bukkit.getScheduler().runTask(WorldSystem.getInstance(), () -> { + directUnload(w); + }); + return; + } + Preconditions.checkNotNull(w, "world must not be null"); + unloading = true; + w.save(); + Chunk[] arrayOfChunk; + int j = (arrayOfChunk = w.getLoadedChunks()).length; + for (int i = 0; i < j; i++) { + Chunk c = arrayOfChunk[i]; + c.unload(); + } + for (Player a : w.getPlayers()) { + a.teleport(PluginConfig.getSpawn()); + a.setGameMode(PluginConfig.getSpawnGamemode()); + } + if (unloading) { + if (Bukkit.unloadWorld(w, true)) { + File worldinserver = new File(Bukkit.getWorldContainer(), worldname); + File worlddir = new File(PluginConfig.getWorlddir()); + try { + FileUtils.moveDirectoryToDirectory(worldinserver, worlddir, false); + Bukkit.getWorlds().remove(w); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } - /** - * Trys to unload this world later, with the given delay in the config - * - * @param w the associated world - * @exception NullPointerException w == null - */ - public void unloadLater(World w) { - if (!Bukkit.isPrimaryThread()) { - Bukkit.getScheduler().runTask(WorldSystem.getInstance(), () -> { - unloadLater(w); - }); - return; - } - Preconditions.checkNotNull(w, "world must not be null"); - WorldUnloadEvent event = new WorldUnloadEvent(this); - Bukkit.getPluginManager().callEvent(event); - if (event.isCancelled()) - return; - // Set unloading to true - unloading = true; - w.save(); - Chunk[] arrayOfChunk; - int j = (arrayOfChunk = w.getLoadedChunks()).length; - for (int i = 0; i < j; i++) { - Chunk c = arrayOfChunk[i]; - c.unload(); - } - for (Player a : w.getPlayers()) { - a.teleport(PluginConfig.getSpawn()); - a.setGameMode(PluginConfig.getSpawnGamemode()); - } + /** + * Trys to unload this world later, with the given delay in the config + * + * @param w the associated world + * @throws NullPointerException w == null + */ + public void unloadLater(World w) { + if (!Bukkit.isPrimaryThread()) { + Bukkit.getScheduler().runTask(WorldSystem.getInstance(), () -> { + unloadLater(w); + }); + return; + } + Preconditions.checkNotNull(w, "world must not be null"); + WorldUnloadEvent event = new WorldUnloadEvent(this); + Bukkit.getPluginManager().callEvent(event); + if (event.isCancelled()) + return; + // Set unloading to true + unloading = true; + w.save(); + Chunk[] arrayOfChunk; + int j = (arrayOfChunk = w.getLoadedChunks()).length; + for (int i = 0; i < j; i++) { + Chunk c = arrayOfChunk[i]; + c.unload(); + } + for (Player a : w.getPlayers()) { + a.teleport(PluginConfig.getSpawn()); + a.setGameMode(PluginConfig.getSpawnGamemode()); + } - Bukkit.getScheduler().runTaskLater(WorldSystem.getInstance(), new Runnable() { - @Override - public void run() { - // Still in world unloading process? - if (unloading && w.getPlayers().size() == 0) { - if (Bukkit.unloadWorld(w, true)) { - File worldinserver = new File(Bukkit.getWorldContainer(), worldname); - File worlddir = new File(PluginConfig.getWorlddir()); - try { - FileUtils.moveDirectoryToDirectory(worldinserver, worlddir, false); - Bukkit.getWorlds().remove(w); - unloading = false; - } catch (IOException e) { - e.printStackTrace(); - } - } - } - } - }, 20 * PluginConfig.getUnloadingTime()); - } + Bukkit.getScheduler().runTaskLater(WorldSystem.getInstance(), new Runnable() { + @Override + public void run() { + // Still in world unloading process? + if (unloading && w.getPlayers().size() == 0) { + if (Bukkit.unloadWorld(w, true)) { + File worldinserver = new File(Bukkit.getWorldContainer(), worldname); + File worlddir = new File(PluginConfig.getWorlddir()); + try { + FileUtils.moveDirectoryToDirectory(worldinserver, worlddir, false); + Bukkit.getWorlds().remove(w); + unloading = false; + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + }, 20 * PluginConfig.getUnloadingTime()); + } - /** - * Trys to load this world, and messages the player about the process - * - * @param p the player to teleport on the world - * @exception NullPointerException if p is null - * @exception IllegalArgumentException if player is not online - */ - public void load(Player p) { - if (!Bukkit.isPrimaryThread()) { - Bukkit.getScheduler().runTask(WorldSystem.getInstance(), () -> { - load(p); - }); - return; - } - Preconditions.checkNotNull(p, "player must not be null"); - Preconditions.checkArgument(p.isOnline(), "player must be online"); + /** + * Trys to load this world, and messages the player about the process + * + * @param p the player to teleport on the world + * @throws NullPointerException if p is null + * @throws IllegalArgumentException if player is not online + */ + public void load(Player p) { + if (!Bukkit.isPrimaryThread()) { + Bukkit.getScheduler().runTask(WorldSystem.getInstance(), () -> { + load(p); + }); + return; + } + Preconditions.checkNotNull(p, "player must not be null"); + Preconditions.checkArgument(p.isOnline(), "player must be online"); - if (creating) { - p.sendMessage(MessageConfig.getWorldStillCreating()); - return; - } + if (creating) { + p.sendMessage(MessageConfig.getWorldStillCreating()); + return; + } - WorldLoadEvent event = new WorldLoadEvent(p, this); - Bukkit.getPluginManager().callEvent(event); - if (event.isCancelled()) - return; + WorldLoadEvent event = new WorldLoadEvent(p, this); + Bukkit.getPluginManager().callEvent(event); + if (event.isCancelled()) + return; - unloading = false; + unloading = false; - p.sendMessage(MessageConfig.getSettingUpWorld()); + p.sendMessage(MessageConfig.getSettingUpWorld()); - // Move World into Server dir - String worlddir = PluginConfig.getWorlddir(); - File world = new File(worlddir + "/" + worldname); - if (!world.exists()) { - world = new File(Bukkit.getWorldContainer(), worldname); - } else { - if (new File(Bukkit.getWorldContainer(), worldname).exists() - && new File(PluginConfig.getWorlddir() + "/" + worldname).exists()) { - System.err.println("World " + worldname + " exists twice!"); - // try { - // FileUtils.deleteDirectory(new - // File(Bukkit.getWorldContainer(), worldname)); - // } catch (IOException e) { - // p.sendMessage(PluginConfig.getPrefix() + "§cError"); - // e.printStackTrace(); - // } - } - try { - FileUtils.moveDirectoryToDirectory(world, Bukkit.getWorldContainer(), false); - } catch (IOException e) { - System.err.println("Couldn't load world of " + p.getName()); - p.sendMessage(PluginConfig.getPrefix() + "§cError: " + e.getMessage()); - e.printStackTrace(); - } - } + // Move World into Server dir + String worlddir = PluginConfig.getWorlddir(); + File world = new File(worlddir + "/" + worldname); + if (!world.exists()) { + world = new File(Bukkit.getWorldContainer(), worldname); + } else { + if (new File(Bukkit.getWorldContainer(), worldname).exists() + && new File(PluginConfig.getWorlddir() + "/" + worldname).exists()) { + System.err.println("World " + worldname + " exists twice!"); + // try { + // FileUtils.deleteDirectory(new + // File(Bukkit.getWorldContainer(), worldname)); + // } catch (IOException e) { + // p.sendMessage(PluginConfig.getPrefix() + "§cError"); + // e.printStackTrace(); + // } + } + try { + FileUtils.moveDirectoryToDirectory(world, Bukkit.getWorldContainer(), false); + } catch (IOException e) { + System.err.println("Couldn't load world of " + p.getName()); + p.sendMessage(PluginConfig.getPrefix() + "§cError: " + e.getMessage()); + e.printStackTrace(); + } + } - if (worldname.charAt(worldname.length() - 37) == ' ') { - StringBuilder myName = new StringBuilder(worldname); - myName.setCharAt(worldname.length() - 37, '-'); - world.renameTo(new File(Bukkit.getWorldContainer(), myName.toString())); - worldname = myName.toString(); - } + if (worldname.charAt(worldname.length() - 37) == ' ') { + StringBuilder myName = new StringBuilder(worldname); + myName.setCharAt(worldname.length() - 37, '-'); + world.renameTo(new File(Bukkit.getWorldContainer(), myName.toString())); + worldname = myName.toString(); + } - WorldCreator creator = PluginConfig.getWorldCreator(worldname); + WorldCreator creator = PluginConfig.getWorldCreator(worldname); - World w = Bukkit.getWorld(worldname); - if (w == null) - w = Bukkit.createWorld(creator); + World w = Bukkit.getWorld(worldname); + if (w == null) + w = Bukkit.createWorld(creator); - this.w = w; + this.w = w; - teleportToWorldSpawn(p); + teleportToWorldSpawn(p); - OfflinePlayer owner = Bukkit.getOfflinePlayer(WorldConfig.getWorldConfig(worldname).getOwner()); - DependenceConfig dc = new DependenceConfig(owner); - dc.setLastLoaded(); - } + OfflinePlayer owner = Bukkit.getOfflinePlayer(WorldConfig.getWorldConfig(worldname).getOwner()); + DependenceConfig dc = new DependenceConfig(owner); + dc.setLastLoaded(); + } - /** - * Trys to create a new systemworld with all entries etc. finally loads the - * world - * - * @param p Player to create the world for - * @return whether it succesfull or not - */ - public static boolean create(Player p, WorldTemplate template) { + /** + * Trys to create a new systemworld with all entries etc. finally loads the + * world + * + * @param p Player to create the world for + * @return whether it succesfull or not + */ + public static boolean create(Player p, WorldTemplate template) { - DependenceConfig dc = new DependenceConfig(p); + DependenceConfig dc = new DependenceConfig(p); - String uuid = p.getUniqueId().toString(); - int id = DependenceConfig.getHighestID() + 1; - String worldname = "ID" + id + "-" + uuid; + String uuid = p.getUniqueId().toString(); + int id = DependenceConfig.getHighestID() + 1; + String worldname = "ID" + id + "-" + uuid; - WorldCreator creator = PluginConfig.getWorldCreator(worldname); + WorldCreator creator = PluginConfig.getWorldCreator(worldname); - WorldCreateEvent event = new WorldCreateEvent(p, creator); - Bukkit.getPluginManager().callEvent(event); - if (event.isCancelled()) - return false; + WorldCreateEvent event = new WorldCreateEvent(p, creator); + Bukkit.getPluginManager().callEvent(event); + if (event.isCancelled()) + return false; - dc.createNewEntry(); + dc.createNewEntry(); - String worlddir = PluginConfig.getWorlddir(); - File exampleworld = new File(template.getPath()); - if (new File(template.getPath() + "/uid.dat").exists()) { - new File(template.getPath() + "/uid.dat").delete(); - } + String worlddir = PluginConfig.getWorlddir(); + File exampleworld = new File(template.getPath()); + if (new File(template.getPath() + "/uid.dat").exists()) { + new File(template.getPath() + "/uid.dat").delete(); + } - File newworld = new File(worlddir + "/" + worldname); + File newworld = new File(worlddir + "/" + worldname); - if (exampleworld.isDirectory()) - try { - FileUtils.copyDirectory(exampleworld, newworld); - } catch (IOException e) { - System.err.println("Couldn't create world for " + p.getName()); - e.printStackTrace(); - } - else - newworld.mkdirs(); + if (exampleworld.isDirectory()) + try { + FileUtils.copyDirectory(exampleworld, newworld); + } catch (IOException e) { + System.err.println("Couldn't create world for " + p.getName()); + e.printStackTrace(); + } + else + newworld.mkdirs(); - WorldConfig.create(p); + WorldConfig.create(p); - // Move World into Server dir - File world = new File(worlddir + "/" + worldname); - if (!world.exists()) { - world = new File(Bukkit.getWorldContainer(), worldname); - } else { - if (new File(Bukkit.getWorldContainer(), worldname).exists() - && new File(PluginConfig.getWorlddir() + "/" + worldname).exists()) { - try { - FileUtils.deleteDirectory(new File(Bukkit.getWorldContainer(), worldname)); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { - FileUtils.moveDirectoryToDirectory(world, Bukkit.getWorldContainer(), false); - } catch (IOException e) { - p.sendMessage(PluginConfig.getPrefix() + "§cError: " + e.getMessage()); - System.err.println("Couldn't load world of " + p.getName()); - e.printStackTrace(); - return false; - } - } + // Move World into Server dir + File world = new File(worlddir + "/" + worldname); + if (!world.exists()) { + world = new File(Bukkit.getWorldContainer(), worldname); + } else { + if (new File(Bukkit.getWorldContainer(), worldname).exists() + && new File(PluginConfig.getWorlddir() + "/" + worldname).exists()) { + try { + FileUtils.deleteDirectory(new File(Bukkit.getWorldContainer(), worldname)); + } catch (IOException e) { + e.printStackTrace(); + } + } + try { + FileUtils.moveDirectoryToDirectory(world, Bukkit.getWorldContainer(), false); + } catch (IOException e) { + p.sendMessage(PluginConfig.getPrefix() + "§cError: " + e.getMessage()); + System.err.println("Couldn't load world of " + p.getName()); + e.printStackTrace(); + return false; + } + } - SystemWorld sw = SystemWorld.getSystemWorld(worldname); - sw.setCreating(true); + SystemWorld sw = SystemWorld.getSystemWorld(worldname); + sw.setCreating(true); - // Run in scheduler so method returns without delay - new BukkitRunnable() { - @Override - public void run() { - // For #16 - WorldSystem.getInstance().getAdapter().create(event.getWorldCreator(), sw, () -> { - if (p != null && p.isOnline()) { - p.sendMessage(MessageConfig.getWorldCreated()); - SettingsConfig.getCommandsonGet().stream() - .map(s -> s.replace("%player", p.getName()).replace("%world", sw.getName()) - .replace("%uuid", p.getUniqueId().toString())) - .forEach(s -> Bukkit.dispatchCommand(Bukkit.getConsoleSender(), s)); - } - }); - } - }.runTaskLater(WorldSystem.getInstance(), 1); + // Run in scheduler so method returns without delay + new BukkitRunnable() { + @Override + public void run() { + WorldSystem.getInstance().getAdapter().create(event.getWorldCreator(), sw, () -> { + // Fix for #16 + new BukkitRunnable() { + @Override + public void run() { + if (p != null && p.isOnline()) { + p.sendMessage(MessageConfig.getWorldCreated()); + SettingsConfig.getCommandsonGet().stream() + .map(s -> s.replace("%player", p.getName()).replace("%world", sw.getName()) + .replace("%uuid", p.getUniqueId().toString())) + .forEach(s -> Bukkit.dispatchCommand(Bukkit.getConsoleSender(), s)); + } + } + }.runTask(WorldSystem.getInstance()); + }); + } + }.runTaskLater(WorldSystem.getInstance(), 1); - return true; - } + return true; + } - /** - * @return if the world is loaded - */ - public boolean isLoaded() { - File worldAsDir = new File(Bukkit.getWorldContainer(), worldname + "/worldconfig.yml"); - World w = Bukkit.getWorld(worldname); - if (worldAsDir.exists() && w != null) - return true; - return false; - } + /** + * @return if the world is loaded + */ + public boolean isLoaded() { + File worldAsDir = new File(Bukkit.getWorldContainer(), worldname + "/worldconfig.yml"); + World w = Bukkit.getWorld(worldname); + if (worldAsDir.exists() && w != null) + return true; + return false; + } - private boolean exists() { - File worldAsDir = new File(Bukkit.getWorldContainer(), worldname + "/worldconfig.yml"); - if (worldAsDir.exists()) { - return true; - } - worldAsDir = new File(PluginConfig.getWorlddir() + "/" + worldname + "/worldconfig.yml"); - if (worldAsDir.exists()) { - return true; - } - return false; - } + private boolean exists() { + File worldAsDir = new File(Bukkit.getWorldContainer(), worldname + "/worldconfig.yml"); + if (worldAsDir.exists()) { + return true; + } + worldAsDir = new File(PluginConfig.getWorlddir() + "/" + worldname + "/worldconfig.yml"); + if (worldAsDir.exists()) { + return true; + } + return false; + } - /** - * Teleports the player to the world with the given settings in the config - * - * @param p player to teleport - * @exception NullPointerException if player is null - * @exception IllegalArgumentException if player is not online - */ - public void teleportToWorldSpawn(Player p) { - Preconditions.checkNotNull(p, "player must not be null"); - Preconditions.checkArgument(p.isOnline(), "player must be online"); + /** + * Teleports the player to the world with the given settings in the config + * + * @param p player to teleport + * @throws NullPointerException if player is null + * @throws IllegalArgumentException if player is not online + */ + public void teleportToWorldSpawn(Player p) { + Preconditions.checkNotNull(p, "player must not be null"); + Preconditions.checkArgument(p.isOnline(), "player must be online"); - if (creating) { - p.sendMessage(MessageConfig.getWorldStillCreating()); - return; - } + if (creating) { + p.sendMessage(MessageConfig.getWorldStillCreating()); + return; + } - unloading = false; - w = Bukkit.getWorld(worldname); - if (w == null) - return; + unloading = false; + w = Bukkit.getWorld(worldname); + if (w == null) + return; - WorldConfig config = WorldConfig.getWorldConfig(worldname); - if (config.getHome() != null) { - p.teleport(config.getHome()); - } else { - if (PluginConfig.useWorldSpawn()) { - p.teleport(PluginConfig.getWorldSpawn(w)); - } else { - p.teleport(w.getSpawnLocation()); - } - } - if (PluginConfig.isSurvival()) { - p.setGameMode(GameMode.SURVIVAL); - } else { - p.setGameMode(GameMode.CREATIVE); - } + WorldConfig config = WorldConfig.getWorldConfig(worldname); + if (config.getHome() != null) { + p.teleport(config.getHome()); + } else { + if (PluginConfig.useWorldSpawn()) { + p.teleport(PluginConfig.getWorldSpawn(w)); + } else { + p.teleport(w.getSpawnLocation()); + } + } + if (PluginConfig.isSurvival()) { + p.setGameMode(GameMode.SURVIVAL); + } else { + p.setGameMode(GameMode.CREATIVE); + } - OfflinePlayer owner = Bukkit.getOfflinePlayer(WorldConfig.getWorldConfig(worldname).getOwner()); - DependenceConfig dc = new DependenceConfig(owner); - dc.setLastLoaded(); - } + OfflinePlayer owner = Bukkit.getOfflinePlayer(WorldConfig.getWorldConfig(worldname).getOwner()); + DependenceConfig dc = new DependenceConfig(owner); + dc.setLastLoaded(); + } - /** - * @return the world - */ - public World getWorld() { - return w; - } + /** + * @return the world + */ + public World getWorld() { + return w; + } - public void setCreating(boolean creating) { - this.creating = creating; - } + public void setCreating(boolean creating) { + this.creating = creating; + } - public boolean isCreating() { - return creating; - } + public boolean isCreating() { + return creating; + } - /** - * @return the worldname - */ - public String getName() { - return worldname; - } + /** + * @return the worldname + */ + public String getName() { + return worldname; + } } \ No newline at end of file diff --git a/src/main/resources/1_13_gui.yml b/src/main/resources/1_13_gui.yml index 2cdee84..da2c0dd 100644 --- a/src/main/resources/1_13_gui.yml +++ b/src/main/resources/1_13_gui.yml @@ -293,7 +293,7 @@ worldchoose: slot: row: 2 col: 7 - material: STONE_BLOCK + material: STONE display: '&aAnother template' diff --git a/src/test/java/de/butzlabben/autoupdater/test/UpdateInformationsTest.java b/src/test/java/de/butzlabben/autoupdater/test/UpdateInformationsTest.java deleted file mode 100644 index 163c228..0000000 --- a/src/test/java/de/butzlabben/autoupdater/test/UpdateInformationsTest.java +++ /dev/null @@ -1,21 +0,0 @@ -package de.butzlabben.autoupdater.test; - -import static org.junit.Assert.assertNotNull; - -import org.junit.Test; - -import de.butzlabben.autoupdater.UpdateInformations; - -/** - * @author Butzlabben - * @since 03.09.2018 - */ -public class UpdateInformationsTest { - - private final String url = "https://seagiants.eu/worldsystem/info.php?version=1.0"; - - @Test - public void testCallURL() { - assertNotNull("Failed to call URL to AutoUpdate Server", UpdateInformations.callURL(url)); - } -}