diff --git a/BetterRTPAddons/pom.xml b/BetterRTPAddons/pom.xml index 5f2e0b7..4bea4a5 100644 --- a/BetterRTPAddons/pom.xml +++ b/BetterRTPAddons/pom.xml @@ -7,13 +7,19 @@ me.SuperRonanCraft BetterRTPAddons jar - 1.4 + 1.5 1.8 1.8 + + + src/main/resources + true + + ${project.artifactId}-${project.version} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Addon.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Addon.java index 6a321b1..4a43538 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Addon.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Addon.java @@ -1,5 +1,6 @@ package me.SuperRonanCraft.BetterRTPAddons; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTPAddons.util.Files; public interface Addon { @@ -13,6 +14,8 @@ public interface Addon { //Unload the addon if enabled void unload(); + RTPCommand getCmd(); + //Ability to grab a file default Files.FILETYPE getFile(Files.FILETYPE filetype) { return Main.getInstance().getFiles().getType(filetype); diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonMessages.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonMessages.java new file mode 100644 index 0000000..27ce90a --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonMessages.java @@ -0,0 +1,32 @@ +package me.SuperRonanCraft.BetterRTPAddons; + +import org.bukkit.command.CommandSender; + +public class AddonMessages implements AddonsMessages { + private static final String preM = "Addons."; + + public String getBaseHelp() { + return getLang().getString("Help.Base.Help"); + } + + public String getBaseList() { + return getLang().getString("Help.Base.List"); + } + + public String getListPrefix() { + return getLang().getString(preM + "List.Prefix"); + } + + + public String getListDisabled() { + return getLang().getString(preM + "List.Disabled"); + } + + public String getListEnabled() { + return getLang().getString(preM + "List.Enabled"); + } + + public String getHelp() { + return getLang().getString("Help.Addons"); + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsCommand.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsCommand.java index 9ab6ccd..1e3ef9e 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsCommand.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsCommand.java @@ -1,21 +1,65 @@ package me.SuperRonanCraft.BetterRTPAddons; +import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; +import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommandsTabable; +import me.SuperRonanCraft.BetterRTPAddons.cmds.AddonsCommand_Help; +import me.SuperRonanCraft.BetterRTPAddons.cmds.AddonsCommand_List; +import me.SuperRonanCraft.BetterRTPAddons.cmds.AddonsCommand_Version; +import me.SuperRonanCraft.BetterRTPAddons.cmds.AddonsCommands; import org.bukkit.command.CommandSender; +import java.util.ArrayList; import java.util.List; +import java.util.Locale; + +public class AddonsCommand implements RTPCommand, RTPCommandHelpable { + + public enum AddonCmds { + LIST(new AddonsCommand_List()), + HELP(new AddonsCommand_Help()), + VERSION(new AddonsCommand_Version()); + + public AddonsCommands cmd; + + AddonCmds(AddonsCommands cmd) { + this.cmd = cmd; + } + } -public class AddonsCommand implements RTPCommand { @Override public void execute(CommandSender sendi, String label, String[] args) { - for (AddonsHandler.Addons addon : Main.getInstance().getAddonsHandler().addons) { - sendi.sendMessage(addon.name()); + if (args.length == 2) { + for (AddonCmds cmds : AddonCmds.values()) { + if (cmds.name().equalsIgnoreCase(args[1])) { + cmds.cmd.execute(sendi, label, args); + return; + } + } + BetterRTP.getInstance().getText().getInvalid(sendi, label); + } else { + List list = new ArrayList<>(); + list.add(BetterRTP.getInstance().getText().getHelpPrefix()); + for (AddonsHandler.Addons addon : Main.getInstance().getAddonsHandler().addons) { + RTPCommand cmd = addon.getCmd(); + if (cmd instanceof RTPCommandHelpable) + list.add(((RTPCommandHelpable) cmd).getHelp().replace("%command%", label)); + } + list.add(((RTPCommandHelpable) AddonCmds.HELP.cmd).getHelp().replace("%command%", label)); + Main.getInstance().msgs.sms(sendi, list); } } @Override public List tabComplete(CommandSender sendi, String[] args) { - return null; + List list = new ArrayList<>(); + if (args.length == 2) + for (AddonCmds cmds : AddonCmds.values()) { + if (cmds.name().toLowerCase().startsWith(args[1].toLowerCase())) + list.add(cmds.name().toLowerCase()); + } + return list; } @Override @@ -27,4 +71,9 @@ public class AddonsCommand implements RTPCommand { public String getName() { return "addons"; } + + @Override + public String getHelp() { + return Main.getInstance().msgs.getHelp(); + } } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java index cfc5147..3bfbaa9 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java @@ -1,21 +1,20 @@ package me.SuperRonanCraft.BetterRTPAddons; import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTPAddons.addons.commands.AddonCommands; import me.SuperRonanCraft.BetterRTPAddons.addons.extraEffects.AddonExtraEffects; import me.SuperRonanCraft.BetterRTPAddons.addons.flashback.AddonFlashback; -import me.SuperRonanCraft.BetterRTPAddons.addons.interfaces.AddonInterface; import me.SuperRonanCraft.BetterRTPAddons.addons.logger.AddonLogger; import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.AddonMagicStick; import me.SuperRonanCraft.BetterRTPAddons.addons.portals.AddonPortals; import java.util.ArrayList; import java.util.List; -import java.util.logging.Level; public class AddonsHandler { - List addons = new ArrayList<>(); + public List addons = new ArrayList<>(); AddonsCommand cmd = new AddonsCommand(); public void load() { @@ -37,7 +36,7 @@ public class AddonsHandler { addons.clear(); } - enum Addons { + public enum Addons { LOGGER(new AddonLogger()), //Does this thing work? FLASH_BACK(new AddonFlashback()), //Never get lost adventuring PORTALS(new AddonPortals()), //Fancy walk-in portals @@ -53,7 +52,7 @@ public class AddonsHandler { this.addon = addon; } - boolean isEnabled() { + public boolean isEnabled() { return addon.isEnabled(); } @@ -65,6 +64,10 @@ public class AddonsHandler { void disable() { addon.unload(); } + + RTPCommand getCmd() { + return addon.getCmd(); + } } } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Main.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Main.java index 8d985b6..5211086 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Main.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/Main.java @@ -9,6 +9,7 @@ public class Main extends JavaPlugin { private static Main instance; private final AddonsHandler addonsHandler = new AddonsHandler(); private final Files files = new Files(); + public final AddonMessages msgs = new AddonMessages(); @Override public void onEnable() { diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/AddonCommands.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/AddonCommands.java index 887d61f..bac2b98 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/AddonCommands.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/AddonCommands.java @@ -1,5 +1,6 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.commands; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTPAddons.Addon; import me.SuperRonanCraft.BetterRTPAddons.util.Files; @@ -22,4 +23,9 @@ public class AddonCommands implements Addon { public void unload() { loader.unload(); } + + @Override + public RTPCommand getCmd() { + return null; + } } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/extraEffects/AddonExtraEffects.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/extraEffects/AddonExtraEffects.java index 126959b..8cf13c0 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/extraEffects/AddonExtraEffects.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/extraEffects/AddonExtraEffects.java @@ -1,5 +1,6 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.extraEffects; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTPAddons.Addon; import me.SuperRonanCraft.BetterRTPAddons.util.Files; import org.bukkit.event.Listener; @@ -34,6 +35,11 @@ public class AddonExtraEffects implements Addon { this.effects.clear(); } + @Override + public RTPCommand getCmd() { + return null; + } + enum Effects { SKYHIGH(new ExtraEffectsEffect_Skyhigh()); diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/flashback/AddonFlashback.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/flashback/AddonFlashback.java index 6795be3..f0cac0c 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/flashback/AddonFlashback.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/flashback/AddonFlashback.java @@ -1,5 +1,6 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.flashback; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent; import me.SuperRonanCraft.BetterRTPAddons.Addon; @@ -70,6 +71,11 @@ public class AddonFlashback implements Addon, Listener { HandlerList.unregisterAll(this); } + @Override + public RTPCommand getCmd() { + return null; + } + @EventHandler void onTeleport(RTP_TeleportPostEvent e) { //Create a timer to teleport player back if (e.getType() != RTP_TYPE.ADDON_PORTAL && diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/interfaces/AddonInterface.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/interfaces/AddonInterface.java index c06e11a..ff5b729 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/interfaces/AddonInterface.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/interfaces/AddonInterface.java @@ -1,5 +1,6 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.interfaces; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTPAddons.Addon; import me.SuperRonanCraft.BetterRTPAddons.util.Files; @@ -21,4 +22,9 @@ public class AddonInterface implements Addon { public void unload() { } + + @Override + public RTPCommand getCmd() { + return null; + } } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/logger/AddonLogger.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/logger/AddonLogger.java index f496b9d..11d875e 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/logger/AddonLogger.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/logger/AddonLogger.java @@ -1,10 +1,12 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.logger; import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdReload; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent; import me.SuperRonanCraft.BetterRTPAddons.Addon; +import me.SuperRonanCraft.BetterRTPAddons.AddonsCommand; import me.SuperRonanCraft.BetterRTPAddons.util.Files; import me.SuperRonanCraft.BetterRTPAddons.Main; import org.bukkit.Bukkit; @@ -65,6 +67,11 @@ public class AddonLogger implements Addon, Listener { Main.getInstance().getLogger().removeHandler(consoleHandler_main); } + @Override + public RTPCommand getCmd() { + return null; + } + @EventHandler public void onCmd(RTP_CommandEvent e) { String _str = e.getSendi().getName() + " executed `/rtp " + e.getCmd().getName() + "` at " + getDate(); diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/AddonMagicStick.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/AddonMagicStick.java index 9f9528b..7224e6f 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/AddonMagicStick.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/AddonMagicStick.java @@ -1,6 +1,7 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.magicStick; import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTPAddons.Addon; import me.SuperRonanCraft.BetterRTPAddons.Main; import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.cmds.MagicStickCommand; @@ -28,4 +29,9 @@ public class AddonMagicStick implements Addon { public void unload() { events.unload(); } + + @Override + public RTPCommand getCmd() { + return cmd; + } } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java index d7633b9..a6189cc 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java @@ -1,6 +1,7 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.portals; import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTPAddons.Addon; import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommand; import me.SuperRonanCraft.BetterRTPAddons.util.Files; @@ -34,6 +35,11 @@ public class AddonPortals implements Addon { events.unregiter(); } + @Override + public RTPCommand getCmd() { + return cmd; + } + public PortalsCache getPortals() { return portalsCache; } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsMessages.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsMessages.java index 38b73e9..9c607e3 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsMessages.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsMessages.java @@ -1,6 +1,7 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.portals; import me.SuperRonanCraft.BetterRTPAddons.AddonsMessages; +import org.bukkit.Location; import org.bukkit.command.CommandSender; public class PortalsMessages implements AddonsMessages { @@ -38,18 +39,24 @@ public class PortalsMessages implements AddonsMessages { //Location - public void getLocation_1(CommandSender sendi) { - sms(sendi, getLang().getString(preM + "Location.1")); + public void getLocation_1(CommandSender sendi, Location loc) { + sms(sendi, getLang().getString(preM + "Location.1") + .replace("%location%", "x:" + loc.getBlockX() + ", y:" + loc.getBlockY() + ", z:" + loc.getBlockZ())); } - public void getLocation_2(CommandSender sendi) { - sms(sendi, getLang().getString(preM + "Location.2")); + public void getLocation_2(CommandSender sendi, Location loc) { + sms(sendi, getLang().getString(preM + "Location.2") + .replace("%location%", "x:" + loc.getBlockX() + ", y:" + loc.getBlockY() + ", z:" + loc.getBlockZ())); } public void getLocation_Look(CommandSender sendi) { sms(sendi, getLang().getString(preM + "Location.Look")); } + public void getLocation_Ready(CommandSender sendi) { + sms(sendi, getLang().getString(preM + "Location.Ready").replace("%command%", "rtp")); + } + //Remove public void getRemoveConfirm(CommandSender sendi, String name) { diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Create.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Create.java index f443ded..efaeaf0 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Create.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Create.java @@ -18,6 +18,11 @@ public class PortalsCommand_Create implements PortalsCommands, PortalsCommandsTa sendi.sendMessage("Console cannot perform this command!"); return; } + //Valid Name + if (args.length < 3 || args[2].length() < 1) { + addonPortals.msgs.getCreateName(sendi); + return; + } Player p = (Player) sendi; PortalsRegionInfo portal = addonPortals.getPortals().getPortal(p); //Valid region @@ -28,11 +33,6 @@ public class PortalsCommand_Create implements PortalsCommands, PortalsCommandsTa addonPortals.msgs.getCreateInvalid(sendi); return; } - //Valid Name - if (args.length < 3 || args[2].length() < 1) { - addonPortals.msgs.getCreateName(sendi); - return; - } String name = args[2]; if (args.length > 3) { portal.setWorld(args[3]); diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Loc1.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Loc1.java index a83cdcb..8bfba30 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Loc1.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Loc1.java @@ -17,8 +17,8 @@ public class PortalsCommand_Loc1 implements PortalsCommands, LocationFinder { Block block = getTargetBlock(p, 10); if (block != null) { Location loc = block.getLocation(); + addonPortals.msgs.getLocation_1(sendi, loc); addonPortals.getPortals().cachePortal(p, loc, false); - addonPortals.msgs.getLocation_1(sendi); } else { addonPortals.msgs.getLocation_Look(sendi); } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Loc2.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Loc2.java index ecfe4c8..228187e 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Loc2.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/cmds/PortalsCommand_Loc2.java @@ -14,8 +14,8 @@ public class PortalsCommand_Loc2 implements PortalsCommands, LocationFinder { Block block = getTargetBlock(p, 10); if (block != null) { Location loc = block.getLocation(); + addonPortals.msgs.getLocation_2(sendi, loc); addonPortals.getPortals().cachePortal(p, loc, true); - addonPortals.msgs.getLocation_2(sendi); } else { addonPortals.msgs.getLocation_Look(sendi); } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/region/PortalsCache.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/region/PortalsCache.java index cf34cd4..8ecc180 100644 --- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/region/PortalsCache.java +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/region/PortalsCache.java @@ -70,11 +70,16 @@ public class PortalsCache { portalsBeingCreated.put(p, portal); } Location old_loc1 = portal.loc_1; - Location old_loc2 = portal.loc_1; + Location old_loc2 = portal.loc_2; if (loc2) portal.loc_2 = loc; else portal.loc_1 = loc; + + if (portal.loc_1 != null && portal.loc_2 != null) + if (old_loc1 == null || old_loc2 == null) + addonPortals.msgs.getLocation_Ready(p); + if (Bukkit.getPluginManager().isPluginEnabled("ProtocolLib")) { ProtocolManager pm = ProtocolLibrary.getProtocolManager(); @@ -104,6 +109,11 @@ public class PortalsCache { packet.setLocation(new BlockPosition(loc.toVector())); packet.sendPacket(p); //} + } else { + if (loc2) + p.sendBlockChange(portal.loc_2, Material.GLOWSTONE.createBlockData()); + else + p.sendBlockChange(portal.loc_1, Material.GLOWSTONE.createBlockData()); } } diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommand_Help.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommand_Help.java new file mode 100644 index 0000000..d4feecd --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommand_Help.java @@ -0,0 +1,32 @@ +package me.SuperRonanCraft.BetterRTPAddons.cmds; + +import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; +import me.SuperRonanCraft.BetterRTPAddons.AddonMessages; +import me.SuperRonanCraft.BetterRTPAddons.AddonsCommand; +import me.SuperRonanCraft.BetterRTPAddons.AddonsHandler; +import me.SuperRonanCraft.BetterRTPAddons.Main; +import org.bukkit.command.CommandSender; + +import java.util.ArrayList; +import java.util.List; + +public class AddonsCommand_Help implements AddonsCommands, RTPCommandHelpable { + + @Override + public void execute(CommandSender sendi, String label, String[] args) { + List list = new ArrayList<>(); + list.add(BetterRTP.getInstance().getText().getHelpPrefix()); + for (AddonsCommand.AddonCmds cmds : AddonsCommand.AddonCmds.values()) { + if (cmds.cmd instanceof RTPCommandHelpable) + list.add(((RTPCommandHelpable) cmds.cmd).getHelp().replace("%command%", label)); + } + Main.getInstance().msgs.sms(sendi, list); + } + + @Override + public String getHelp() { + return Main.getInstance().msgs.getBaseHelp(); + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommand_List.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommand_List.java new file mode 100644 index 0000000..57a22e8 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommand_List.java @@ -0,0 +1,32 @@ +package me.SuperRonanCraft.BetterRTPAddons.cmds; + +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; +import me.SuperRonanCraft.BetterRTPAddons.AddonMessages; +import me.SuperRonanCraft.BetterRTPAddons.AddonsHandler; +import me.SuperRonanCraft.BetterRTPAddons.Main; +import org.bukkit.command.CommandSender; + +import java.util.ArrayList; +import java.util.List; + +public class AddonsCommand_List implements AddonsCommands, RTPCommandHelpable { + + @Override + public void execute(CommandSender sendi, String label, String[] args) { + AddonMessages msgs = Main.getInstance().msgs; + List list = new ArrayList<>(); + list.add(msgs.getListPrefix()); + for (AddonsHandler.Addons addon : AddonsHandler.Addons.values()) { + String str = msgs.getListDisabled(); + if (addon.isEnabled()) + str = msgs.getListEnabled(); + list.add(str.replace("%addon%", addon.name())); + } + msgs.sms(sendi, list); + } + + @Override + public String getHelp() { + return Main.getInstance().msgs.getBaseList(); + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommand_Version.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommand_Version.java new file mode 100644 index 0000000..db43a63 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommand_Version.java @@ -0,0 +1,25 @@ +package me.SuperRonanCraft.BetterRTPAddons.cmds; + +import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; +import me.SuperRonanCraft.BetterRTPAddons.AddonMessages; +import me.SuperRonanCraft.BetterRTPAddons.AddonsHandler; +import me.SuperRonanCraft.BetterRTPAddons.Main; +import org.bukkit.command.CommandSender; + +import java.util.ArrayList; +import java.util.List; + +public class AddonsCommand_Version implements AddonsCommands, RTPCommandHelpable { + + @Override + public void execute(CommandSender sendi, String label, String[] args) { + sendi.sendMessage(BetterRTP.getInstance().getText() + .colorPre("&aVersion #&e" + Main.getInstance().getDescription().getVersion())); + } + + @Override + public String getHelp() { + return Main.getInstance().msgs.getBaseList(); + } +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommands.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommands.java new file mode 100644 index 0000000..c5e498b --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommands.java @@ -0,0 +1,9 @@ +package me.SuperRonanCraft.BetterRTPAddons.cmds; + +import org.bukkit.command.CommandSender; + +public interface AddonsCommands { + + void execute(CommandSender sendi, String label, String[] args); + +} diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommandsTabable.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommandsTabable.java new file mode 100644 index 0000000..e934f10 --- /dev/null +++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/cmds/AddonsCommandsTabable.java @@ -0,0 +1,9 @@ +package me.SuperRonanCraft.BetterRTPAddons.cmds; + +import org.bukkit.command.CommandSender; + +public interface AddonsCommandsTabable { + + void execute(CommandSender sendi, String label, String[] args); + +} diff --git a/BetterRTPAddons/src/main/resources/lang/en.yml b/BetterRTPAddons/src/main/resources/lang/en.yml index 1e0a08e..811c741 100644 --- a/BetterRTPAddons/src/main/resources/lang/en.yml +++ b/BetterRTPAddons/src/main/resources/lang/en.yml @@ -9,8 +9,9 @@ Portals: Name: '&7Please provide a name for this portal!' Duplicate: '&7This name is already being used for another portal, please choose another!' Location: - 1: '&7Location &a1 &7has been set' - 2: '&7Location &a2 &7has been set' + 1: '&7Location &a1 &7has been set to %location%' + 2: '&7Location &a2 &7has been set to %location%' + Ready: '&7Region has been created, please execute `/%command% portals create [world]` to create a new portal!' Look: '&7Please look towards a block and try again!' Remove: Confirm: '&cPortal &7%name% &chas been removed!' @@ -19,17 +20,24 @@ Portals: Prefix: '&e&m-----&6&l BetterRTP &7&lAddons &8| Portals List &e&m-----' Portal: ' &7- &6%name% &8| &7%location%' None: '&7There are no portals! &8Create one with `/rtp portals create`' + Usage: + Base: '&cUsage: &7/%command% portals ' + Remove: '&cUsage: &7/%command% portals remove ' MagicStick: Give: '&dMagic Stick&7 has been given to &a%player%' Given: '&7A &dMagic Stick&7 has been given to you' Player: '&cWhoops! &7Seems like their is no player by the name of &a%player% &7online!' - -Usage: - Portals: - Base: '&cUsage: &7/%command% portals ' - Remove: '&cUsage: &7/%command% portals remove ' +Addons: + List: + Prefix: '&e&m-----&6&l BetterRTP &7&lAddons &8| Addons Info &e&m-----' + Enabled: ' &7- &e%addon% &7- &aEnabled' + Disabled: ' &7- &e%addon% &7- &cDisabled' Help: Portals: ' &7- &e/%command% portals [args...] &7- Setup an rtp portal' - MagicStick: ' &7- &e/%command% magicstick give [player] &7- Give a magic stick to a player' \ No newline at end of file + MagicStick: ' &7- &e/%command% magicstick give [player] &7- Give a magic stick to a player' + Addons: ' &7- &e/%command% addons &7- View a list of addons commands' + Base: + Help: ' &7- &e/%command% addons help &7- View a list of available commands' + List: ' &7- &e/%command% addons list &7- View a list of all enabled addons' \ No newline at end of file diff --git a/BetterRTPAddons/src/main/resources/plugin.yml b/BetterRTPAddons/src/main/resources/plugin.yml index 48532b0..cd970cc 100644 --- a/BetterRTPAddons/src/main/resources/plugin.yml +++ b/BetterRTPAddons/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: me.SuperRonanCraft.BetterRTPAddons.Main -version: 1.4 +version: ${project.version} api-version: '1.13' name: BetterRTPAddons depend: [BetterRTP] diff --git a/pom.xml b/pom.xml index aa8bf6e..5c3c629 100644 --- a/pom.xml +++ b/pom.xml @@ -34,6 +34,12 @@ + + + src/main/resources + true + + ${project.artifactId}-${project.version} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 4af3a19..891877d 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: me.SuperRonanCraft.BetterRTP.BetterRTP -version: '3.1.0-5' +version: ${project.version} name: BetterRTP author: SuperRonanCraft softdepend: