From db76bc6ef2acd2529ff7049c96b6a73b6d0723ee Mon Sep 17 00:00:00 2001 From: Max Qian Date: Mon, 1 Aug 2016 18:53:56 -0700 Subject: [PATCH] Refactor Destinations --- .../AdvancedPortalsPlugin.java | 2 +- .../destinations/Destination.java | 71 +++++-------------- .../DestinationCommand.java | 53 +++++--------- .../{ => destinations}/WarpCommand.java | 27 ++----- .../advancedportals/listeners/Listeners.java | 14 +--- .../advancedportals/portals/Portal.java | 4 -- 6 files changed, 45 insertions(+), 126 deletions(-) rename src/com/sekwah/advancedportals/{ => destinations}/DestinationCommand.java (70%) rename src/com/sekwah/advancedportals/{ => destinations}/WarpCommand.java (52%) diff --git a/src/com/sekwah/advancedportals/AdvancedPortalsPlugin.java b/src/com/sekwah/advancedportals/AdvancedPortalsPlugin.java index b80110b..bb9d4b7 100644 --- a/src/com/sekwah/advancedportals/AdvancedPortalsPlugin.java +++ b/src/com/sekwah/advancedportals/AdvancedPortalsPlugin.java @@ -2,7 +2,7 @@ package com.sekwah.advancedportals; import com.sekwah.advancedportals.DataCollector.DataCollector; import com.sekwah.advancedportals.compat.bukkit.NMS; -import com.sekwah.advancedportals.destinations.Destination; +import com.sekwah.advancedportals.destinations.*; import com.sekwah.advancedportals.effects.WarpEffects; import com.sekwah.advancedportals.listeners.*; import com.sekwah.advancedportals.metrics.Metrics; diff --git a/src/com/sekwah/advancedportals/destinations/Destination.java b/src/com/sekwah/advancedportals/destinations/Destination.java index 0aec1a7..43b4dac 100644 --- a/src/com/sekwah/advancedportals/destinations/Destination.java +++ b/src/com/sekwah/advancedportals/destinations/Destination.java @@ -24,12 +24,14 @@ public class Destination { private static AdvancedPortalsPlugin plugin; private static boolean TeleportRiding = false; + public static int PortalMessagesDisplay = 0; public Destination(AdvancedPortalsPlugin plugin) { Destination.plugin = plugin; ConfigAccessor config = new ConfigAccessor(plugin, "config.yml"); TeleportRiding = config.getConfig().getBoolean("WarpRiddenEntity"); + PortalMessagesDisplay = config.getConfig().getInt("WarpMessageDisplay"); } // TODO add permissions for destinations. @@ -104,7 +106,7 @@ public class Destination { config.saveConfig(); } - public static boolean warp(Player player, String name, boolean senderror) { + public static boolean warp(Player player, String name) { ConfigAccessor config = new ConfigAccessor(plugin, "destinations.yml"); if (config.getConfig().getString(name + ".world") != null) { Location loc = player.getLocation(); @@ -137,63 +139,28 @@ public class Destination { WarpEffects.activateParticles(player); WarpEffects.activateSound(player); + if (PortalMessagesDisplay == 1) { + player.sendMessage(""); + player.sendMessage(plugin.customPrefixFail + "\u00A7a You have been warped to \u00A7e" + name.replaceAll("_", " ") + "\u00A7a."); + player.sendMessage(""); + } else if (PortalMessagesDisplay == 2) { + plugin.nmsAccess.sendActionBarMessage("{\"text\":\"\u00A7aYou have warped to \u00A7e" + name.replaceAll("_", " ") + "\u00A7a.\"}", player); + /**plugin.nmsAccess.sendActionBarMessage("[{text:\"You have warped to \",color:green},{text:\"" + config.getConfig().getString(Portal.Portals[portalId].portalName + ".destination").replaceAll("_", " ") + + "\",color:yellow},{\"text\":\".\",color:green}]", player);*/ + } return true; } else { - if (senderror) { - player.sendMessage(plugin.customPrefixFail + "\u00A7c The destination you are trying to warp to seems to be linked to a world that doesn't exist!"); - plugin.getLogger().log(Level.SEVERE, "The destination '" + name + "' is linked to the world " - + config.getConfig().getString(name + ".world") + " which doesnt seem to exist any more!"); - } - return false; + player.sendMessage(plugin.customPrefixFail + "\u00A7c The destination you are trying to warp to seems to be linked to a world that doesn't exist!"); + plugin.getLogger().log(Level.SEVERE, "The destination '" + name + "' is linked to the world " + + config.getConfig().getString(name + ".world") + " which doesnt seem to exist any more!"); } } else { - if (senderror) { - player.sendMessage(plugin.customPrefixFail + "\u00A7c There has been a problem warping you to the selected destination!"); - plugin.getLogger().log(Level.SEVERE, "The destination '" + name + "' has just had a warp " - + "attempt and either the data is corrupt or that destination doesn't exist!"); - } - return false; + player.sendMessage(plugin.customPrefix + "\u00A7c The destination you are currently attempting to warp to doesnt exist!"); + plugin.getLogger().log(Level.SEVERE, "The destination '" + name + "' has just had a warp " + + "attempt and either the data is corrupt or that destination doesn't exist!"); } - - } - - /** - * Same as other warp but changes sender to player for you. - * - * @param player the player being warped - * @param name name of the warp - * @return returns if the player has warped - */ - public static boolean warp(Player player, String name) { - return warp(player, name, true); - - } - - /** - * Same as other warp but changes sender to player for you. - * - * @param sender the player being warped - * @param name name of the warp - * @return returns if the player has warped - */ - public static boolean warp(CommandSender sender, String name, boolean senderror) { - Player player = (Player) sender; - return warp(player, name, senderror); - - } - - /** - * Same as other warp but changes sender to player for you. - * - * @param sender the player being warped - * @param name name of the warp - * @return returns if the player has warped - */ - public static boolean warp(CommandSender sender, String name) { - Player player = (Player) sender; - return warp(player, name, true); - + return false; } public static List destiList() { diff --git a/src/com/sekwah/advancedportals/DestinationCommand.java b/src/com/sekwah/advancedportals/destinations/DestinationCommand.java similarity index 70% rename from src/com/sekwah/advancedportals/DestinationCommand.java rename to src/com/sekwah/advancedportals/destinations/DestinationCommand.java index 22e7253..e9199cb 100644 --- a/src/com/sekwah/advancedportals/DestinationCommand.java +++ b/src/com/sekwah/advancedportals/destinations/DestinationCommand.java @@ -1,6 +1,8 @@ -package com.sekwah.advancedportals; +package com.sekwah.advancedportals.destinations; -import com.sekwah.advancedportals.destinations.Destination; +import com.sekwah.advancedportals.AdvancedPortalsPlugin; +import com.sekwah.advancedportals.ConfigAccessor; +import com.sekwah.advancedportals.PluginMessages; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -14,30 +16,22 @@ import java.util.List; public class DestinationCommand implements CommandExecutor, TabCompleter { - public static int PortalMessagesDisplay = 0; - private AdvancedPortalsPlugin plugin; public DestinationCommand(AdvancedPortalsPlugin plugin) { this.plugin = plugin; plugin.getCommand("destination").setExecutor(this); - - ConfigAccessor config = new ConfigAccessor(plugin, "config.yml"); - - PortalMessagesDisplay = config.getConfig().getInt("WarpMessageDisplay"); - - } @Override public boolean onCommand(CommandSender sender, Command cmd, String command, String[] args) { - if (args.length > 0) { - if (args[0].toLowerCase().equals("create")) { + ConfigAccessor config = new ConfigAccessor(plugin, "destinations.yml"); + if (args.length > 0) { switch (args[0].toLowerCase()) { + case "create": if (sender.hasPermission("advancedportals.desti.create")) { if (args.length > 1) { - ConfigAccessor config = new ConfigAccessor(plugin, "destinations.yml"); String posX = config.getConfig().getString(args[1].toLowerCase() + ".pos.X"); if (posX == null) { sender.sendMessage("§a[\u00A7eAdvancedPortals\u00A7a] You have created a new destination called \u00A7e" + args[1] + "!"); @@ -52,7 +46,8 @@ public class DestinationCommand implements CommandExecutor, TabCompleter { } else { sender.sendMessage("\u00A7c[\u00A77AdvancedPortals\u00A7c] You do not have permission to create portals so you cannot give yourself a \u00A7ePortal Region Selector\u00A7c!"); } - } else if (args[0].toLowerCase().equals("remove")) { + break; + case "remove": ConfigAccessor portalConfig = new ConfigAccessor(plugin, "destinations.yml"); if (args.length > 1) { String posX = portalConfig.getConfig().getString(args[1] + ".pos.X"); @@ -65,29 +60,16 @@ public class DestinationCommand implements CommandExecutor, TabCompleter { } else { sender.sendMessage("\u00A7c[\u00A77AdvancedPortals\u00A7c] You need to state the name of the destination you wish to remove."); } - } else if (args[0].toLowerCase().equals("goto") || args[0].toLowerCase().equals("warp")) { + break; + case "goto": + case "warp": if (args.length > 1) { - //System.out.println(args[1]); - ConfigAccessor configDesti = new ConfigAccessor(plugin, "destinations.yml"); - if (configDesti.getConfig().getString(args[1] + ".world") != null) { - Destination.warp(sender, args[1]); - if (PortalMessagesDisplay == 1) { - sender.sendMessage(""); - sender.sendMessage(plugin.customPrefixFail + "\u00A7a You have been warped to \u00A7e" + args[1].replaceAll("_", " ") + "\u00A7a."); - sender.sendMessage(""); - } else if (PortalMessagesDisplay == 2) { - ConfigAccessor config = new ConfigAccessor(plugin, "destinations.yml"); - plugin.nmsAccess.sendActionBarMessage("{\"text\":\"\u00A7aYou have warped to \u00A7e" + args[1].replaceAll("_", " ") + "\u00A7a.\"}", (Player) sender); - /**plugin.nmsAccess.sendActionBarMessage("[{text:\"You have warped to \",color:green},{text:\"" + config.getConfig().getString(Portal.Portals[portalId].portalName + ".destination").replaceAll("_", " ") - + "\",color:yellow},{\"text\":\".\",color:green}]", player);*/ - } - } else { - sender.sendMessage("\u00A7c[\u00A77AdvancedPortals\u00A7c] No destination by that name exists."); - } + Destination.warp((Player) sender, args[1]); } else { - sender.sendMessage("\u00A7c[\u00A77AdvancedPortals\u00A7c] You need to state the name of the destination you wish to exemptPlayer to."); + sender.sendMessage("\u00A7c[\u00A77AdvancedPortals\u00A7c] You need to state the name of the destination you wish to warp to."); } - } else if (args[0].toLowerCase().equals("list")) { + break; + case "list": List destiList = Destination.destiList(); if (destiList.size() >= 1) { if (args.length > 1) { @@ -128,9 +110,10 @@ public class DestinationCommand implements CommandExecutor, TabCompleter { } else { sender.sendMessage("\u00A7c[\u00A77AdvancedPortals\u00A7c] There are currently no defined destinations."); } + break; } } else { - sender.sendMessage("\u00A7c[\u00A77AdvancedPortals\u00A7c] You need to type something after /" + command + ", if you do not know what you can put or would like some help with the commands please type /" + command + " help"); + PluginMessages.UnknownCommand(sender, command); } return true; } diff --git a/src/com/sekwah/advancedportals/WarpCommand.java b/src/com/sekwah/advancedportals/destinations/WarpCommand.java similarity index 52% rename from src/com/sekwah/advancedportals/WarpCommand.java rename to src/com/sekwah/advancedportals/destinations/WarpCommand.java index 6823a76..77a6e03 100644 --- a/src/com/sekwah/advancedportals/WarpCommand.java +++ b/src/com/sekwah/advancedportals/destinations/WarpCommand.java @@ -1,6 +1,8 @@ -package com.sekwah.advancedportals; +package com.sekwah.advancedportals.destinations; -import com.sekwah.advancedportals.destinations.Destination; +import com.sekwah.advancedportals.AdvancedPortalsPlugin; +import com.sekwah.advancedportals.ConfigAccessor; +import com.sekwah.advancedportals.PluginMessages; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -29,26 +31,9 @@ public class WarpCommand implements CommandExecutor, TabCompleter { @Override public boolean onCommand(CommandSender sender, Command cmd, String command, String[] args) { if (args.length > 0) { - if (Destination.warp(sender, args[0], false)) { - if (DestinationCommand.PortalMessagesDisplay == 1) { - sender.sendMessage(""); - sender.sendMessage(plugin.customPrefixFail + "\u00A7a You have been warped to \u00A7e" + args[0].replaceAll("_", " ") + "\u00A7a."); - sender.sendMessage(""); - } else if (DestinationCommand.PortalMessagesDisplay == 2) { - ConfigAccessor config = new ConfigAccessor(plugin, "destinations.yml"); - plugin.nmsAccess.sendActionBarMessage("{\"text\":\"\u00A7aYou have warped to \u00A7e" + args[0].replaceAll("_", " ") + "\u00A7a.\"}", (Player) sender); - /**plugin.nmsAccess.sendActionBarMessage("[{text:\"You have warped to \",color:green},{text:\"" + config.getConfig().getString(Portal.Portals[portalId].portalName + ".destination").replaceAll("_", " ") - + "\",color:yellow},{\"text\":\".\",color:green}]", player);*/ - } - } else { - sender.sendMessage(""); - sender.sendMessage(plugin.customPrefixFail + "\u00A7c The destination you tried to warp to does not exist!"); - sender.sendMessage(""); - } + Destination.warp((Player) sender, args[0]); } else { - sender.sendMessage(""); - sender.sendMessage(plugin.customPrefixFail + "\u00A7c You need to type a destination after /" + command + "!"); - sender.sendMessage(""); + PluginMessages.UnknownCommand(sender, command); } return true; } diff --git a/src/com/sekwah/advancedportals/listeners/Listeners.java b/src/com/sekwah/advancedportals/listeners/Listeners.java index 564485e..a0dc58b 100644 --- a/src/com/sekwah/advancedportals/listeners/Listeners.java +++ b/src/com/sekwah/advancedportals/listeners/Listeners.java @@ -86,19 +86,7 @@ public class Listeners implements Listener { WarpEvent warpEvent = new WarpEvent(player, portal); plugin.getServer().getPluginManager().callEvent(warpEvent); if (portal.inPortal.contains(player)) return; - if (!event.isCancelled()) { - boolean warped = Portal.activate(player, portal); - if (PortalMessagesDisplay == 1 && warped) { - player.sendMessage(""); - player.sendMessage(plugin.customPrefixFail + "\u00A7a You have been warped to \u00A7e" + portal.destiation.replaceAll("_", " ") + "\u00A7."); - player.sendMessage(""); - } else if (PortalMessagesDisplay == 2 && warped) { - ConfigAccessor config = new ConfigAccessor(plugin, "portals.yml"); - plugin.nmsAccess.sendActionBarMessage("{\"text\":\"\u00A7aYou have been warped to \u00A7e" + portal.destiation.replaceAll("_", " ") + "\u00A7a.\"}", player); - /**plugin.nmsAccess.sendActionBarMessage("[{text:\"You have warped to \",color:green},{text:\"" + config.getConfig().getString(portal.portalName + ".destination").replaceAll("_", " ") - + "\",color:yellow},{\"text\":\".\",color:green}]", player);*/ - } - } + if (!event.isCancelled()) Portal.activate(player, portal); if (portal.trigger.equals(Material.PORTAL)) { if (player.getGameMode().equals(GameMode.CREATIVE)) { player.setMetadata("hasWarped", new FixedMetadataValue(plugin, true)); diff --git a/src/com/sekwah/advancedportals/portals/Portal.java b/src/com/sekwah/advancedportals/portals/Portal.java index 942a3a4..e60d203 100644 --- a/src/com/sekwah/advancedportals/portals/Portal.java +++ b/src/com/sekwah/advancedportals/portals/Portal.java @@ -439,10 +439,6 @@ public class Portal { if (configDesti.getConfig().getString(portal.destiation + ".world") != null) { boolean warped = Destination.warp(player, portal.destiation); return warped; - } else { - player.sendMessage(plugin.customPrefix + "\u00A7c The destination you are currently attempting to warp to doesnt exist!"); - plugin.getLogger().log(Level.SEVERE, "The portal '" + portal.portalName + "' has just had a warp " - + "attempt and either the data is corrupt or that destination listed doesn't exist!"); } } else { if (showFailMessage) {