From ed53f0b71deb90a5d5e57e536dfc4037652cb253 Mon Sep 17 00:00:00 2001 From: Cola Date: Mon, 28 Jun 2021 00:21:23 +0100 Subject: [PATCH 1/9] v2.15.0 - 1.17 and Java 16 All commands moved to aikar commands, will 100% need testing & tab completion --- .../{PlayerCommandMiddle.java => BaseCommandMiddle.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/{PlayerCommandMiddle.java => BaseCommandMiddle.java} (84%) diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/PlayerCommandMiddle.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/BaseCommandMiddle.java similarity index 84% rename from namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/PlayerCommandMiddle.java rename to namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/BaseCommandMiddle.java index 4998bac3..2a6b30f8 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/PlayerCommandMiddle.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/BaseCommandMiddle.java @@ -1,13 +1,13 @@ package vg.civcraft.mc.namelayer.command; +import co.aikar.commands.BaseCommand; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; -import vg.civcraft.mc.civmodcore.command.PlayerCommand; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.group.Group; -public abstract class PlayerCommandMiddle extends PlayerCommand { +public abstract class PlayerCommandMiddle extends BaseCommand { public PlayerCommandMiddle(String name) { super(name); From 4cad79c36217a2dcf299aaa261dc4b05aa752578 Mon Sep 17 00:00:00 2001 From: Cola Date: Mon, 28 Jun 2021 00:21:46 +0100 Subject: [PATCH 2/9] v2.15.0 - 1.17 and Java 16 All commands moved to aikar commands, will 100% need testing & tab completion --- namelayer-all/pom.xml | 2 +- namelayer-spigot/pom.xml | 81 ++----------- .../vg/civcraft/mc/namelayer/MojangNames.java | 19 +-- .../vg/civcraft/mc/namelayer/NameAPI.java | 2 +- .../mc/namelayer/NameLayerPlugin.java | 20 +--- .../namelayer/command/BaseCommandMiddle.java | 6 +- .../mc/namelayer/command/CommandHandler.java | 111 +++++++----------- .../command/commands/AcceptInvite.java | 48 ++++---- .../command/commands/AddBlacklist.java | 45 ++++--- .../command/commands/ChangePlayerName.java | 42 +++---- .../command/commands/CreateGroup.java | 42 +++---- .../command/commands/DeleteGroup.java | 45 ++++--- .../command/commands/DisciplineGroup.java | 38 +++--- .../command/commands/GetDefaultGroup.java | 26 ++-- .../command/commands/GlobalStats.java | 30 ++--- .../command/commands/GroupStats.java | 39 +++--- .../namelayer/command/commands/InfoDump.java | 108 ++++++----------- .../command/commands/InvitePlayer.java | 50 ++++---- .../namelayer/command/commands/JoinGroup.java | 51 ++++---- .../command/commands/LeaveGroup.java | 35 +++--- .../command/commands/LinkGroups.java | 43 +++---- .../command/commands/ListCurrentInvites.java | 29 ++--- .../command/commands/ListGroups.java | 43 +++---- .../command/commands/ListMembers.java | 44 ++++--- .../command/commands/ListPermissions.java | 42 +++---- .../command/commands/ListPlayerTypes.java | 29 ++--- .../command/commands/ListSubGroups.java | 40 +++---- .../command/commands/MergeGroups.java | 45 ++++--- .../command/commands/ModifyPermissions.java | 50 ++++---- .../command/commands/NameLayerGroupGui.java | 40 +++---- .../command/commands/PromotePlayer.java | 55 ++++----- .../command/commands/RejectInvite.java | 38 +++--- .../command/commands/RemoveBlacklist.java | 43 +++---- .../command/commands/RemoveMember.java | 45 +++---- .../command/commands/RevokeInvite.java | 45 ++++--- .../command/commands/SetDefaultGroup.java | 33 +++--- .../command/commands/SetPassword.java | 39 +++--- .../command/commands/ShowBlacklist.java | 39 +++--- .../commands/ToggleAutoAcceptInvites.java | 29 ++--- .../command/commands/TransferGroup.java | 36 +++--- .../command/commands/UnlinkGroups.java | 39 +++--- .../command/commands/UpdateName.java | 39 +++--- .../mc/namelayer/gui/AdminFunctionsGUI.java | 6 +- .../mc/namelayer/gui/GUIGroupOverview.java | 6 +- .../mc/namelayer/gui/InvitationGUI.java | 6 +- .../civcraft/mc/namelayer/gui/LinkingGUI.java | 6 +- .../mc/namelayer/gui/MainGroupGUI.java | 6 +- .../civcraft/mc/namelayer/gui/MergeGUI.java | 6 +- .../mc/namelayer/gui/PermissionManageGUI.java | 6 +- nms/interface/pom.xml | 14 +-- .../mc/namelayer/misc/MaterialInterface.java | 1 + nms/v1_17_R1/pom.xml | 32 +++++ .../namelayer/misc/v1_17_R1/MaterialMap.java | 46 ++++++++ .../misc/v1_17_R1/ProfileModifier.java | 70 +++++++++++ pom.xml | 14 ++- 55 files changed, 886 insertions(+), 1058 deletions(-) create mode 100644 nms/v1_17_R1/pom.xml create mode 100644 nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/MaterialMap.java create mode 100644 nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/ProfileModifier.java diff --git a/namelayer-all/pom.xml b/namelayer-all/pom.xml index cc5a9267..38319fb1 100644 --- a/namelayer-all/pom.xml +++ b/namelayer-all/pom.xml @@ -12,7 +12,7 @@ NameLayer - 2.14.1 + 2.15.0 diff --git a/namelayer-spigot/pom.xml b/namelayer-spigot/pom.xml index 1a21986b..8e4b6c03 100755 --- a/namelayer-spigot/pom.xml +++ b/namelayer-spigot/pom.xml @@ -16,19 +16,19 @@ vg.civcraft.mc.namelayer - namelayer-nms-v1_16_R3 + namelayer-nms-v1_17_R1 1.0.1 - - com.destroystokyo.paper - paper - 1.16.5-R0.1-SNAPSHOT - provided - + + io.papermc.paper + paper + 1.17-R0.1-SNAPSHOT + provided + vg.civcraft.mc.civmodcore CivModCore - 1.8.2 + 1.9.0 provided @@ -78,66 +78,11 @@ - - vg.civcraft.mc.namelayer - namelayer-nms-v1_8_R1 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_8_R2 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_8_R3 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_9_R1 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_9_R2 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_10_R1 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_11_R1 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_12_R1 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_13_R2 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_14_R1 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_16_R1 - 1.0.1 - - - vg.civcraft.mc.namelayer - namelayer-nms-v1_16_R3 - 1.0.1 - + + vg.civcraft.mc.namelayer + namelayer-nms-v1_17_R1 + 1.0.1 + diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/MojangNames.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/MojangNames.java index 06aab5e8..90b57ce4 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/MojangNames.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/MojangNames.java @@ -11,11 +11,12 @@ import java.util.Map; import java.util.TreeMap; import java.util.UUID; +import net.minecraft.nbt.NBTTagCompound; import org.bukkit.Bukkit; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.scheduler.BukkitTask; -import vg.civcraft.mc.civmodcore.serialization.NBTCompound; -import vg.civcraft.mc.civmodcore.util.MoreMapUtils; +import vg.civcraft.mc.civmodcore.nbt.NBTSerialization; +import vg.civcraft.mc.civmodcore.utilities.MoreMapUtils; import vg.civcraft.mc.namelayer.listeners.AssociationListener; public final class MojangNames { @@ -27,7 +28,7 @@ public final class MojangNames { private static BukkitTask SAVE_TASK; public static void init(final NameLayerPlugin plugin) { - final Path mojangFile = plugin.getResourceFile(PROFILES_FILE).toPath(); + final Path mojangFile = plugin.getDataFile(PROFILES_FILE).toPath(); // Load all the profiles that already exist Bukkit.getScheduler().runTaskAsynchronously( plugin, () -> load(plugin, mojangFile)); @@ -38,7 +39,7 @@ public static void init(final NameLayerPlugin plugin) { public static void reset(final NameLayerPlugin plugin) { if (!PROFILES.isEmpty()) { - save(plugin, plugin.getResourceFile(PROFILES_FILE).toPath()); + save(plugin, plugin.getDataFile(PROFILES_FILE).toPath()); PROFILES.clear(); } if (SAVE_TASK != null) { @@ -51,8 +52,8 @@ private static void load(final NameLayerPlugin plugin, final Path file) { PROFILES.clear(); try { final byte[] data = Files.readAllBytes(file); - final NBTCompound nbt = NBTCompound.fromBytes(data); - nbt.getKeys().forEach(key -> PROFILES.put(key, nbt.getUUID(key))); + final NBTTagCompound nbt = NBTSerialization.fromBytes(data); + nbt.getKeys().forEach(key -> PROFILES.put(key, nbt.a(key))); plugin.info("[MojangNames] Mojang profiles loaded!"); } catch (final NoSuchFileException ignored) {} @@ -62,9 +63,9 @@ private static void load(final NameLayerPlugin plugin, final Path file) { } private static void save(final NameLayerPlugin plugin, final Path file) { - final NBTCompound nbt = new NBTCompound(); - PROFILES.forEach((name, uuid) -> nbt.setUUID(name, uuid)); // Ignore highlighter - final byte[] data = NBTCompound.toBytes(nbt); + final NBTTagCompound nbt = new NBTTagCompound(); + PROFILES.forEach((name, uuid) -> nbt.a(name, uuid)); // Ignore highlighter + final byte[] data = NBTSerialization.toBytes(nbt); try { Files.write(file, data, StandardOpenOption.CREATE, diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameAPI.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameAPI.java index e4edab28..0f3f5e57 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameAPI.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameAPI.java @@ -51,7 +51,7 @@ public static UUID getUUID(String playerName) { } /** * Gets the playername from a given server from their uuid. - * @param uuid. + * @param uuid uuid of target player * @return Returns the PlayerName from the UUID. */ public static String getCurrentName(UUID uuid) { diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameLayerPlugin.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameLayerPlugin.java index 3a95d8b4..e6c318aa 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameLayerPlugin.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameLayerPlugin.java @@ -4,11 +4,8 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.List; import java.util.logging.Level; import org.bukkit.Bukkit; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; import vg.civcraft.mc.civmodcore.ACivMod; import vg.civcraft.mc.civmodcore.dao.ManagedDatasource; @@ -61,8 +58,7 @@ public void onEnable() { groupManagerDao.loadGroupsInvitations(); defaultGroupHandler = new DefaultGroupHandler(); autoAcceptHandler = new AutoAcceptHandler(groupManagerDao.loadAllAutoAccept()); - handle = new CommandHandler(); - handle.registerCommands(); + handle = new CommandHandler(this); } } @@ -70,20 +66,6 @@ public void registerListeners(){ registerListener(new AssociationListener()); registerListener(new PlayerListener()); } - - @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - if (!loadGroups) - return false; - return handle.execute(sender, cmd, args); - } - - @Override - public List onTabComplete(CommandSender sender, Command cmd, String alias, String[] args){ - if (!loadGroups) - return null; - return handle.complete(sender, cmd, args); - } @Override public void onDisable() { diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/BaseCommandMiddle.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/BaseCommandMiddle.java index 2a6b30f8..40e2992f 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/BaseCommandMiddle.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/BaseCommandMiddle.java @@ -7,11 +7,9 @@ import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.group.Group; -public abstract class PlayerCommandMiddle extends BaseCommand { +public abstract class BaseCommandMiddle extends BaseCommand { - public PlayerCommandMiddle(String name) { - super(name); - } + public BaseCommandMiddle() {} protected GroupManager gm = NameAPI.getGroupManager(); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/CommandHandler.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/CommandHandler.java index 39f64e86..80e6a771 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/CommandHandler.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/CommandHandler.java @@ -1,11 +1,8 @@ package vg.civcraft.mc.namelayer.command; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import vg.civcraft.mc.civmodcore.command.Command; +import co.aikar.commands.BaseCommand; +import vg.civcraft.mc.civmodcore.commands.CommandManager; +import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.command.commands.AcceptInvite; import vg.civcraft.mc.namelayer.command.commands.AddBlacklist; import vg.civcraft.mc.namelayer.command.commands.ChangePlayerName; @@ -24,7 +21,6 @@ import vg.civcraft.mc.namelayer.command.commands.ListMembers; import vg.civcraft.mc.namelayer.command.commands.ListPermissions; import vg.civcraft.mc.namelayer.command.commands.ListPlayerTypes; -import vg.civcraft.mc.namelayer.command.commands.MergeGroups; import vg.civcraft.mc.namelayer.command.commands.ModifyPermissions; import vg.civcraft.mc.namelayer.command.commands.NameLayerGroupGui; import vg.civcraft.mc.namelayer.command.commands.PromotePlayer; @@ -40,71 +36,48 @@ import vg.civcraft.mc.namelayer.command.commands.UpdateName; public class CommandHandler { - private Map commands = new HashMap<>(); - - public void registerCommands(){ - addCommands(new AcceptInvite("AcceptInvite")); - addCommands(new CreateGroup("CreateGroup")); - addCommands(new DeleteGroup("DeleteGroup")); - addCommands(new DisciplineGroup("DisiplineGroup")); - addCommands(new GlobalStats("GlobalStats")); - addCommands(new GroupStats("GroupStats")); - addCommands(new InfoDump("InfoDump")); - addCommands(new InvitePlayer("InvitePlayer")); - addCommands(new JoinGroup("JoinGroup")); - addCommands(new ListGroups("ListGroups")); - addCommands(new ListMembers("ListMembers")); - addCommands(new ListPermissions("ListPermissions")); - //addCommands(new MergeGroups("MergeGroups")); Disabled as it's currently semi broken - addCommands(new ModifyPermissions("ModifyPermissions")); - addCommands(new RemoveMember("RemoveMember")); - addCommands(new SetPassword("SetPassword")); - addCommands(new TransferGroup("TransferGroup")); - addCommands(new LeaveGroup("LeaveGroup")); - addCommands(new ListPlayerTypes("ListPlayerTypes")); - addCommands(new ListCurrentInvites("ListCurrentInvites")); - addCommands(new ToggleAutoAcceptInvites("AutoAcceptInvites")); - addCommands(new PromotePlayer("PromotePlayer")); - addCommands(new RejectInvite("RejectInvite")); - addCommands(new RevokeInvite("RevokeInvite")); - addCommands(new ChangePlayerName("ChangePlayerName")); - addCommands(new SetDefaultGroup("SetDefaultGroup")); - addCommands(new GetDefaultGroup("GetDefaultGroup")); - addCommands(new UpdateName("UpdateName")); - addCommands(new AddBlacklist("AddBlacklist")); - addCommands(new RemoveBlacklist("RemoveBlacklist")); - addCommands(new ShowBlacklist("ShowBlacklist")); - addCommands(new NameLayerGroupGui("OpenGUI")); - } - - public void addCommands(Command command){ - commands.put(command.getIdentifier().toLowerCase(), command); - } - - public boolean execute(CommandSender sender, org.bukkit.command.Command cmd, String[] args){ - if (commands.containsKey(cmd.getName().toLowerCase())){ - Command command = commands.get(cmd.getName().toLowerCase()); - if (args.length < command.getMinArguments() || args.length > command.getMaxArguments()){ - helpPlayer(command, sender); - return true; - } - command.execute(sender, args); - } - return true; + CommandManager commandManager; + public CommandHandler(NameLayerPlugin plugin) { + commandManager = new CommandManager(plugin); + commandManager.init(); } - public List complete(CommandSender sender, org.bukkit.command.Command cmd, String[] args){ - if (commands.containsKey(cmd.getName().toLowerCase())){ - Command command = commands.get(cmd.getName().toLowerCase()); - return command.tabComplete(sender, args); - } - return null; + public void registerCommands(){ + addCommands(new AcceptInvite()); + addCommands(new CreateGroup()); + addCommands(new DeleteGroup()); + addCommands(new DisciplineGroup()); + addCommands(new GlobalStats()); + addCommands(new GroupStats()); + addCommands(new InfoDump()); + addCommands(new InvitePlayer()); + addCommands(new JoinGroup()); + addCommands(new ListGroups()); + addCommands(new ListMembers()); + addCommands(new ListPermissions()); + //addCommands(new MergeGroups("MergeGroups")); Disabled as it's currently semi broken + addCommands(new ModifyPermissions()); + addCommands(new RemoveMember()); + addCommands(new SetPassword()); + addCommands(new TransferGroup()); + addCommands(new LeaveGroup()); + addCommands(new ListPlayerTypes()); + addCommands(new ListCurrentInvites()); + addCommands(new ToggleAutoAcceptInvites()); + addCommands(new PromotePlayer()); + addCommands(new RejectInvite()); + addCommands(new RevokeInvite()); + addCommands(new ChangePlayerName()); + addCommands(new SetDefaultGroup()); + addCommands(new GetDefaultGroup()); + addCommands(new UpdateName()); + addCommands(new AddBlacklist()); + addCommands(new RemoveBlacklist()); + addCommands(new ShowBlacklist()); + addCommands(new NameLayerGroupGui()); } - - public void helpPlayer(Command command, CommandSender sender){ - sender.sendMessage(new StringBuilder().append(ChatColor.RED + "Command: " ).append(command.getName()).toString()); - sender.sendMessage(new StringBuilder().append(ChatColor.RED + "Description: " ).append(command.getDescription()).toString()); - sender.sendMessage(new StringBuilder().append(ChatColor.RED + "Usage: ").append(command.getUsage()).toString()); + public void addCommands(BaseCommand command){ + commandManager.registerCommand(command); } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java index 301b0a40..335627f5 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java @@ -1,60 +1,58 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.InviteTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.listeners.PlayerListener; -public class AcceptInvite extends PlayerCommandMiddle{ +@CommandAlias("nlacceptinvite|nlacceptgroup|acceptinvite|acceptgroup|accept|join|ctjoin|ctj|ag") +public class AcceptInvite extends BaseCommandMiddle { - public AcceptInvite(String name) { - super(name); - setIdentifier("nlag"); - setDescription("Accept an invitation to a group."); - setUsage("/nlag "); - setArguments(1,1); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlag ") + @Description("Accept an invitation to a group.") + public void execute(CommandSender sender, String groupName) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.YELLOW + "Baby you dont got a uuid, why you got to make this difficult for everyone :("); - return true; + return; } Player p = (Player) sender; - Group group = gm.getGroup(args[0]); - if (groupIsNull(sender, args[0], group)) { - return true; + Group group = gm.getGroup(groupName); + if (groupIsNull(sender, groupName, group)) { + return; } UUID uuid = NameAPI.getUUID(p.getName()); PlayerType type = group.getInvite(uuid); if (type == null){ - p.sendMessage(ChatColor.RED + "You were not invited to that group."); - return true; + p.sendMessage(Component.text("You were not invited to that group.").color(NamedTextColor.RED)); + return; } if (group.isDisciplined()){ - p.sendMessage(ChatColor.RED + "That Group is disiplined."); - return true; + p.sendMessage(Component.text("That group is disiplined.").color(NamedTextColor.RED)); + return; } if (group.isMember(uuid)){ - p.sendMessage(ChatColor.RED + "You are already a member you cannot join again."); + p.sendMessage(Component.text("You are already a member you cannot join again.").color(NamedTextColor.RED)); group.removeInvite(uuid, true); - return true; + return; } group.addMember(uuid, type); group.removeInvite(uuid, true); PlayerListener.removeNotification(uuid, group); - p.sendMessage(ChatColor.GREEN + "You have successfully been added to the group as a " + type.name() +"."); - return true; + p.sendMessage(Component.text("You have successfully been added to the group as a " + type.name() +".").color(NamedTextColor.RED)); } - @Override + public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)){ return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AddBlacklist.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AddBlacklist.java index 44f7ee7b..c71d7a81 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AddBlacklist.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AddBlacklist.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -10,61 +13,53 @@ import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.BlackList; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class AddBlacklist extends PlayerCommandMiddle { +@CommandAlias("nlbl|blacklist|addblacklist") +public class AddBlacklist extends BaseCommandMiddle { - public AddBlacklist(String name) { - super(name); - setIdentifier("nlbl"); - setDescription("Blacklist a player for a specific group"); - setUsage("/nlbl "); - setArguments(2, 2); - } - - @Override - public boolean execute(CommandSender arg0, String[] arg1) { - if (!(arg0 instanceof Player)) { - arg0.sendMessage(ChatColor.RED + @Syntax("/nlbl ") + @Description("Blacklist a player for a specific group") + public void execute(CommandSender sender, String groupName, String playerName) { + if (!(sender instanceof Player)) { + sender.sendMessage(ChatColor.RED + "Why do you have to make this so difficult?"); - return true; + return; } - Player p = (Player) arg0; - Group g = GroupManager.getGroup(arg1[0]); + Player p = (Player) sender; + Group g = GroupManager.getGroup(groupName); if (g == null) { p.sendMessage(ChatColor.RED + "This group does not exist"); - return true; + return; } if (!gm.hasAccess(g, p.getUniqueId(), PermissionType.getPermission("BLACKLIST")) && !(p.isOp() || p.hasPermission("namelayer.admin"))) { p.sendMessage(ChatColor.RED + "You do not have the required permissions to do this"); - return true; + return; } - UUID targetUUID = NameAPI.getUUID(arg1[1]); + UUID targetUUID = NameAPI.getUUID(playerName); if (targetUUID == null) { p.sendMessage(ChatColor.RED + "This player does not exist"); - return true; + return; } if (g.isMember(targetUUID)) { p.sendMessage(ChatColor.RED + "You can't blacklist members of a group"); - return true; + return; } BlackList bl = NameLayerPlugin.getBlackList(); if (bl.isBlacklisted(g, targetUUID)) { p.sendMessage(ChatColor.RED + "This player is already blacklisted"); - return true; + return; } bl.addBlacklistMember(g, targetUUID, true); p.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(targetUUID) + " was successfully blacklisted on the group " + g.getName()); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ChangePlayerName.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ChangePlayerName.java index 5c7a3a45..72080671 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ChangePlayerName.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ChangePlayerName.java @@ -1,46 +1,40 @@ package vg.civcraft.mc.namelayer.command.commands; -import java.util.List; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.UUID; import org.bukkit.command.CommandSender; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; /** * Created by isaac on 2/6/15. */ -public class ChangePlayerName extends PlayerCommandMiddle { - public ChangePlayerName(String name) { - super(name); - setIdentifier("nlcpn"); - setDescription("Used by ops to change a players name"); - setUsage("/nlcpn "); - setArguments(2,2); - } - @Override - public boolean execute(CommandSender sender, String[] args) { +@CommandAlias("nlcpn|changeplayername") +@CommandPermission("namelayer.admin") +public class ChangePlayerName extends BaseCommandMiddle { + + @Syntax("/nlcpn ") + @Description("Used by ops to change a players name") + public void execute(CommandSender sender, String currentName, String changedName) { if (!sender.isOp() && !sender.hasPermission("namelayer.admin")) { sender.sendMessage("You're not an op. "); - return false; + return; } - UUID player = NameAPI.getUUID(args[0]); + UUID player = NameAPI.getUUID(currentName); if (player == null){ - sender.sendMessage(args[0] + " has never logged in"); - return false; + sender.sendMessage(currentName + " has never logged in"); + return; } - String newName = args[1].length() >= 16 ? args[1].substring(0, 16) : args[1]; + String newName = changedName.length() >= 16 ? changedName.substring(0, 16) : changedName; NameAPI.getAssociationList().changePlayer(newName, player); NameAPI.resetCache(player); - sender.sendMessage("player name changed have them relog for it to take affect"); - return true; - } - - @Override - public List tabComplete(CommandSender sender, String[] args) { - return null; + sender.sendMessage(currentName + "'s name has been changed to " + newName + ". Have them relog for it to take affect"); } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/CreateGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/CreateGroup.java index 351eb41c..fe317252 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/CreateGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/CreateGroup.java @@ -1,5 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.List; @@ -13,39 +17,33 @@ import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.RunnableOnGroup; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.Group; -public class CreateGroup extends PlayerCommandMiddle{ +@CommandAlias("nlcg|nlcreategroup|creategroup|create|ctcreate|creategroup|cg") +public class CreateGroup extends BaseCommandMiddle { - public CreateGroup(String name) { - super(name); - setIdentifier("nlcg"); - setDescription("Create a group (Public or Private). Password is optional."); - setUsage("/nlcg [password]"); - setArguments(1,3); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlcg [password]") + @Description("Create a group (Public or Private). Password is optional.") + public void execute(CommandSender sender, String groupName, @Optional String userPassword) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.DARK_BLUE + "Nice try console man, you can't bring me down. The computers won't win. " + "Dis a player commmand back off."); - return true; + return; } Player p = (Player) sender; - String name = args[0]; + String name = groupName; int currentGroupCount = gm.countGroups(p.getUniqueId()); if (NameLayerPlugin.getInstance().getGroupLimit() < currentGroupCount + 1 && !(p.isOp() || p.hasPermission("namelayer.admin"))){ p.sendMessage(ChatColor.RED + "You cannot create any more groups! Please delete an un-needed group before making more."); - return true; + return; } //enforce regulations on the name if (name.length() > 32) { p.sendMessage(ChatColor.RED + "The group name is not allowed to contain more than 32 characters"); - return true; + return; } Charset latin1 = StandardCharsets.ISO_8859_1; boolean invalidChars = false; @@ -65,18 +63,17 @@ public boolean execute(CommandSender sender, String[] args) { if(invalidChars) { p.sendMessage(ChatColor.RED + "You used characters, which are not allowed"); - return true; + return; } if (GroupManager.getGroup(name) != null){ p.sendMessage(ChatColor.RED + "That group is already taken. Try another unique group name."); - return true; + return; } String password = ""; - if (args.length == 2) { - password = args[1]; - } - else { + if (userPassword != null) { + password = userPassword; + } else { password = null; } final UUID uuid = NameAPI.getUUID(p.getName()); @@ -102,7 +99,6 @@ public void run() { p.sendMessage(ChatColor.YELLOW + "You have reached the group limit with " + NameLayerPlugin.getInstance().getGroupLimit() + " groups! Please delete un-needed groups if you wish to create more."); } p.sendMessage(ChatColor.GREEN + "Group creation request is in process."); - return true; } public List tabComplete(CommandSender sender, String[] args) { diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java index 870083fd..c8aeffa4 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -10,33 +13,26 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class DeleteGroup extends PlayerCommandMiddle{ +@CommandAlias("nldg") +public class DeleteGroup extends BaseCommandMiddle { - private Map confirmDeleteGroup; + private Map confirmDeleteGroup = new HashMap(); - public DeleteGroup(String name) { - super(name); - setIdentifier("nldg"); - setDescription("Delete a group."); - setUsage("/nldg "); - setArguments(1,1); - confirmDeleteGroup = new HashMap(); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nldg ") + @Description("Delete a group.") + public void execute(CommandSender sender, String groupName) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.DARK_AQUA + "I grow tired of this, NO."); - return true; + return; } Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); - String x = args[0]; + String x = groupName; String confirm = "CONFIRM"; if(x.equals(confirm)) { @@ -48,7 +44,7 @@ public boolean execute(CommandSender sender, String[] args) { //player could have lost delete permission in the mean time if (!NameAPI.getGroupManager().hasAccess(gD, uuid, PermissionType.getPermission("DELETE"))){ p.sendMessage(ChatColor.RED + "You do not have permission to run that command."); - return true; + return; } Date now = new Date(System.currentTimeMillis() - 15000); //if it has been less than 15 seconds @@ -62,12 +58,12 @@ public boolean execute(CommandSender sender, String[] args) { + " Check back later to see if group is deleted."); confirmDeleteGroup.remove(uuid); - return true; + return; } else{ p.sendMessage(ChatColor.RED + "You did not do /nldg CONFIRM fast enough, you will need to start over"); confirmDeleteGroup.remove(uuid); - return true; + return; } } @@ -75,20 +71,20 @@ public boolean execute(CommandSender sender, String[] args) { } Group g = gm.getGroup(x); if (groupIsNull(sender, x, g)) { - return true; + return; } if (!NameAPI.getGroupManager().hasAccess(g, uuid, PermissionType.getPermission("DELETE"))){ p.sendMessage(ChatColor.RED + "You do not have permission to run that command."); - return true; + return; } PlayerType pType = g.getPlayerType(uuid); if (pType == null && !p.hasPermission("namelayer.admin")){ p.sendMessage(ChatColor.RED + "You are not on that group."); - return true; + return; } if (g.isDisciplined() && !p.hasPermission("namelayer.admin")){ p.sendMessage(ChatColor.RED + "Group is disiplined."); - return true; + return; } //set that user can confirm group in 15 seconds Date date = new Date(); @@ -96,10 +92,9 @@ public boolean execute(CommandSender sender, String[] args) { String[] groupDate = new String[] {g.getName(), dateString.toString()}; p.sendMessage(ChatColor.GREEN + "To confirm deletion of group: " + g.getName() + "\nuse /nldg CONFIRM within 15 seconds"); confirmDeleteGroup.put(uuid, groupDate); - return true; + return; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)){ return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java index ff41426c..7da9d8a4 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java @@ -1,36 +1,34 @@ package vg.civcraft.mc.namelayer.command.commands; -import java.util.List; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.Group; -public class DisciplineGroup extends PlayerCommandMiddle{ +@CommandAlias("nldig") +@CommandPermission("namelayer.admin") +public class DisciplineGroup extends BaseCommandMiddle { - public DisciplineGroup(String name) { - super(name); - setIdentifier("nldig"); - setDescription("Disable a group from working."); - setUsage("/nldig "); - setArguments(1,1); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nldig ") + @Description("Disable a group from working.") + public void execute(CommandSender sender, String groupName) { if (!(sender instanceof Player)) sender.sendMessage(ChatColor.AQUA + "Meh, fine, just this one."); // checks and stuff should be in plugin.yml so going to assume that sender has perms // naaaaaaa Player p = (Player) sender; - Group g = gm.getGroup(args[0]); - if (groupIsNull(sender, args[0], g)) { - return true; + Group g = gm.getGroup(groupName); + if (groupIsNull(sender, groupName, g)) { + return; } if (!p.isOp() || !p.hasPermission("namelayer.admin")){ p.sendMessage(ChatColor.RED + "You do not have permission for this op command."); - return true; + return; } if (g.isDisciplined()){ g.setDisciplined(false); @@ -40,11 +38,5 @@ public boolean execute(CommandSender sender, String[] args) { g.setDisciplined(true); sender.sendMessage(ChatColor.GREEN + "Group has been disabled."); } - return true; - } - - @Override - public List tabComplete(CommandSender sender, String[] args) { - return null; } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GetDefaultGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GetDefaultGroup.java index 7340e602..a6c20896 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GetDefaultGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GetDefaultGroup.java @@ -1,29 +1,26 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; -public class GetDefaultGroup extends PlayerCommandMiddle{ +@CommandAlias("nlgdg") +public class GetDefaultGroup extends BaseCommandMiddle { - public GetDefaultGroup(String name) { - super(name); - setIdentifier("nlgdg"); - setDescription("Get a players default group"); - setUsage("/nlgdg"); - setArguments(0,0); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlgdg") + @Description("Get a players default group") + public void execute(CommandSender sender) { if (!(sender instanceof Player)){ sender.sendMessage("I don't think you need to do that."); - return true; + return; } Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); @@ -35,11 +32,8 @@ public boolean execute(CommandSender sender, String[] args) { else{ p.sendMessage(ChatColor.GREEN + "Your current default group is " + x); } - - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GlobalStats.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GlobalStats.java index aff28dd7..42e4e55d 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GlobalStats.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GlobalStats.java @@ -1,24 +1,22 @@ package vg.civcraft.mc.namelayer.command.commands; -import java.util.List; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -public class GlobalStats extends PlayerCommandMiddle{ +@CommandAlias("nlgls") +@CommandPermission("namelayer.admin") +public class GlobalStats extends BaseCommandMiddle { - public GlobalStats(String name) { - super(name); - setIdentifier("nlgls"); - setDescription("Get the amount of global groups."); - setUsage("/nlgls"); - setArguments(0,0); - } - - @Override - public boolean execute(final CommandSender sender, String[] args) { + @Syntax("/nlgls") + @Description("Get the amount of global groups.") + public void execute(final CommandSender sender) { Bukkit.getScheduler().runTaskAsynchronously(NameLayerPlugin.getInstance(), new Runnable(){ @Override @@ -29,11 +27,5 @@ public void run() { }); sender.sendMessage(ChatColor.GREEN + "Stats are being retrieved, please wait."); - return true; - } - - @Override - public List tabComplete(CommandSender sender, String[] args) { - return null; } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GroupStats.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GroupStats.java index 96931314..9fb46dcf 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GroupStats.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GroupStats.java @@ -1,5 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.Bukkit; @@ -9,52 +13,43 @@ import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class GroupStats extends PlayerCommandMiddle { +@CommandAlias("nlgs") +@CommandPermission("namelayer.admin") +public class GroupStats extends BaseCommandMiddle { - public GroupStats(String name) { - super(name); - setIdentifier("nlgs"); - setDescription("Get stats about a group."); - setUsage("/nlgs "); - setArguments(1, 1); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlgs ") + @Description("Get stats about a group.") + public void execute(CommandSender sender, String groupName) { if (!(sender instanceof Player)) { sender.sendMessage("meh"); - return true; + return; } Player p = (Player) sender; - Group g = gm.getGroup(args[0]); + Group g = gm.getGroup(groupName); UUID uuid = NameAPI.getUUID(p.getName()); - if (groupIsNull(sender, args[0], g)) { - return true; + if (groupIsNull(sender, groupName, g)) { + return; } PlayerType pType = g.getPlayerType(uuid); if (!g.isMember(uuid) && !(p.isOp() || p.hasPermission("namelayer.admin"))){ p.sendMessage(ChatColor.RED + "You are not on this group."); - return true; + return; } boolean hasPerm = NameAPI.getGroupManager().hasAccess(g, uuid, PermissionType.getPermission("GROUPSTATS")); if (!(p.isOp() || p.hasPermission("namelayer.admin")) && !hasPerm){ p.sendMessage(ChatColor.RED + "You do not have permission to run that command."); - return true; + return; } Bukkit.getScheduler().runTaskAsynchronously(NameLayerPlugin.getInstance(), new StatsMessage(p, g)); - - return true; } - - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InfoDump.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InfoDump.java index 04bf6bf8..da822381 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InfoDump.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InfoDump.java @@ -1,5 +1,10 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -7,29 +12,21 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.GroupPermission; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class InfoDump extends PlayerCommandMiddle -{ +@CommandAlias("nlid") +@CommandPermission("namelayer.admin") +public class InfoDump extends BaseCommandMiddle { - public InfoDump(String name) - { - super(name); - setIdentifier("nlid"); - setDescription("This command dumps group info for CitadelGUI."); - setUsage("/nlid (page)"); - setArguments(0, 1); - } - - @Override - public boolean execute(CommandSender sender, String[] args) - { - if (!(sender instanceof Player)){ + @Syntax("/nlid (page)") + @Description("This command dumps group info for CitadelGUI.") + public void execute(CommandSender sender, @Optional String groupID) { + if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED + "You are not a player?"); - return true; + return; } Player player = (Player)sender; @@ -37,34 +34,27 @@ public boolean execute(CommandSender sender, String[] args) List groupNames = gm.getAllGroupNames(player.getUniqueId()); - if(args.length == 0) - { + if(groupID == null) { player.sendMessage(ChatColor.GREEN + "[NLID]: " + groupNames.size()); - return true; - } - else - { + return; + } else { int page = 0; - try - { - page = Integer.parseInt(args[0]); + try { + page = Integer.parseInt(groupID); } - catch(Exception e) - { + catch(Exception e) { player.sendMessage(ChatColor.RED + "Please enter a valid number"); - return true; + return; } Group group; - try - { + try { group = gm.getGroup(groupNames.get(page-1)); } - catch(Exception e) - { + catch(Exception e) { player.sendMessage(ChatColor.RED + "No such Group"); - return true; + return; } GroupPermission permissions = gm.getPermissionforGroup(group); StringBuilder outputBuilder = new StringBuilder(); @@ -77,63 +67,46 @@ public boolean execute(CommandSender sender, String[] args) outputBuilder.append(" : [OWNERS]"); - if(gm.hasAccess(group, playerUUID, PermissionType.getPermission("OWNER"))) - { - for(UUID ownerUUID : group.getAllMembers(PlayerType.OWNER)) - { + if(gm.hasAccess(group, playerUUID, PermissionType.getPermission("OWNER"))) { + for(UUID ownerUUID : group.getAllMembers(PlayerType.OWNER)) { outputBuilder.append(" " + NameAPI.getCurrentName(ownerUUID)); } - } - else - { + } else { outputBuilder.append(" accounts-"); outputBuilder.append(group.getAllMembers(PlayerType.OWNER).size()); } outputBuilder.append(" : [ADMINS]"); - if(gm.hasAccess(group, playerUUID, PermissionType.getPermission("ADMINS"))) - { - for(UUID adminUUID : group.getAllMembers(PlayerType.ADMINS)) - { + if(gm.hasAccess(group, playerUUID, PermissionType.getPermission("ADMINS"))) { + for(UUID adminUUID : group.getAllMembers(PlayerType.ADMINS)) { outputBuilder.append(" " + NameAPI.getCurrentName(adminUUID)); } - } - else - { + } else { outputBuilder.append(" accounts-"); outputBuilder.append(group.getAllMembers(PlayerType.ADMINS).size()); } outputBuilder.append(" : [MODS]"); - if(gm.hasAccess(group, playerUUID, PermissionType.getPermission("MODS"))) - { - for(UUID modUUID : group.getAllMembers(PlayerType.MODS)) - { + if(gm.hasAccess(group, playerUUID, PermissionType.getPermission("MODS"))) { + for(UUID modUUID : group.getAllMembers(PlayerType.MODS)) { outputBuilder.append(" " + NameAPI.getCurrentName(modUUID)); } - } - else - { + } else { outputBuilder.append(" accounts-"); outputBuilder.append(group.getAllMembers(PlayerType.MODS).size()); } outputBuilder.append(" : [MEMBERS]"); - if(gm.hasAccess(group, playerUUID, PermissionType.getPermission("MEMBERS"))) - { - for(UUID memberUUID : group.getAllMembers(PlayerType.MEMBERS)) - { + if(gm.hasAccess(group, playerUUID, PermissionType.getPermission("MEMBERS"))) { + for(UUID memberUUID : group.getAllMembers(PlayerType.MEMBERS)) { outputBuilder.append(" " + NameAPI.getCurrentName(memberUUID)); } - } - else - { + } else { outputBuilder.append(" accounts-"); outputBuilder.append(group.getAllMembers(PlayerType.MEMBERS).size()); } - if(gm.hasAccess(group, playerUUID, PermissionType.getPermission("LIST_PERMS"))) - { + if(gm.hasAccess(group, playerUUID, PermissionType.getPermission("LIST_PERMS"))) { outputBuilder.append(" : [OWNER-PERMS] " + permissions.listPermsforPlayerType(PlayerType.OWNER)); outputBuilder.append(" : [ADMIN-PERMS] " + permissions.listPermsforPlayerType(PlayerType.ADMINS)); outputBuilder.append(" : [MOD-PERMS] " + permissions.listPermsforPlayerType(PlayerType.MODS)); @@ -141,13 +114,6 @@ public boolean execute(CommandSender sender, String[] args) } player.sendMessage(ChatColor.GREEN + outputBuilder.toString()); - return true; } } - - @Override - public List tabComplete(CommandSender sender, String[] args) - { - return null; - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InvitePlayer.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InvitePlayer.java index fc732149..214f52ed 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InvitePlayer.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InvitePlayer.java @@ -1,5 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -15,43 +19,37 @@ import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.listeners.PlayerListener; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class InvitePlayer extends PlayerCommandMiddle{ +@CommandAlias("nlip") +public class InvitePlayer extends BaseCommandMiddle { - public InvitePlayer(String name) { - super(name); - setIdentifier("nlip"); - setDescription("Invite a player to the PlayerType " + PlayerType.getStringOfTypes() + " of a group."); - setUsage("/nlip (PlayerType- default MEMBERS)"); - setArguments(2,3); - } - - @Override - public boolean execute(CommandSender s, String[] args) { - final String targetGroup = args[0]; - final String targetPlayer = args[1]; - final String targetType = args.length >= 3 ? args[2] : null; + @Syntax("/nlip (PlayerType- default MEMBERS)") + @Description("Invite a player to a group.") + public void execute(CommandSender s, String groupName, String playerName, @Optional String playerRank) { + final String targetGroup = groupName; + final String targetPlayer = playerName; + final String targetType = playerRank; final boolean isPlayer = s instanceof Player; final Player p = isPlayer ? (Player)s : null; final boolean isAdmin = !isPlayer || p.hasPermission("namelayer.admin"); final Group group = GroupManager.getGroup(targetGroup); if (groupIsNull(s, targetGroup, group)) { - return true; + return; } if (!isAdmin && group.isDisciplined()) { s.sendMessage(ChatColor.RED + "This group is disiplined."); - return true; + return; } final UUID targetAccount = NameAPI.getUUID(targetPlayer); if (targetAccount == null) { s.sendMessage(ChatColor.RED + "The player has never played before."); - return true; + return; } final PlayerType pType = targetType != null ? PlayerType.getPlayerType(targetType) : PlayerType.MEMBERS; if (pType == null) { @@ -60,11 +58,11 @@ public boolean execute(CommandSender s, String[] args) { } else { s.sendMessage("Invalid player type"); } - return true; + return; } if (pType == PlayerType.NOT_BLACKLISTED) { p.sendMessage(ChatColor.RED + "I think we both know that this shouldn't be possible."); - return true; + return; } if (!isAdmin) { // Perform access check @@ -72,7 +70,7 @@ public boolean execute(CommandSender s, String[] args) { final PlayerType t = group.getPlayerType(executor); // playertype for the player running the command. if (t == null) { s.sendMessage(ChatColor.RED + "You are not on that group."); - return true; + return; } boolean allowed = false; switch (pType) { // depending on the type the executor wants to add the player to @@ -94,18 +92,18 @@ public boolean execute(CommandSender s, String[] args) { } if (!allowed) { s.sendMessage(ChatColor.RED + "You do not have permissions to modify this group."); - return true; + return; } } if (group.isCurrentMember(targetAccount)) { // So a player can't demote someone who is above them. s.sendMessage(ChatColor.RED + "Player is already a member. " + "Use /promoteplayer to change their PlayerType."); - return true; + return; } if(NameLayerPlugin.getBlackList().isBlacklisted(group, targetAccount)) { s.sendMessage(ChatColor.RED + "This player is currently blacklisted, you have to unblacklist him with /removeblacklist before inviting him to the group"); - return true; + return; } if (!isAdmin) { sendInvitation(group, pType, targetAccount, p.getUniqueId(), true); @@ -115,7 +113,6 @@ public boolean execute(CommandSender s, String[] args) { } s.sendMessage(ChatColor.GREEN + "The invitation has been sent." + "\n Use /revoke to Revoke an invite."); - return true; } public static void sendInvitation(Group group, PlayerType pType, UUID invitedPlayer, UUID inviter, boolean saveToDB){ @@ -167,8 +164,7 @@ public static void sendInvitation(Group group, PlayerType pType, UUID invitedPla PlayerListener.addNotification(invitedPlayer, group); } } - - @Override + public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java index 9c57aa4d..d355645f 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java @@ -1,6 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; -import java.util.List; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -8,69 +10,56 @@ import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.GroupPermission; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class JoinGroup extends PlayerCommandMiddle{ +@CommandAlias("nljg") +public class JoinGroup extends BaseCommandMiddle { - public JoinGroup(String name) { - super(name); - setIdentifier("nljg"); - setDescription("Join a password protected group."); - setUsage("/nljg "); - setArguments(2,2); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nljg ") + @Description("Join a password protected group.") + public void execute(CommandSender sender, String groupName, String attemptedPassword) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "How would this even work. Seriously my reddit account is rourke750, explain to me why " + "you would ever want to do this from console and I will remove this check."); - return true; + return; } Player p = (Player) sender; - Group g = gm.getGroup(args[0]); - if (groupIsNull(sender, args[0], g)) { - return true; + Group g = gm.getGroup(groupName); + if (groupIsNull(sender, groupName, g)) { + return; } if (g.isDisciplined()){ p.sendMessage(ChatColor.RED + "This group is disiplined."); - return true; + return; } if (g.getPassword() == null){ p.sendMessage(ChatColor.GREEN + "This group does not have a password, so you can't join it."); - return true; + return; } - if (!g.getPassword().equals(args[1])){ + if (!g.getPassword().equals(attemptedPassword)){ p.sendMessage(ChatColor.RED + "That password is incorrect"); - return true; + return; } UUID uuid = NameAPI.getUUID(p.getName()); GroupPermission groupPerm = gm.getPermissionforGroup(g); PlayerType pType = groupPerm.getFirstWithPerm(PermissionType.getPermission("JOIN_PASSWORD")); if (pType == null){ p.sendMessage(ChatColor.RED + "Someone derped. This group does not have the specified permission to let you join, sorry."); - return true; + return; } if (g.isCurrentMember(uuid)){ p.sendMessage(ChatColor.RED + "You are already a member."); - return true; + return; } if(NameLayerPlugin.getBlackList().isBlacklisted(g, uuid)) { p.sendMessage(ChatColor.RED + "You can not join a group you have been blacklisted from"); - return true; + return; } g.addMember(uuid, pType); p.sendMessage(ChatColor.GREEN + "You have successfully been added to this group."); - return true; - } - - public List tabComplete(CommandSender sender, String[] args) { - return null; } - - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java index bf4c97b2..e49a44e3 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java @@ -1,51 +1,46 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; -public class LeaveGroup extends PlayerCommandMiddle{ +@CommandAlias("nlleg") +public class LeaveGroup extends BaseCommandMiddle { - public LeaveGroup(String name) { - super(name); - setIdentifier("nlleg"); - setDescription("Leave a group"); - setUsage("/nlleg "); - setArguments(1,1); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlleg ") + @Description("Leave a group") + public void execute(CommandSender sender, String groupName) { if (!(sender instanceof Player)){ sender.sendMessage("Nope, be player"); - return true; + return; } Player p = (Player) sender; - Group g = gm.getGroup(args[0]); - if (groupIsNull(sender, args[0], g)) { - return true; + Group g = gm.getGroup(groupName); + if (groupIsNull(sender, groupName, g)) { + return; } UUID uuid = NameAPI.getUUID(p.getName()); if (!g.isCurrentMember(uuid)){ p.sendMessage(ChatColor.RED + "You are not a member of this group."); - return true; + return; } if (g.isDisciplined()){ p.sendMessage(ChatColor.RED + "This group is disciplined."); - return true; + return; } g.removeMember(uuid); p.sendMessage(ChatColor.GREEN + "You have been removed from the group."); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LinkGroups.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LinkGroups.java index 5025919e..f8ddd076 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LinkGroups.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LinkGroups.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -7,46 +10,40 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class LinkGroups extends PlayerCommandMiddle { +@CommandAlias("nllink") +public class LinkGroups extends BaseCommandMiddle { - public LinkGroups(String name) { - super(name); - setIdentifier("nllink"); - setDescription("Links two groups to each other as nested groups."); - setUsage("/nllink "); - setArguments(2,2); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nllink ") + @Description("Links two groups to each other as nested groups.") + public void execute(CommandSender sender, String parentGroup, String childGroup) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.LIGHT_PURPLE + "And it feels like I am just to close to " + "touch you, but you are not a player."); - return true; + return; } Player p = (Player) sender; - String supername = args[0], subname = args[1]; + String supername = parentGroup, subname = childGroup; Group supergroup = GroupManager.getGroup(supername); if (groupIsNull(sender, supername, supergroup)) { - return true; + return; } Group subgroup = GroupManager.getGroup(subname); if (groupIsNull(sender, subname, subgroup)) { - return true; + return; } if(subgroup.getName().equalsIgnoreCase(supergroup.getName())) { p.sendMessage(ChatColor.RED + "Not today"); - return true; + return; } // check if groups are accessible @@ -55,28 +52,28 @@ public boolean execute(CommandSender sender, String[] args) { if (!supergroup.isMember(uuid) || !subgroup.isMember(uuid)) { p.sendMessage(ChatColor.RED + "You're not on one of the groups."); - return true; + return; } if (supergroup.isDisciplined() || subgroup.isDisciplined()) { p.sendMessage(ChatColor.RED + "One of the groups is disciplined."); - return true; + return; } if (!gm.hasAccess(subgroup, uuid, PermissionType.getPermission("LINKING"))) { p.sendMessage(ChatColor.RED + "You don't have permission to do that on the sub group."); - return true; + return; } if (!gm.hasAccess(supergroup, uuid, PermissionType.getPermission("LINKING"))) { p.sendMessage(ChatColor.RED + "You don't have permission to do that on the super group."); - return true; + return; } if (Group.areLinked(supergroup, subgroup)) { p.sendMessage(ChatColor.RED + "These groups are already linked."); - return true; + return; } boolean success = Group.link(supergroup, subgroup, true); @@ -88,10 +85,8 @@ public boolean execute(CommandSender sender, String[] args) { message = ChatColor.RED + "Failed to link the groups."; } p.sendMessage(message); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.BLUE diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListCurrentInvites.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListCurrentInvites.java index 0d72f50c..61408368 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListCurrentInvites.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListCurrentInvites.java @@ -1,34 +1,25 @@ package vg.civcraft.mc.namelayer.command.commands; -import java.util.List; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.listeners.PlayerListener; -public class ListCurrentInvites extends PlayerCommandMiddle{ +@CommandAlias("nllci") +public class ListCurrentInvites extends BaseCommandMiddle { - public ListCurrentInvites(String name) { - super(name); - setIdentifier("nllci"); - setDescription("List your current invites."); - setUsage("/nllci"); - setArguments(0,0); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nllci") + @Description("List your current invites.") + public void execute(CommandSender sender) { if (!(sender instanceof Player)){ sender.sendMessage("back off console man"); - return true; + return; } Player p = (Player) sender; p.sendMessage(PlayerListener.getNotificationsInStringForm(NameAPI.getUUID(p.getName()))); - return true; } - public List tabComplete(CommandSender sender, String[] args) { - return null; - } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListGroups.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListGroups.java index 4a245bfc..0510e987 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListGroups.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListGroups.java @@ -1,5 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -7,35 +11,29 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.Group; -public class ListGroups extends PlayerCommandMiddle { +@CommandAlias("nllg") +public class ListGroups extends BaseCommandMiddle { - public ListGroups(String name) { - super(name); - setIdentifier("nllg"); - setDescription("List groups."); - setUsage("/nllg "); - setArguments(0,1); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nllg ") + @Description("List groups.") + public void execute(CommandSender sender, @Optional String pageNumber) { Player p = null; UUID uuid = null; boolean autopages = false; if ((sender.isOp() || sender.hasPermission("namelayer.admin"))) { - if (args.length == 0) { + if (pageNumber == null) { + uuid = NameAPI.getUUID(sender.getName()); + } else if (pageNumber != null) { uuid = NameAPI.getUUID(sender.getName()); - } else if (args.length == 1) { - uuid = NameAPI.getUUID(args[0]); } if (uuid == null) { sender.sendMessage(ChatColor.RED + "UUID is NULL, OP Usage is /nllg "); - return true; + return; } autopages = true; } else { @@ -55,12 +53,12 @@ public boolean execute(CommandSender sender, String[] args) { int actualPages = pages; int target = 1; - if (args.length == 1) { + if (pageNumber != null) { try { - target = Integer.parseInt(args[0]); + target = Integer.parseInt(pageNumber); } catch (NumberFormatException e) { - sender.sendMessage(ChatColor.RED + args[0] + " is not a number"); - return false; + sender.sendMessage(ChatColor.RED + pageNumber + " is not a number"); + return; } } @@ -89,10 +87,5 @@ public boolean execute(CommandSender sender, String[] args) { } } sender.sendMessage(sb.toString()); - return true; } - public List tabComplete(CommandSender sender, String[] args) { - return null; - } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java index 838873fa..a6b66d8e 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java @@ -1,5 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import com.google.common.collect.Lists; import java.util.List; import java.util.UUID; @@ -9,54 +13,48 @@ import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class ListMembers extends PlayerCommandMiddle { +@CommandAlias("nllm") +public class ListMembers extends BaseCommandMiddle { - public ListMembers(String name) { - super(name); - setIdentifier("nllm"); - setDescription("List the members in a group"); - setUsage("/nllm (PlayerType)"); - setArguments(1,3); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nllm (PlayerType)") + @Description("List the members in a group") + public void execute(CommandSender sender, String groupName, @Optional String playerType, @Optional String playerName) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.LIGHT_PURPLE + "No can do."); - return true; + return; } Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); - String groupname = args[0]; + String groupname = groupName; Group group = GroupManager.getGroup(groupname); if (groupIsNull(sender, groupname, group)) { - return true; + return; } if (!p.hasPermission("namelayer.admin")) { if (!group.isMember(uuid)) { p.sendMessage(ChatColor.RED + "You're not on this group."); - return true; + return; } if (!gm.hasAccess(group, uuid, PermissionType.getPermission("GROUPSTATS"))) { p.sendMessage(ChatColor.RED + "You don't have permission to run that command."); - return true; + return; } } List uuids = null; - if (args.length == 3) { - String nameMin = args[1], nameMax = args[2]; + if (playerType != null && playerName != null) { + String nameMin = playerType, nameMax = playerName; List members = group.getAllMembers(); uuids = Lists.newArrayList(); @@ -68,14 +66,14 @@ public boolean execute(CommandSender sender, String[] args) { uuids.add(member); } } - } else if (args.length == 2) { - String playerRank = args[1]; + } else if (playerType != null && playerName == null) { + String playerRank = playerType; PlayerType filterType = PlayerType.getPlayerType(playerRank); if (filterType == null) { // user entered invalid type, show them PlayerType.displayPlayerTypes(p); - return true; + return; } uuids = group.getAllMembers(filterType); @@ -94,10 +92,8 @@ public boolean execute(CommandSender sender, String[] args) { } p.sendMessage(sb.toString()); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) { return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java index bdd3de68..95615fa7 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java @@ -1,5 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -7,51 +11,45 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.GroupPermission; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class ListPermissions extends PlayerCommandMiddle{ +@CommandAlias("nllp") +public class ListPermissions extends BaseCommandMiddle { - public ListPermissions(String name) { - super(name); - setIdentifier("nllp"); - setDescription("Show permissions for a PlayerType in a specific group."); - setUsage("/nllp "); - setArguments(1,2); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nllp ") + @Description("Show permissions for a PlayerType in a specific group.") + public void execute(CommandSender sender, String groupName, @Optional String playerRank) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "No."); - return true; + return; } Player p = (Player) sender; - Group g = gm.getGroup(args[0]); - if (groupIsNull(sender, args[0], g)) { - return true; + Group g = gm.getGroup(groupName); + if (groupIsNull(sender, groupName, g)) { + return; } UUID uuid = NameAPI.getUUID(p.getName()); PlayerType playerType = g.getPlayerType(uuid); if (playerType == null){ p.sendMessage(ChatColor.RED + "You do not have access to this group."); - return true; + return; } String perms = null; GroupPermission gPerm = gm.getPermissionforGroup(g); - if(args.length > 1){ + if(playerRank != null){ if (!gm.hasAccess(g, uuid, PermissionType.getPermission("LIST_PERMS"))){ p.sendMessage(ChatColor.RED + "You do not have permission in this group to run this command."); - return true; + return; } - PlayerType check = PlayerType.getPlayerType(args[1]); + PlayerType check = PlayerType.getPlayerType(playerRank); if (check == null){ PlayerType.displayPlayerTypes(p); - return true; + return; } perms = gPerm.listPermsforPlayerType(check); } @@ -59,10 +57,8 @@ public boolean execute(CommandSender sender, String[] args) { perms = gPerm.listPermsforPlayerType(playerType); p.sendMessage(ChatColor.GREEN + perms); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPlayerTypes.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPlayerTypes.java index 2fd67458..53ddbdf5 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPlayerTypes.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPlayerTypes.java @@ -1,33 +1,24 @@ package vg.civcraft.mc.namelayer.command.commands; -import java.util.List; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -public class ListPlayerTypes extends PlayerCommandMiddle{ +@CommandAlias("nllpt") +public class ListPlayerTypes extends BaseCommandMiddle { - public ListPlayerTypes(String name) { - super(name); - setIdentifier("nllpt"); - setDescription("List PlayerTypes."); - setUsage("/nllpt"); - setArguments(0,0); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Description("List PlayerTypes.") + @Syntax("/nllpt") + public void execute(CommandSender sender) { if (!(sender instanceof Player)){ sender.sendMessage("wereyjukqswedfrgyjukl."); - return true; + return; } Player p = (Player) sender; PlayerType.displayPlayerTypesnllpt(p); - return true; - } - - public List tabComplete(CommandSender sender, String[] args) { - return null; } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListSubGroups.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListSubGroups.java index f08bfb24..aa07da27 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListSubGroups.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListSubGroups.java @@ -1,5 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import com.google.common.collect.Sets; import java.util.List; import java.util.Set; @@ -9,27 +13,21 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class ListSubGroups extends PlayerCommandMiddle { +@CommandAlias("nllsg") +public class ListSubGroups extends BaseCommandMiddle { private static String format = "%s%s : (%s)\n"; - - public ListSubGroups(String name) { - super(name); - setIdentifier("nllsg"); - setDescription("List the nested group hierarchy."); - setUsage("/nllsg [group]"); - setArguments(0,1); - } - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nllsg [group]") + @Description("List the nested group hierarchy.") + public void execute(CommandSender sender, @Optional String targetGroupName) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.LIGHT_PURPLE + "No can do."); - return true; + return; } UUID uuid = NameAPI.getUUID(sender.getName()); @@ -38,18 +36,18 @@ public boolean execute(CommandSender sender, String[] args) { sb.append(ChatColor.GREEN); sb.append("Group Hierarchy is as below:\n"); - if (args.length > 0) { - String groupname = args[0]; + if (targetGroupName != null) { + String groupname = targetGroupName; Group group = GroupManager.getGroup(groupname); if (groupIsNull(sender, groupname, group)) { - return true; + return; } if (!gm.hasAccess(group, uuid, PermissionType.getPermission("GROUPSTATS"))) { sender.sendMessage(ChatColor.RED + "You don't have permission to run that command."); - return true; + return; } sb.append(String.format(format, "", group.getName(), group.getPlayerType(uuid))); @@ -70,7 +68,6 @@ public boolean execute(CommandSender sender, String[] args) { } } sender.sendMessage(sb.toString()); - return true; } private void removeSubs(List subs, Set groups) { @@ -86,11 +83,4 @@ private void buildList(StringBuilder sb, UUID uuid, List subs, String pre buildList(sb, uuid, group.getSubgroups(), " " + prefix); } } - - @Override - public List tabComplete(CommandSender arg0, String[] arg1) { - // TODO Auto-generated method stub - return null; - } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/MergeGroups.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/MergeGroups.java index 153271f4..7f42e048 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/MergeGroups.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/MergeGroups.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import java.util.logging.Level; @@ -9,56 +12,50 @@ import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class MergeGroups extends PlayerCommandMiddle { +@CommandAlias("nlmg") +public class MergeGroups extends BaseCommandMiddle { - public MergeGroups(String name) { - super(name); - setIdentifier("nlmg"); - setDescription("Merge two groups together."); - setUsage("/nlmg "); - setArguments(2, 2); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlmg ") + @Description("Merge two groups together.") + public void execute(CommandSender sender, String groupToKeep, String groupToDelete) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.BLUE + "Fight me, bet you wont.\n Just back off you don't belong here."); - return true; + return; } final Player p = (Player) sender; - final Group g = GroupManager.getGroup(args[0]); - if (groupIsNull(sender, args[0], g)) { - return true; + final Group g = GroupManager.getGroup(groupToKeep); + if (groupIsNull(sender, groupToKeep, g)) { + return; } - final Group toMerge = GroupManager.getGroup(args[1]); - if (groupIsNull(sender, args[1], toMerge)) { - return true; + final Group toMerge = GroupManager.getGroup(groupToDelete); + if (groupIsNull(sender, groupToDelete, toMerge)) { + return; } if (g.isDisciplined() || toMerge.isDisciplined()) { p.sendMessage(ChatColor.RED + "One of the groups is disiplined."); - return true; + return; } if (g == toMerge) { p.sendMessage(ChatColor.RED + "You cannot merge a group into itself"); - return true; + return; } UUID uuid = NameAPI.getUUID(p.getName()); if (!gm.hasAccess(g, uuid, PermissionType.getPermission("MERGE"))) { p.sendMessage(ChatColor.RED + "You don't have permission on group " + g.getName() + "."); - return true; + return; } if (!gm.hasAccess(toMerge, uuid, PermissionType.getPermission("MERGE"))) { p.sendMessage(ChatColor.RED + "You don't have permission on group " + toMerge.getName() + "."); - return true; + return; } try { gm.mergeGroup(g, toMerge); @@ -68,10 +65,8 @@ public boolean execute(CommandSender sender, String[] args) { p.sendMessage(ChatColor.GREEN + "Group merging may have failed."); } p.sendMessage(ChatColor.GREEN + "Group is under going merge."); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ModifyPermissions.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ModifyPermissions.java index 4d600faa..bd52c110 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ModifyPermissions.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ModifyPermissions.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -8,7 +11,7 @@ import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter; import vg.civcraft.mc.namelayer.command.TabCompleters.PermissionCompleter; @@ -16,48 +19,42 @@ import vg.civcraft.mc.namelayer.permission.GroupPermission; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class ModifyPermissions extends PlayerCommandMiddle{ +@CommandAlias("nlmp") +public class ModifyPermissions extends BaseCommandMiddle { - public ModifyPermissions(String name) { - super(name); - setIdentifier("nlmp"); - setDescription("Modify the permissions of a group."); - setUsage("/nlmp "); - setArguments(4,4); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlmp ") + @Description("Modify the permissions of a group.") + public void execute(CommandSender sender, String groupName, String adding, String playerRank, String permissionName) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "You must be a player. Nuf said."); - return true; + return; } Player p = (Player) sender; - Group g = GroupManager.getGroup(args[0]); - if (groupIsNull(sender, args[0], g)) { - return true; + Group g = GroupManager.getGroup(groupName); + if (groupIsNull(sender, groupName, g)) { + return; } UUID uuid = NameAPI.getUUID(p.getName()); PlayerType type = g.getPlayerType(uuid); if (type == null){ p.sendMessage(ChatColor.RED + "You are not on this group."); - return true; + return; } if (g.isDisciplined()){ p.sendMessage(ChatColor.RED + "This group is currently disiplined."); - return true; + return; } if (!gm.hasAccess(g, uuid, PermissionType.getPermission("PERMS")) && !g.isOwner(uuid) && !(p.isOp() || p.hasPermission("namelayer.admin"))){ p.sendMessage(ChatColor.RED + "You do not have permission for this command."); - return true; + return; } - String info = args[1]; - PlayerType playerType = PlayerType.getPlayerType(args[2].toUpperCase()); + String info = adding; + PlayerType playerType = PlayerType.getPlayerType(playerRank.toUpperCase()); if (playerType == null){ PlayerType.displayPlayerTypes(p); - return true; + return; } - PermissionType pType = PermissionType.getPermission(args[3]); + PermissionType pType = PermissionType.getPermission(permissionName); if (pType == null){ StringBuilder sb = new StringBuilder(); for(PermissionType perm : PermissionType.getAllPermissions()) { @@ -67,13 +64,13 @@ public boolean execute(CommandSender sender, String[] args) { p.sendMessage(ChatColor.RED + "That PermissionType does not exist.\n" + "The current types are: " + sb.toString()); - return true; + return; } GroupPermission gPerm = gm.getPermissionforGroup(g); if (playerType == PlayerType.NOT_BLACKLISTED && !pType.getCanBeBlacklisted()) { sender.sendMessage(ChatColor.RED + "You can not change this permission for non-blacklisted players."); - return true; + return; } if (info.equalsIgnoreCase("add")){ @@ -102,10 +99,8 @@ else if (info.equalsIgnoreCase("remove")){ else{ p.sendMessage(ChatColor.RED + "Specify if you want to add or remove."); } - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) return null; @@ -128,7 +123,6 @@ else if (args.length == 2) { } else if (args.length == 4) { return PermissionCompleter.complete(args[3]); } - return null; } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/NameLayerGroupGui.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/NameLayerGroupGui.java index 3c4f3340..ed09520b 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/NameLayerGroupGui.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/NameLayerGroupGui.java @@ -1,51 +1,47 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import java.util.List; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.gui.GUIGroupOverview; import vg.civcraft.mc.namelayer.gui.MainGroupGUI; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class NameLayerGroupGui extends PlayerCommandMiddle { - - public NameLayerGroupGui(String name) { - super(name); - setIdentifier("nl"); - setDescription("Open the group management GUI"); - setUsage("/nl [group]"); - setArguments(0,1); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { +@CommandAlias("nl") +public class NameLayerGroupGui extends BaseCommandMiddle { + + @Syntax("/nl [group]") + @Description("Open the group management GUI") + public void execute(CommandSender sender, @Optional String groupName) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.BLUE + "Go back home console man, we dont want you here"); - return true; + return; } - if (args.length == 0) { + if (groupName == null) { GUIGroupOverview gui = new GUIGroupOverview((Player) sender); gui.showScreen(); - return true; + return; } - Group g = gm.getGroup(args [0]); + Group g = gm.getGroup(groupName); if (g == null) { sender.sendMessage(ChatColor.RED + "This group doesn't exist"); - return true; + return; } if (!gm.hasAccess(g, ((Player) sender).getUniqueId(), PermissionType.getPermission("OPEN_GUI"))) { sender.sendMessage(ChatColor.RED + "You don't have permission to do this"); - return true; + return; } MainGroupGUI gui = new MainGroupGUI((Player) sender, g); - return true; } - - @Override + public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.BLUE + "Go back home console man, we dont want you here"); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java index d65aa043..22b64fba 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.Bukkit; @@ -9,71 +12,65 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter; import vg.civcraft.mc.namelayer.events.PromotePlayerEvent; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class PromotePlayer extends PlayerCommandMiddle{ +@CommandAlias("nlpp") +public class PromotePlayer extends BaseCommandMiddle { - public PromotePlayer(String name) { - super(name); - setIdentifier("nlpp"); - setDescription("Promote/Demote a Player in a Group"); - setUsage("/nlpp "); - setArguments(3,3); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlpp ") + @Description("Promote/Demote a Player in a Group") + public void execute(CommandSender sender, String groupName, String playerName, String playerType) { if (!(sender instanceof Player)){ sender.sendMessage("How about No?"); - return true; + return; } Player p = (Player) sender; UUID executor = NameAPI.getUUID(p.getName()); - UUID promotee = NameAPI.getUUID(args[1]); + UUID promotee = NameAPI.getUUID(playerName); if(promotee ==null){ p.sendMessage(ChatColor.RED + "That player does not exist"); - return true; + return; } if(promotee.equals(executor)){ p.sendMessage(ChatColor.RED + "You cannot promote yourself"); - return true; + return; } - Group group = gm.getGroup(args[0]); - if (groupIsNull(sender, args[0], group)) { - return true; + Group group = gm.getGroup(groupName); + if (groupIsNull(sender, groupName, group)) { + return; } if (group.isDisciplined()){ p.sendMessage(ChatColor.RED + "This group is disiplined."); - return true; + return; } PlayerType promoteecurrentType = group.getPlayerType(promotee); - PlayerType promoteeType = PlayerType.getPlayerType(args[2]); + PlayerType promoteeType = PlayerType.getPlayerType(playerType); if(promoteeType == null){ PlayerType.displayPlayerTypes(p); - return true; + return; } if(promoteeType == PlayerType.NOT_BLACKLISTED) { p.sendMessage(ChatColor.RED + "Nice try"); - return true; + return; } PlayerType t = group.getPlayerType(executor); // playertype for the player running the command. if (t == null){ p.sendMessage(ChatColor.RED + "You are not on that group."); - return true; + return; } boolean allowed = false; @@ -97,7 +94,7 @@ public boolean execute(CommandSender sender, String[] args) { if (!allowed){ p.sendMessage(ChatColor.RED + "You do not have permissions to promote to this rank"); - return true; + return; } if (promoteecurrentType != null) { switch (promoteecurrentType){ // depending on the type the executor wants to add the player to @@ -124,13 +121,13 @@ public boolean execute(CommandSender sender, String[] args) { if (!allowed || !group.isMember(promotee)){ //can't edit a player who isn't in the group p.sendMessage(ChatColor.RED + NameAPI.getCurrentName(promotee) + " is not a member of this group or you do not have permission to edit their rank"); - return true; + return; } if (group.isOwner(promotee)){ p.sendMessage(ChatColor.RED + "That player owns the group, you cannot " + "demote the player."); - return true; + return; } OfflinePlayer prom = Bukkit.getOfflinePlayer(promotee); @@ -139,7 +136,7 @@ public boolean execute(CommandSender sender, String[] args) { PromotePlayerEvent event = new PromotePlayerEvent(oProm, group, promoteecurrentType, promoteeType); Bukkit.getPluginManager().callEvent(event); if(event.isCancelled()){ - return false; + return; } group.removeMember(promotee); group.addMember(promotee, promoteeType); @@ -155,10 +152,8 @@ public boolean execute(CommandSender sender, String[] args) { p.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(promotee) + " has been added as (PlayerType) " + promoteeType.toString() + " in (Group) " + group.getName()); } - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java index 9325fb50..aa108009 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java @@ -1,35 +1,37 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.InviteTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.listeners.PlayerListener; -public class RejectInvite extends PlayerCommandMiddle { +@CommandAlias("nlrg") +public class RejectInvite extends BaseCommandMiddle { - public RejectInvite(String name) { - super(name); - setIdentifier("nlrg"); - setDescription("Reject an invitation to a group."); - setUsage("/nlrg "); - setArguments(1,1); - setSenderMustBePlayer(true); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlrg ") + @Description("Reject an invitation to a group.") + public void execute(CommandSender sender, String targetGroup) { + if (!(sender instanceof Player)) { + sender.sendMessage(Component.text("Be gone console thot").color(NamedTextColor.RED)); + return; + } Player player = (Player) sender; - String groupName = args[0]; + String groupName = targetGroup; Group group = GroupManager.getGroup(groupName); if (groupIsNull(sender, groupName, group)) { - return true; + return; } UUID uuid = NameAPI.getUUID(player.getName()); // The IDE is highlighting this as a potention NullReferenceException @@ -37,20 +39,18 @@ public boolean execute(CommandSender sender, String[] args) { GroupManager.PlayerType type = group.getInvite(uuid); if (type == null) { player.sendMessage(ChatColor.RED + "You were not invited to that group."); - return true; + return; } if (group.isMember(uuid)) { player.sendMessage(ChatColor.RED + "You cannot reject an invite to a group that you're already a member of."); group.removeInvite(uuid, true); - return true; + return; } group.removeInvite(uuid, true); PlayerListener.removeNotification(uuid, group); player.sendMessage(ChatColor.GREEN + "You've successfully declined that group invitation."); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (args.length > 0) { return InviteTabCompleter.complete(args[0], (Player) sender); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveBlacklist.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveBlacklist.java index 50ece3dd..ad863451 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveBlacklist.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveBlacklist.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -10,57 +13,49 @@ import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.BlackList; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class RemoveBlacklist extends PlayerCommandMiddle { - - public RemoveBlacklist(String name) { - super(name); - setIdentifier("nlubl"); - setDescription("Removes a player from the blacklist for a specific group"); - setUsage("/nlubl "); - setArguments(2, 2); - } +@CommandAlias("nlubl") +public class RemoveBlacklist extends BaseCommandMiddle { - @Override - public boolean execute(CommandSender arg0, String[] arg1) { - if (!(arg0 instanceof Player)) { - arg0.sendMessage(ChatColor.RED + @Syntax("/nlubl ") + @Description("Removes a player from the blacklist for a specific group") + public void execute(CommandSender sender, String groupName, String targetPlayer) { + if (!(sender instanceof Player)) { + sender.sendMessage(ChatColor.RED + "Why do you have to make this so difficult?"); - return true; + return; } - Player p = (Player) arg0; - Group g = GroupManager.getGroup(arg1[0]); + Player p = (Player) sender; + Group g = GroupManager.getGroup(groupName); if (g == null) { p.sendMessage(ChatColor.RED + "This group does not exist"); - return true; + return; } if (!gm.hasAccess(g, p.getUniqueId(), PermissionType.getPermission("BLACKLIST")) && !(p.isOp() || p.hasPermission("namelayer.admin"))) { p.sendMessage(ChatColor.RED + "You do not have the required permissions to do this"); - return true; + return; } - UUID targetUUID = NameAPI.getUUID(arg1[1]); + UUID targetUUID = NameAPI.getUUID(targetPlayer); if (targetUUID == null) { p.sendMessage(ChatColor.RED + "This player does not exist"); - return true; + return; } BlackList bl = NameLayerPlugin.getBlackList(); if (!bl.isBlacklisted(g, targetUUID)) { p.sendMessage(ChatColor.RED + "This player is not blacklisted"); - return true; + return; } bl.removeBlacklistMember(g, targetUUID, true); p.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(targetUUID) + " was successfully removed from the blacklist for the group " + g.getName()); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveMember.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveMember.java index 3b6a4b1a..e92e941b 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveMember.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveMember.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -7,43 +10,36 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class RemoveMember extends PlayerCommandMiddle { +@CommandAlias("nlrm") +public class RemoveMember extends BaseCommandMiddle { - public RemoveMember(String name) { - super(name); - setIdentifier("nlrm"); - setDescription("Remove a member from a group."); - setUsage("/nlrm "); - setArguments(2,2); - - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlrm ") + @Description("Remove a member from a group.") + public void execute(CommandSender sender, String groupName, String targetPlayer) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); - return true; + return; } Player p = (Player) sender; - Group group = gm.getGroup(args[0]); - if (groupIsNull(sender, args[0], group)) { - return true; + Group group = gm.getGroup(groupName); + if (groupIsNull(sender, groupName, group)) { + return; } if (group.isDisciplined()){ p.sendMessage(ChatColor.RED + "This group is disiplined."); - return true; + return; } UUID executor = NameAPI.getUUID(p.getName()); - UUID uuid = NameAPI.getUUID(args[1]); + UUID uuid = NameAPI.getUUID(targetPlayer); if (uuid == null){ p.sendMessage(ChatColor.RED + "The player has never played before."); - return true; + return; } String playerName = NameAPI.getCurrentName(uuid); @@ -70,27 +66,24 @@ public boolean execute(CommandSender sender, String[] args) { if (!allowed && !(p.isOp() || p.hasPermission("namelayer.admin"))){ p.sendMessage(ChatColor.RED + "You do not have permissions to modify this group."); - return true; + return; } if (!group.isMember(uuid)){ p.sendMessage(ChatColor.RED + "That player is not on the group."); - return true; + return; } if (group.isOwner(uuid)){ p.sendMessage(ChatColor.RED + "That player owns the group, you cannot " + "remove the player."); - return true; + return; } p.sendMessage(ChatColor.GREEN + playerName + " has been removed from the group."); group.removeMember(uuid); - return true; } - - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java index 9093249d..701ab422 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -8,43 +11,37 @@ import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.listeners.PlayerListener; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class RevokeInvite extends PlayerCommandMiddle{ +@CommandAlias("nlri") +public class RevokeInvite extends BaseCommandMiddle { - public RevokeInvite(String name) { - super(name); - setIdentifier("nlri"); - setDescription("Revoke an Invite."); - setUsage("/nlri "); - setArguments(2,2); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlri ") + @Description("Revoke an Invite.") + public void execute(CommandSender sender, String groupName, String targetPlayer) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); - return true; + return; } Player p = (Player) sender; - Group group = GroupManager.getGroup(args[0]); - if (groupIsNull(sender, args[0], group)) { - return true; + Group group = GroupManager.getGroup(groupName); + if (groupIsNull(sender, groupName, group)) { + return; } if (group.isDisciplined()){ p.sendMessage(ChatColor.RED + "This group is disiplined."); - return true; + return; } UUID executor = NameAPI.getUUID(p.getName()); - UUID uuid = NameAPI.getUUID(args[1]); + UUID uuid = NameAPI.getUUID(targetPlayer); if (uuid == null){ p.sendMessage(ChatColor.RED + "The player has never played before."); - return true; + return; } //check invitee has invite @@ -52,10 +49,10 @@ public boolean execute(CommandSender sender, String[] args) { if(group.isMember(uuid)){ p.sendMessage(ChatColor.RED + NameAPI.getCurrentName(uuid) + " is already part of that group, " + "use /remove to remove them."); - return true; + return; } p.sendMessage(ChatColor.RED + NameAPI.getCurrentName(uuid) + " does not have an invite to that group."); - return true; + return; } //get invitee PlayerType @@ -64,7 +61,7 @@ public boolean execute(CommandSender sender, String[] args) { PlayerType t = group.getPlayerType(executor); // playertype for the player running the command. if (t == null){ p.sendMessage(ChatColor.RED + "You are not on that group."); - return true; + return; } boolean allowed = false; switch (pType){ // depending on the type the executor wants to add the player to @@ -86,17 +83,15 @@ public boolean execute(CommandSender sender, String[] args) { } if (!allowed){ p.sendMessage(ChatColor.RED + "You do not have permissions to modify this group."); - return true; + return; } group.removeInvite(uuid, true); PlayerListener.removeNotification(uuid, group); p.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(uuid) + "'s invitation has been revoked."); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetDefaultGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetDefaultGroup.java index 3f1d6dbe..42f6d6ad 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetDefaultGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetDefaultGroup.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -7,38 +10,32 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class SetDefaultGroup extends PlayerCommandMiddle{ +@CommandAlias("nlsdg") +public class SetDefaultGroup extends BaseCommandMiddle { - public SetDefaultGroup(String name) { - super(name); - setIdentifier("nlsdg"); - setDescription("Set or change a default group"); - setUsage("/nlsdg "); - setArguments(1,1); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlsdg ") + @Description("Set or change a default group") + public void execute(CommandSender sender, String groupName) { if (!(sender instanceof Player)){ sender.sendMessage("I don't think you need to do that."); - return true; + return; } Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); - Group g = gm.getGroup(args[0]); - if (groupIsNull(sender, args[0], g)) { - return true; + Group g = gm.getGroup(groupName); + if (groupIsNull(sender, groupName, g)) { + return; } PlayerType pType = g.getPlayerType(uuid); if (pType == null){ p.sendMessage(ChatColor.RED + "You do not have access to that group."); - return true; + return; } String x = gm.getDefaultGroup(uuid); @@ -50,10 +47,8 @@ public boolean execute(CommandSender sender, String[] args) { g.changeDefaultGroup(uuid); p.sendMessage(ChatColor.GREEN + "You changed your default group from " + x + " to " + gm.getDefaultGroup(uuid)); } - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetPassword.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetPassword.java index f93e5165..ad0b66e6 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetPassword.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetPassword.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -7,54 +10,46 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class SetPassword extends PlayerCommandMiddle{ +@CommandAlias("nlsp") +public class SetPassword extends BaseCommandMiddle { - public SetPassword(String name) { - super(name); - setIdentifier("nlsp"); - setDescription("Set a password on a group."); - setUsage("/nlsp "); - setArguments(1,2); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlsp ") + @Description("Set a password on a group.") + public void execute(CommandSender sender, String groupName, String userPassword) { if (!(sender instanceof Player)){ sender.sendMessage("You may not use this command, must be a pluer."); - return true; + return; } Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); - Group g = gm.getGroup(args[0]); - if (groupIsNull(sender, args[0], g)) { - return true; + Group g = gm.getGroup(groupName); + if (groupIsNull(sender, groupName, g)) { + return; } PlayerType pType = g.getPlayerType(uuid); if (pType == null){ p.sendMessage(ChatColor.RED + "You do not have access to that group."); - return true; + return; } if (!gm.hasAccess(g, uuid, PermissionType.getPermission("PASSWORD"))){ p.sendMessage(ChatColor.RED + "You do not have permission to modify that group."); - return true; + return; } String password = null; - if (args.length == 2) - password = args[1]; + if (userPassword != null) + password = userPassword; g.setPassword(password); p.sendMessage(ChatColor.GREEN + "Password has been successfully set to: " + g.getPassword()); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ShowBlacklist.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ShowBlacklist.java index 7838ffe9..4018c992 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ShowBlacklist.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ShowBlacklist.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -10,44 +13,38 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class ShowBlacklist extends PlayerCommandMiddle { +@CommandAlias("nlsbl") +public class ShowBlacklist extends BaseCommandMiddle { - public ShowBlacklist(String name) { - super(name); - setIdentifier("nlsbl"); - setDescription("Shows all blacklisted players for a specific group"); - setUsage("/nlsbl "); - setArguments(1, 1); - } - - @Override - public boolean execute(CommandSender arg0, String[] arg1) { - if (!(arg0 instanceof Player)) { - arg0.sendMessage(ChatColor.RED + @Syntax("/nlsbl ") + @Description("Shows all blacklisted players for a specific group") + public void execute(CommandSender sender, String groupName) { + if (!(sender instanceof Player)) { + sender.sendMessage(ChatColor.RED + "Why do you have to make this so difficult?"); - return true; + return; } - Player p = (Player) arg0; - Group g = gm.getGroup(arg1[0]); + Player p = (Player) sender; + Group g = gm.getGroup(groupName); if (g == null) { p.sendMessage(ChatColor.RED + "This group does not exist"); - return true; + return; } if (!gm.hasAccess(g, p.getUniqueId(), PermissionType.getPermission("BLACKLIST")) && !(p.isOp() || p.hasPermission("namelayer.admin"))) { p.sendMessage(ChatColor.RED + "You do not have the required permissions to do this"); - return true; + return; } Set ids = NameLayerPlugin.getBlackList().getBlacklist(g); if (ids.size() == 0) { p.sendMessage(ChatColor.GOLD + "There are no blacklisted players for the group " + g.getName()); - return true; + return; } StringBuilder sb = new StringBuilder(); sb.append(ChatColor.GOLD + "Blacklisted players for group " + g.getName() + " are: "); @@ -58,10 +55,8 @@ public boolean execute(CommandSender arg0, String[] arg1) { String reply = sb.toString(); //remove last ", " p.sendMessage(reply.substring(0, reply.length() - 2)); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ToggleAutoAcceptInvites.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ToggleAutoAcceptInvites.java index 9eb714b3..a1c97cdf 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ToggleAutoAcceptInvites.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ToggleAutoAcceptInvites.java @@ -1,31 +1,28 @@ package vg.civcraft.mc.namelayer.command.commands; -import java.util.List; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.AutoAcceptHandler; -public class ToggleAutoAcceptInvites extends PlayerCommandMiddle{ +@CommandAlias("nltaai") +public class ToggleAutoAcceptInvites extends BaseCommandMiddle { private AutoAcceptHandler handler = NameLayerPlugin.getAutoAcceptHandler(); - public ToggleAutoAcceptInvites(String name) { - super(name); - setIdentifier("nltaai"); - setDescription("Toggle the acceptance of invites."); - setUsage("/nltaai"); - setArguments(0,0); - } - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nltaai") + @Description("Toggle the acceptance of invites.") + public void execute(CommandSender sender) { if (!(sender instanceof Player)){ sender.sendMessage("how would this even work"); - return true; + return; } Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); @@ -36,11 +33,5 @@ public boolean execute(CommandSender sender, String[] args) { p.sendMessage(ChatColor.GREEN + "You will automatically accept group requests."); } handler.toggleAutoAccept(uuid, true); - return true; - } - - public List tabComplete(CommandSender sender, String[] args) { - return null; } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/TransferGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/TransferGroup.java index e1984442..fc659eea 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/TransferGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/TransferGroup.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -8,41 +11,35 @@ import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class TransferGroup extends PlayerCommandMiddle{ +@CommandAlias("nltg") +public class TransferGroup extends BaseCommandMiddle { - public TransferGroup(String name) { - super(name); - setIdentifier("nltg"); - setDescription("Transfer one group to another person."); - setUsage("/nltg "); - setArguments(2,2); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nltg ") + @Description("Transfer one group to another person.") + public void execute(CommandSender sender, String groupName, String playerName) { if (!(sender instanceof Player)){ sender.sendMessage("Nope?"); - return true; + return; } Player p = (Player) sender; - Group g = GroupManager.getGroup(args[0]); - if (groupIsNull(sender, args[0], g)) { - return true; + Group g = GroupManager.getGroup(groupName); + if (groupIsNull(sender, groupName, g)) { + return; } - UUID oPlayer = NameAPI.getUUID(args[1]); // uuid of the second player + UUID oPlayer = NameAPI.getUUID(playerName); // uuid of the second player if (oPlayer == null){ p.sendMessage(ChatColor.RED + "This player has never played before and cannot be given the group."); - return true; + return; } - return attemptTransfer(g, p, oPlayer); + attemptTransfer(g, p, oPlayer); } public static boolean attemptTransfer(Group g, Player owner, UUID futureOwner) { @@ -76,7 +73,6 @@ public static boolean attemptTransfer(Group g, Player owner, UUID futureOwner) { return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UnlinkGroups.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UnlinkGroups.java index 2ae211a5..150a778b 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UnlinkGroups.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UnlinkGroups.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -7,41 +10,35 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -public class UnlinkGroups extends PlayerCommandMiddle { +@CommandAlias("nlunlink") +public class UnlinkGroups extends BaseCommandMiddle { - public UnlinkGroups(String name) { - super(name); - setIdentifier("nlunlink"); - setDescription("Unlinks two groups from each other."); - setUsage("/nlunlink "); - setArguments(2,2); - } - - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlunlink ") + @Description("Unlinks two groups from each other.") + public void execute(CommandSender sender, String parentGroup, String childGroup) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.LIGHT_PURPLE + "Sorry bruh, no can do."); - return true; + return; } Player p = (Player) sender; // check if groups exist - String supername = args[0], subname = args[1]; + String supername = parentGroup, subname = childGroup; Group supergroup = GroupManager.getGroup(supername); if (groupIsNull(sender, supername, supergroup)) { - return true; + return; } Group subgroup = GroupManager.getGroup(subname); if (groupIsNull(sender, subname, subgroup)) { - return true; + return; } // check if groups are accessible @@ -50,23 +47,23 @@ public boolean execute(CommandSender sender, String[] args) { if (!supergroup.isMember(uuid) || !subgroup.isMember(uuid)) { p.sendMessage(ChatColor.RED + "You're not on one of the groups."); - return true; + return; } if (supergroup.isDisciplined() || subgroup.isDisciplined()) { p.sendMessage(ChatColor.RED + "One of the groups is disciplined."); - return true; + return; } if (!gm.hasAccess(supergroup, uuid, PermissionType.getPermission("LINKING"))) { p.sendMessage(ChatColor.RED + "You don't have permission to do that on the super group."); - return true; + return; } if (!Group.areLinked(supergroup, subgroup)) { p.sendMessage(ChatColor.RED + "These groups are not linked."); - return true; + return; } boolean success = Group.unlink(supergroup, subgroup); @@ -78,10 +75,8 @@ public boolean execute(CommandSender sender, String[] args) { message = ChatColor.RED + "Failed to unlink the groups."; } p.sendMessage(message); - return true; } - @Override public List tabComplete(CommandSender sender, String[] args) { if (!(sender instanceof Player)) { return null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UpdateName.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UpdateName.java index a290e5f4..8c128971 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UpdateName.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UpdateName.java @@ -1,5 +1,8 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import java.util.Collections; import java.util.List; import java.util.Map; @@ -11,28 +14,21 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; -import vg.civcraft.mc.namelayer.command.PlayerCommandMiddle; +import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.misc.NameFetcher; -public class UpdateName extends PlayerCommandMiddle { +@CommandAlias("nlun") +public class UpdateName extends BaseCommandMiddle { - private Map newNames; + private Map newNames = Collections.synchronizedSortedMap(new TreeMap()); - public UpdateName(String name) { - super(name); - setIdentifier("nlun"); - setDescription("Updates your name on this server to the one your minecraft account currently has"); - setUsage("/nlun [CONFIRM]"); - setArguments(0, 1); - newNames = Collections - .synchronizedSortedMap(new TreeMap()); - } - - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/nlun [CONFIRM]") + @Description("Updates your name on this server to the one your minecraft account currently has") + public void execute(CommandSender sender, String newNameOrConfirm) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.LIGHT_PURPLE + "NO NO NO NO NO NO NO NO"); - return true; + return; } final Player p = (Player) sender; final UUID uuid = p.getUniqueId(); @@ -40,10 +36,10 @@ public boolean execute(CommandSender sender, String[] args) { if (NameLayerPlugin.getGroupManagerDao().hasChangedNameBefore(uuid)) { p.sendMessage(ChatColor.RED + "You already changed your name"); - return true; + return; } - if (args.length == 0) { + if (newNameOrConfirm.isEmpty()) { Bukkit.getScheduler().runTaskAsynchronously( NameLayerPlugin.getInstance(), new Runnable() { @Override @@ -92,19 +88,19 @@ public void run() { newNames.put(uuid, newName); } }); - return true; + return; } else { String newName = newNames.get(uuid); if (newName == null) { sender.sendMessage(ChatColor.RED + "Run \"/nlun\" first to initiate the name changes process"); - return true; + return; } - if (!args[0].equals("CONFIRM")) { + if (!newNameOrConfirm.equals("CONFIRM")) { sender.sendMessage(ChatColor.RED + "Run \"/nlun CONFIRM\" to confirm your name change to \"" + newName + "\""); - return true; + return; } NameLayerPlugin.getGroupManagerDao().logNameChange(uuid, oldName, newName); @@ -116,7 +112,6 @@ public void run() { + newName + "\". This change will be applied together with all other name changes at a previously announced date."); } - return true; } public List tabComplete(CommandSender sender, String[] args) { diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/AdminFunctionsGUI.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/AdminFunctionsGUI.java index 419e93b9..af9c66b3 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/AdminFunctionsGUI.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/AdminFunctionsGUI.java @@ -12,10 +12,10 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.util.StringUtil; import vg.civcraft.mc.civmodcore.chat.dialog.Dialog; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.command.commands.TransferGroup; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/GUIGroupOverview.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/GUIGroupOverview.java index 57200660..a4523706 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/GUIGroupOverview.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/GUIGroupOverview.java @@ -18,10 +18,10 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import vg.civcraft.mc.civmodcore.chat.dialog.Dialog; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/InvitationGUI.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/InvitationGUI.java index e9e30d0e..2d8ac0d2 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/InvitationGUI.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/InvitationGUI.java @@ -14,10 +14,10 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.util.StringUtil; import vg.civcraft.mc.civmodcore.chat.dialog.Dialog; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/LinkingGUI.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/LinkingGUI.java index 3062d237..19e6dca1 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/LinkingGUI.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/LinkingGUI.java @@ -7,10 +7,10 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/MainGroupGUI.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/MainGroupGUI.java index 83a80739..731e5ef2 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/MainGroupGUI.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/MainGroupGUI.java @@ -20,10 +20,10 @@ import org.bukkit.inventory.meta.LeatherArmorMeta; import org.bukkit.util.StringUtil; import vg.civcraft.mc.civmodcore.chat.dialog.Dialog; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/MergeGUI.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/MergeGUI.java index f65d83a7..5689675a 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/MergeGUI.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/MergeGUI.java @@ -6,10 +6,10 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.group.Group; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/PermissionManageGUI.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/PermissionManageGUI.java index 354a267b..a3997941 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/PermissionManageGUI.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/gui/PermissionManageGUI.java @@ -13,10 +13,10 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.LeatherArmorMeta; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.group.Group; diff --git a/nms/interface/pom.xml b/nms/interface/pom.xml index 9fa44098..8f022a47 100755 --- a/nms/interface/pom.xml +++ b/nms/interface/pom.xml @@ -16,12 +16,12 @@ jar - - com.destroystokyo.paper - paper - 1.16.5-R0.1-SNAPSHOT - provided - - + + io.papermc.paper + paper + 1.17-R0.1-SNAPSHOT + provided + + diff --git a/nms/interface/src/main/java/vg/civcraft/mc/namelayer/misc/MaterialInterface.java b/nms/interface/src/main/java/vg/civcraft/mc/namelayer/misc/MaterialInterface.java index 90897982..ef35ed36 100644 --- a/nms/interface/src/main/java/vg/civcraft/mc/namelayer/misc/MaterialInterface.java +++ b/nms/interface/src/main/java/vg/civcraft/mc/namelayer/misc/MaterialInterface.java @@ -1,5 +1,6 @@ package vg.civcraft.mc.namelayer.misc; + import org.bukkit.Material; import org.bukkit.inventory.ItemStack; diff --git a/nms/v1_17_R1/pom.xml b/nms/v1_17_R1/pom.xml new file mode 100644 index 00000000..8d0fce13 --- /dev/null +++ b/nms/v1_17_R1/pom.xml @@ -0,0 +1,32 @@ + + + 4.0.0 + + + vg.civcraft.mc.namelayer + namelayer-parent + 1.0.0 + ../../pom.xml + + + namelayer-nms-v1_17_R1 + 1.0.1 + jar + + + + vg.civcraft.mc.namelayer + namelayer-nms-interface + 1.0.1 + + + io.papermc.paper + paper + 1.17-R0.1-SNAPSHOT + provided + + + + diff --git a/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/MaterialMap.java b/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/MaterialMap.java new file mode 100644 index 00000000..f5285994 --- /dev/null +++ b/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/MaterialMap.java @@ -0,0 +1,46 @@ +package vg.civcraft.mc.namelayer.misc.v1_17_R1; + +import vg.civcraft.mc.namelayer.misc.MaterialInterface; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +public class MaterialMap implements MaterialInterface { + @Override + public Material getMaterial(MaterialInterface.Specific specific) { + switch (specific) { + case GREEN: + return Material.LIME_DYE; + case RED: + return Material.RED_DYE; + case BACK: + return Material.OAK_DOOR; + case MOD: + return Material.GOLDEN_CHESTPLATE; + case BLACKLIST: + return Material.LEAD; + case PERMS: + return Material.OAK_FENCE_GATE; + case MERGE: + return Material.CHEST_MINECART; + case DEFAULT: + return Material.BRICKS; + } + return null; + } + + @Override + public ItemStack getItemStack(MaterialInterface.Specific specific) { + switch (specific) { + case GREEN: + case RED: + case BACK: + case MOD: + case BLACKLIST: + case PERMS: + case MERGE: + case DEFAULT: + return new ItemStack(getMaterial(specific)); + } + return null; + } +} diff --git a/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/ProfileModifier.java b/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/ProfileModifier.java new file mode 100644 index 00000000..212832c4 --- /dev/null +++ b/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/ProfileModifier.java @@ -0,0 +1,70 @@ +package vg.civcraft.mc.namelayer.misc.v1_17_R1; + +import com.mojang.authlib.GameProfile; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.logging.Logger; +import net.minecraft.world.entity.player.EntityHuman; +import org.bukkit.Bukkit; +import org.bukkit.craftbukkit.v1_17_R1.CraftServer; +import org.bukkit.craftbukkit.v1_17_R1.entity.CraftHumanEntity; +import org.bukkit.entity.Player; +import vg.civcraft.mc.namelayer.misc.ProfileInterface; + +public class ProfileModifier implements ProfileInterface { + + private static final Logger log = Logger.getLogger(ProfileModifier.class.getSimpleName()); + + @Override + public void setPlayerProfile(Player player, String name) { + String oldName = player.getName(); + if (name.length() > 16) { + log.info(String.format("The player %s (%s) was kicked from the server due to his " + + "name already existing but now becoming over 16 characters.", + name, player.getUniqueId().toString())); + } + try { + // start of getting the GameProfile + CraftHumanEntity craftHuman = (CraftHumanEntity) player; + EntityHuman human = craftHuman.getHandle(); + GameProfile prof = human.getProfile(); + // End + + // Start of adding a new name + Field nameUpdate = prof.getClass().getDeclaredField("name"); + + setFinalStatic(nameUpdate, name, prof); + + ((CraftServer)Bukkit.getServer()).getServer().getUserCache().a(prof); + // end + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (SecurityException e) { + e.printStackTrace(); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } + player.setDisplayName(name); + player.setPlayerListName(name); + player.setCustomName(name); + log.info(String.format("The player %s has had his name changed to %s.", oldName, name)); + } + + public void setFinalStatic(Field field, Object newValue, Object profile) { + GameProfile prof = (GameProfile) profile; + try { + field.setAccessible(true); + + // remove final modifier from field + Field modifiersField; + modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); + modifiersField + .setInt(field, field.getModifiers() & ~Modifier.FINAL); + + field.set(prof, newValue); + } catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) { + e.printStackTrace(); + } + } +} diff --git a/pom.xml b/pom.xml index 50c90744..19299b3f 100644 --- a/pom.xml +++ b/pom.xml @@ -13,16 +13,16 @@ nms/interface - nms/v1_16_R3 + nms/v1_17_R1 namelayer-spigot namelayer-bungee namelayer-all - 2.14.1 - 11 - 11 + 2.15.0 + 16 + 16 UTF-8 UTF-8 @@ -42,6 +42,11 @@ https://hub.spigotmc.org/nexus/content/repositories/snapshots + + papermc + https://papermc.io/repo/repository/maven-public/ + + md_5-repo http://repo.md-5.net/content/repositories/public/ @@ -79,6 +84,7 @@ nms/v1_14_R1 nms/v1_16_R1 nms/v1_16_R3 + nms/v1_17_R1 From a6b62e080b24eea386fce38e313907f710dabe5a Mon Sep 17 00:00:00 2001 From: Cola Date: Tue, 29 Jun 2021 23:19:12 +0100 Subject: [PATCH 3/9] Ori patches --- namelayer-all/pom.xml | 6 +- namelayer-bungee/pom.xml | 26 +++----- namelayer-spigot/pom.xml | 6 +- nms/interface/pom.xml | 2 +- nms/v1_10_R1/pom.xml | 4 +- nms/v1_11_R1/pom.xml | 4 +- nms/v1_12_R1/pom.xml | 4 +- nms/v1_13_R2/pom.xml | 4 +- nms/v1_14_R1/pom.xml | 4 +- nms/v1_16_R1/pom.xml | 4 +- nms/v1_16_R3/pom.xml | 4 +- nms/v1_17_R1/pom.xml | 4 +- .../namelayer/misc/v1_17_R1/MaterialMap.java | 50 +++++--------- .../misc/v1_17_R1/ProfileModifier.java | 66 ++++--------------- nms/v1_8_R1/pom.xml | 4 +- nms/v1_8_R2/pom.xml | 4 +- nms/v1_8_R3/pom.xml | 4 +- nms/v1_9_R1/pom.xml | 4 +- nms/v1_9_R2/pom.xml | 4 +- pom.xml | 6 +- 20 files changed, 75 insertions(+), 139 deletions(-) diff --git a/namelayer-all/pom.xml b/namelayer-all/pom.xml index 38319fb1..e06385d0 100644 --- a/namelayer-all/pom.xml +++ b/namelayer-all/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 @@ -16,12 +16,12 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-spigot 1.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-bungee 1.0.0 diff --git a/namelayer-bungee/pom.xml b/namelayer-bungee/pom.xml index e662ac2e..66ed051c 100644 --- a/namelayer-bungee/pom.xml +++ b/namelayer-bungee/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 @@ -15,40 +15,34 @@ jar - - + net.md-5 bungeecord-protocol - 1.16-R0.4-SNAPSHOT + 1.16-R0.4 provided + net.md-5 bungeecord-api - 1.16-R0.4-SNAPSHOT + 1.16-R0.4 provided + net.md-5 bungeecord-proxy - 1.16-R0.4-SNAPSHOT + 1.17-R0.1-SNAPSHOT provided - - + com.zaxxer HikariCP - 3.3.0 - compile + 4.0.3 + provided - diff --git a/namelayer-spigot/pom.xml b/namelayer-spigot/pom.xml index 8e4b6c03..797f2c63 100755 --- a/namelayer-spigot/pom.xml +++ b/namelayer-spigot/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 @@ -15,7 +15,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-v1_17_R1 1.0.1 @@ -79,7 +79,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-v1_17_R1 1.0.1 diff --git a/nms/interface/pom.xml b/nms/interface/pom.xml index 8f022a47..ab46ac9b 100755 --- a/nms/interface/pom.xml +++ b/nms/interface/pom.xml @@ -6,7 +6,7 @@ namelayer-parent - vg.civcraft.mc.namelayer + com.github.civclassic 1.0.0 ../../pom.xml diff --git a/nms/v1_10_R1/pom.xml b/nms/v1_10_R1/pom.xml index edd7f95b..fb87e8f1 100644 --- a/nms/v1_10_R1/pom.xml +++ b/nms/v1_10_R1/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_11_R1/pom.xml b/nms/v1_11_R1/pom.xml index 891fd3b2..90511272 100644 --- a/nms/v1_11_R1/pom.xml +++ b/nms/v1_11_R1/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_12_R1/pom.xml b/nms/v1_12_R1/pom.xml index 6e0a00dd..262d2ba2 100644 --- a/nms/v1_12_R1/pom.xml +++ b/nms/v1_12_R1/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_13_R2/pom.xml b/nms/v1_13_R2/pom.xml index 96fe8da4..49f36acb 100644 --- a/nms/v1_13_R2/pom.xml +++ b/nms/v1_13_R2/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_14_R1/pom.xml b/nms/v1_14_R1/pom.xml index e602c88a..aa56ca01 100644 --- a/nms/v1_14_R1/pom.xml +++ b/nms/v1_14_R1/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_16_R1/pom.xml b/nms/v1_16_R1/pom.xml index 2ad70fd1..b49b78e3 100644 --- a/nms/v1_16_R1/pom.xml +++ b/nms/v1_16_R1/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_16_R3/pom.xml b/nms/v1_16_R3/pom.xml index 5f354f3b..51ca3a07 100755 --- a/nms/v1_16_R3/pom.xml +++ b/nms/v1_16_R3/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_17_R1/pom.xml b/nms/v1_17_R1/pom.xml index 8d0fce13..34048227 100644 --- a/nms/v1_17_R1/pom.xml +++ b/nms/v1_17_R1/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/MaterialMap.java b/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/MaterialMap.java index f5285994..368ab679 100644 --- a/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/MaterialMap.java +++ b/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/MaterialMap.java @@ -5,42 +5,26 @@ import org.bukkit.inventory.ItemStack; public class MaterialMap implements MaterialInterface { + @Override - public Material getMaterial(MaterialInterface.Specific specific) { - switch (specific) { - case GREEN: - return Material.LIME_DYE; - case RED: - return Material.RED_DYE; - case BACK: - return Material.OAK_DOOR; - case MOD: - return Material.GOLDEN_CHESTPLATE; - case BLACKLIST: - return Material.LEAD; - case PERMS: - return Material.OAK_FENCE_GATE; - case MERGE: - return Material.CHEST_MINECART; - case DEFAULT: - return Material.BRICKS; - } - return null; + public Material getMaterial(final MaterialInterface.Specific specific) { + return switch (specific) { + case GREEN -> Material.LIME_DYE; + case RED -> Material.RED_DYE; + case BACK -> Material.OAK_DOOR; + case MOD -> Material.GOLDEN_CHESTPLATE; + case BLACKLIST -> Material.LEAD; + case PERMS -> Material.OAK_FENCE_GATE; + case MERGE -> Material.CHEST_MINECART; + case DEFAULT -> Material.BRICKS; + }; } @Override - public ItemStack getItemStack(MaterialInterface.Specific specific) { - switch (specific) { - case GREEN: - case RED: - case BACK: - case MOD: - case BLACKLIST: - case PERMS: - case MERGE: - case DEFAULT: - return new ItemStack(getMaterial(specific)); - } - return null; + public ItemStack getItemStack(final MaterialInterface.Specific specific) { + return switch (specific) { + case GREEN, RED, BACK, MOD, BLACKLIST, PERMS, MERGE, DEFAULT -> new ItemStack(getMaterial(specific)); + }; } + } diff --git a/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/ProfileModifier.java b/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/ProfileModifier.java index 212832c4..a66aff88 100644 --- a/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/ProfileModifier.java +++ b/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/ProfileModifier.java @@ -1,70 +1,28 @@ package vg.civcraft.mc.namelayer.misc.v1_17_R1; -import com.mojang.authlib.GameProfile; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; +import com.destroystokyo.paper.profile.CraftPlayerProfile; import java.util.logging.Logger; -import net.minecraft.world.entity.player.EntityHuman; -import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_17_R1.CraftServer; -import org.bukkit.craftbukkit.v1_17_R1.entity.CraftHumanEntity; +import net.kyori.adventure.text.Component; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.misc.ProfileInterface; public class ProfileModifier implements ProfileInterface { - private static final Logger log = Logger.getLogger(ProfileModifier.class.getSimpleName()); + private static final Logger LOGGER = Logger.getLogger(ProfileModifier.class.getSimpleName()); @Override - public void setPlayerProfile(Player player, String name) { - String oldName = player.getName(); + public void setPlayerProfile(final Player player, final String name) { + final String oldName = player.getName(); if (name.length() > 16) { - log.info(String.format("The player %s (%s) was kicked from the server due to his " + LOGGER.info(String.format("The player %s (%s) was kicked from the server due to their " + "name already existing but now becoming over 16 characters.", - name, player.getUniqueId().toString())); + name, player.getUniqueId())); } - try { - // start of getting the GameProfile - CraftHumanEntity craftHuman = (CraftHumanEntity) player; - EntityHuman human = craftHuman.getHandle(); - GameProfile prof = human.getProfile(); - // End - - // Start of adding a new name - Field nameUpdate = prof.getClass().getDeclaredField("name"); - - setFinalStatic(nameUpdate, name, prof); - - ((CraftServer)Bukkit.getServer()).getServer().getUserCache().a(prof); - // end - } catch (NoSuchFieldException e) { - e.printStackTrace(); - } catch (SecurityException e) { - e.printStackTrace(); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } - player.setDisplayName(name); - player.setPlayerListName(name); - player.setCustomName(name); - log.info(String.format("The player %s has had his name changed to %s.", oldName, name)); + player.setPlayerProfile(new CraftPlayerProfile(player.getUniqueId(), name)); + player.displayName(Component.text(name)); + player.playerListName(Component.text(name)); + player.customName(Component.text(name)); + LOGGER.info(String.format("The player \"%s\" has had their name changed to \"%s\"", oldName, name)); } - public void setFinalStatic(Field field, Object newValue, Object profile) { - GameProfile prof = (GameProfile) profile; - try { - field.setAccessible(true); - - // remove final modifier from field - Field modifiersField; - modifiersField = Field.class.getDeclaredField("modifiers"); - modifiersField.setAccessible(true); - modifiersField - .setInt(field, field.getModifiers() & ~Modifier.FINAL); - - field.set(prof, newValue); - } catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); - } - } } diff --git a/nms/v1_8_R1/pom.xml b/nms/v1_8_R1/pom.xml index b382fbba..3ee12853 100644 --- a/nms/v1_8_R1/pom.xml +++ b/nms/v1_8_R1/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_8_R2/pom.xml b/nms/v1_8_R2/pom.xml index c15b88b2..1e483ef1 100644 --- a/nms/v1_8_R2/pom.xml +++ b/nms/v1_8_R2/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_8_R3/pom.xml b/nms/v1_8_R3/pom.xml index 9abac05e..167db9b1 100644 --- a/nms/v1_8_R3/pom.xml +++ b/nms/v1_8_R3/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_9_R1/pom.xml b/nms/v1_9_R1/pom.xml index d2488d0f..a6f66701 100644 --- a/nms/v1_9_R1/pom.xml +++ b/nms/v1_9_R1/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/nms/v1_9_R2/pom.xml b/nms/v1_9_R2/pom.xml index 71d4674f..dd6dd141 100644 --- a/nms/v1_9_R2/pom.xml +++ b/nms/v1_9_R2/pom.xml @@ -5,7 +5,7 @@ 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 ../../pom.xml @@ -17,7 +17,7 @@ - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-nms-interface 1.0.1 diff --git a/pom.xml b/pom.xml index 19299b3f..2281b8d4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - vg.civcraft.mc.namelayer + com.github.civclassic namelayer-parent 1.0.0 pom @@ -30,7 +30,7 @@ codecrafter47-repo - http://nexus.codecrafter47.dyndns.eu/content/repositories/public/ + https://nexus.codecrafter47.dyndns.eu/content/repositories/public/ @@ -49,7 +49,7 @@ md_5-repo - http://repo.md-5.net/content/repositories/public/ + https://repo.md-5.net/content/repositories/public/ bungeecord-repo From cd57b2e167b4f8ed692e33e5878e5160fd761da6 Mon Sep 17 00:00:00 2001 From: Cola Date: Thu, 1 Jul 2021 00:42:53 +0100 Subject: [PATCH 4/9] Fix commands + Tab Completion --- .../mc/namelayer/command/CommandHandler.java | 91 +++++++++++-------- .../command/commands/AcceptInvite.java | 28 ++---- .../command/commands/AddBlacklist.java | 41 +-------- .../command/commands/ChangePlayerName.java | 7 +- .../command/commands/CreateGroup.java | 17 +--- .../command/commands/DeleteGroup.java | 25 +---- .../command/commands/DisciplineGroup.java | 13 +-- .../command/commands/GetDefaultGroup.java | 10 +- .../command/commands/GlobalStats.java | 6 +- .../command/commands/GroupStats.java | 12 +-- .../namelayer/command/commands/InfoDump.java | 16 +--- .../command/commands/InvitePlayer.java | 34 +------ .../namelayer/command/commands/JoinGroup.java | 12 +-- .../command/commands/LeaveGroup.java | 24 +---- .../command/commands/LinkGroups.java | 34 +------ .../command/commands/ListCurrentInvites.java | 11 +-- .../command/commands/ListGroups.java | 4 +- .../command/commands/ListMembers.java | 29 +----- .../command/commands/ListPermissions.java | 29 +----- .../command/commands/ListPlayerTypes.java | 4 +- .../command/commands/ListSubGroups.java | 4 +- .../command/commands/MergeGroups.java | 20 +--- .../command/commands/ModifyPermissions.java | 35 +------ .../command/commands/NameLayerGroupGui.java | 22 +---- .../command/commands/PromotePlayer.java | 38 +------- .../command/commands/RejectInvite.java | 16 +--- .../command/commands/RemoveBlacklist.java | 32 +------ .../command/commands/RemoveMember.java | 28 +----- .../command/commands/RevokeInvite.java | 25 +---- .../command/commands/SetDefaultGroup.java | 20 +--- .../command/commands/SetPassword.java | 19 +--- .../command/commands/ShowBlacklist.java | 32 +------ .../commands/ToggleAutoAcceptInvites.java | 4 +- .../command/commands/TransferGroup.java | 22 +---- .../command/commands/UnlinkGroups.java | 22 +---- .../command/commands/UpdateName.java | 24 +---- 36 files changed, 176 insertions(+), 634 deletions(-) diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/CommandHandler.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/CommandHandler.java index 80e6a771..ff03257e 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/CommandHandler.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/CommandHandler.java @@ -1,8 +1,13 @@ package vg.civcraft.mc.namelayer.command; -import co.aikar.commands.BaseCommand; +import co.aikar.commands.BukkitCommandCompletionContext; +import co.aikar.commands.CommandCompletions; +import java.util.Arrays; +import javax.annotation.Nonnull; import vg.civcraft.mc.civmodcore.commands.CommandManager; +import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameLayerPlugin; +import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.command.commands.AcceptInvite; import vg.civcraft.mc.namelayer.command.commands.AddBlacklist; import vg.civcraft.mc.namelayer.command.commands.ChangePlayerName; @@ -34,50 +39,58 @@ import vg.civcraft.mc.namelayer.command.commands.ToggleAutoAcceptInvites; import vg.civcraft.mc.namelayer.command.commands.TransferGroup; import vg.civcraft.mc.namelayer.command.commands.UpdateName; +import vg.civcraft.mc.namelayer.permission.PermissionType; + +public class CommandHandler extends CommandManager{ -public class CommandHandler { - CommandManager commandManager; public CommandHandler(NameLayerPlugin plugin) { - commandManager = new CommandManager(plugin); - commandManager.init(); + super(plugin); + init(); } + @Override public void registerCommands(){ - addCommands(new AcceptInvite()); - addCommands(new CreateGroup()); - addCommands(new DeleteGroup()); - addCommands(new DisciplineGroup()); - addCommands(new GlobalStats()); - addCommands(new GroupStats()); - addCommands(new InfoDump()); - addCommands(new InvitePlayer()); - addCommands(new JoinGroup()); - addCommands(new ListGroups()); - addCommands(new ListMembers()); - addCommands(new ListPermissions()); + registerCommand(new AcceptInvite()); + registerCommand(new CreateGroup()); + registerCommand(new DeleteGroup()); + registerCommand(new DisciplineGroup()); + registerCommand(new GlobalStats()); + registerCommand(new GroupStats()); + registerCommand(new InfoDump()); + registerCommand(new InvitePlayer()); + registerCommand(new JoinGroup()); + registerCommand(new ListGroups()); + registerCommand(new ListMembers()); + registerCommand(new ListPermissions()); //addCommands(new MergeGroups("MergeGroups")); Disabled as it's currently semi broken - addCommands(new ModifyPermissions()); - addCommands(new RemoveMember()); - addCommands(new SetPassword()); - addCommands(new TransferGroup()); - addCommands(new LeaveGroup()); - addCommands(new ListPlayerTypes()); - addCommands(new ListCurrentInvites()); - addCommands(new ToggleAutoAcceptInvites()); - addCommands(new PromotePlayer()); - addCommands(new RejectInvite()); - addCommands(new RevokeInvite()); - addCommands(new ChangePlayerName()); - addCommands(new SetDefaultGroup()); - addCommands(new GetDefaultGroup()); - addCommands(new UpdateName()); - addCommands(new AddBlacklist()); - addCommands(new RemoveBlacklist()); - addCommands(new ShowBlacklist()); - addCommands(new NameLayerGroupGui()); + registerCommand(new ModifyPermissions()); + registerCommand(new RemoveMember()); + registerCommand(new SetPassword()); + registerCommand(new TransferGroup()); + registerCommand(new LeaveGroup()); + registerCommand(new ListPlayerTypes()); + registerCommand(new ListCurrentInvites()); + registerCommand(new ToggleAutoAcceptInvites()); + registerCommand(new PromotePlayer()); + registerCommand(new RejectInvite()); + registerCommand(new RevokeInvite()); + registerCommand(new ChangePlayerName()); + registerCommand(new SetDefaultGroup()); + registerCommand(new GetDefaultGroup()); + registerCommand(new UpdateName()); + registerCommand(new AddBlacklist()); + registerCommand(new RemoveBlacklist()); + registerCommand(new ShowBlacklist()); + registerCommand(new NameLayerGroupGui()); } - - public void addCommands(BaseCommand command){ - commandManager.registerCommand(command); + + @Override + public void registerCompletions(@Nonnull CommandCompletions completions) { + super.registerCompletions(completions); + completions.registerCompletion("NL_Groups", (context) -> GroupTabCompleter.complete(context.getInput(), null, context.getPlayer())); + completions.registerAsyncCompletion("NL_Ranks", (context) -> + Arrays.asList(GroupManager.PlayerType.getStringOfTypes().split(" "))); + completions.registerCompletion("NL_Perms", (context) -> + PermissionType.getAllPermissions().stream().map(PermissionType::getName).toList()); } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java index 335627f5..93dfcdc3 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java @@ -1,15 +1,16 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.BukkitCommandCompletionContext; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import vg.civcraft.mc.civmodcore.commands.TabComplete; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; @@ -17,16 +18,13 @@ import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.listeners.PlayerListener; -@CommandAlias("nlacceptinvite|nlacceptgroup|acceptinvite|acceptgroup|accept|join|ctjoin|ctj|ag") public class AcceptInvite extends BaseCommandMiddle { - @Syntax("/nlag ") + @CommandAlias("nlacceptinvite|nlacceptgroup|acceptinvite|acceptgroup|accept|join|ctjoin|ctj|ag") + @Syntax("") @Description("Accept an invitation to a group.") - public void execute(CommandSender sender, String groupName) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.YELLOW + "Baby you dont got a uuid, why you got to make this difficult for everyone :("); - return; - } + @CommandCompletion("@NL_Invites") + public void execute(Player sender, String groupName) { Player p = (Player) sender; Group group = gm.getGroup(groupName); if (groupIsNull(sender, groupName, group)) { @@ -53,14 +51,8 @@ public void execute(CommandSender sender, String groupName) { p.sendMessage(Component.text("You have successfully been added to the group as a " + type.name() +".").color(NamedTextColor.RED)); } - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)){ - return null; - } - - if (args.length > 0) - return InviteTabCompleter.complete(args[0], (Player) sender); - else - return InviteTabCompleter.complete(null, (Player)sender); + @TabComplete("NL_Invites") + public List tabComplete(BukkitCommandCompletionContext context) { + return InviteTabCompleter.complete(context.getInput(), context.getPlayer()); } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AddBlacklist.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AddBlacklist.java index c71d7a81..9082c16a 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AddBlacklist.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AddBlacklist.java @@ -1,35 +1,27 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.ArrayList; -import java.util.List; import java.util.UUID; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.BlackList; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlbl|blacklist|addblacklist") public class AddBlacklist extends BaseCommandMiddle { - @Syntax("/nlbl ") + @CommandAlias("nlbl|blacklist|addblacklist") + @Syntax(" ") @Description("Blacklist a player for a specific group") - public void execute(CommandSender sender, String groupName, String playerName) { - if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.RED - + "Why do you have to make this so difficult?"); - return; - } + @CommandCompletion("@NL_Groups @allplayers") + public void execute(Player sender, String groupName, String playerName) { Player p = (Player) sender; Group g = GroupManager.getGroup(groupName); if (g == null) { @@ -59,27 +51,4 @@ public void execute(CommandSender sender, String groupName, String playerName) { bl.addBlacklistMember(g, targetUUID, true); p.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(targetUUID) + " was successfully blacklisted on the group " + g.getName()); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); - return null; - } - if (args.length < 2) { - if (args.length == 0) - return GroupTabCompleter.complete(null, null, (Player) sender); - else - return GroupTabCompleter.complete(args[0], null, (Player)sender); - - } else if (args.length == 2) { - List namesToReturn = new ArrayList<>(); - for (Player p: Bukkit.getOnlinePlayers()) { - if (p.getName().toLowerCase().startsWith(args[0].toLowerCase())) - namesToReturn.add(p.getName()); - } - return namesToReturn; - } - return null; - } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ChangePlayerName.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ChangePlayerName.java index 72080671..14d84b1b 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ChangePlayerName.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ChangePlayerName.java @@ -13,18 +13,17 @@ * Created by isaac on 2/6/15. */ -@CommandAlias("nlcpn|changeplayername") -@CommandPermission("namelayer.admin") public class ChangePlayerName extends BaseCommandMiddle { - @Syntax("/nlcpn ") + @CommandAlias("nlcpn|changeplayername") + @CommandPermission("namelayer.admin") + @Syntax(" ") @Description("Used by ops to change a players name") public void execute(CommandSender sender, String currentName, String changedName) { if (!sender.isOp() && !sender.hasPermission("namelayer.admin")) { sender.sendMessage("You're not an op. "); return; } - UUID player = NameAPI.getUUID(currentName); if (player == null){ sender.sendMessage(currentName + " has never logged in"); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/CreateGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/CreateGroup.java index fe317252..740ba44b 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/CreateGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/CreateGroup.java @@ -6,12 +6,10 @@ import co.aikar.commands.annotation.Syntax; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.util.List; import java.util.UUID; import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; @@ -20,17 +18,12 @@ import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.Group; -@CommandAlias("nlcg|nlcreategroup|creategroup|create|ctcreate|creategroup|cg") public class CreateGroup extends BaseCommandMiddle { - @Syntax("/nlcg [password]") + @CommandAlias("nlcg|nlcreategroup|creategroup|create|ctcreate|creategroup|cg") + @Syntax(" [password]") @Description("Create a group (Public or Private). Password is optional.") - public void execute(CommandSender sender, String groupName, @Optional String userPassword) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.DARK_BLUE + "Nice try console man, you can't bring me down. The computers won't win. " + - "Dis a player commmand back off."); - return; - } + public void execute(Player sender, String groupName, @Optional String userPassword) { Player p = (Player) sender; String name = groupName; int currentGroupCount = gm.countGroups(p.getUniqueId()); @@ -100,8 +93,4 @@ public void run() { } p.sendMessage(ChatColor.GREEN + "Group creation request is in process."); } - - public List tabComplete(CommandSender sender, String[] args) { - return null; - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java index c8aeffa4..c9f975d8 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java @@ -5,31 +5,24 @@ import co.aikar.commands.annotation.Syntax; import java.util.Date; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.UUID; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nldg") public class DeleteGroup extends BaseCommandMiddle { private Map confirmDeleteGroup = new HashMap(); - @Syntax("/nldg ") + @CommandAlias("nldg|delete|deletegroup|groupdelete") + @Syntax("") @Description("Delete a group.") - public void execute(CommandSender sender, String groupName) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.DARK_AQUA + "I grow tired of this, NO."); - return; - } + public void execute(Player sender, String groupName) { Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); String x = groupName; @@ -94,16 +87,4 @@ public void execute(CommandSender sender, String groupName) { confirmDeleteGroup.put(uuid, groupDate); return; } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)){ - return null; - } - - if (args.length > 0) - return GroupTabCompleter.complete(args[args.length - 1], PermissionType.getPermission("DELETE"), (Player) sender); - else { - return GroupTabCompleter.complete(null, PermissionType.getPermission("DELETE"), (Player) sender); - } - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java index 7da9d8a4..fd1f63e9 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java @@ -5,22 +5,17 @@ import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.Group; -@CommandAlias("nldig") -@CommandPermission("namelayer.admin") public class DisciplineGroup extends BaseCommandMiddle { - @Syntax("/nldig ") + @CommandAlias("nldig|disablegroup|disable|discipline") + @CommandPermission("namelayer.admin") + @Syntax("") @Description("Disable a group from working.") - public void execute(CommandSender sender, String groupName) { - if (!(sender instanceof Player)) - sender.sendMessage(ChatColor.AQUA + "Meh, fine, just this one."); - // checks and stuff should be in plugin.yml so going to assume that sender has perms - // naaaaaaa + public void execute(Player sender, String groupName) { Player p = (Player) sender; Group g = gm.getGroup(groupName); if (groupIsNull(sender, groupName, g)) { diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GetDefaultGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GetDefaultGroup.java index a6c20896..e733f625 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GetDefaultGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GetDefaultGroup.java @@ -2,7 +2,6 @@ import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.Description; -import co.aikar.commands.annotation.Syntax; import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; @@ -12,16 +11,11 @@ import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; -@CommandAlias("nlgdg") public class GetDefaultGroup extends BaseCommandMiddle { - @Syntax("/nlgdg") + @CommandAlias("nlgdg") @Description("Get a players default group") - public void execute(CommandSender sender) { - if (!(sender instanceof Player)){ - sender.sendMessage("I don't think you need to do that."); - return; - } + public void execute(Player sender) { Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GlobalStats.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GlobalStats.java index 42e4e55d..ffe6e3c3 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GlobalStats.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GlobalStats.java @@ -3,18 +3,16 @@ import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandPermission; import co.aikar.commands.annotation.Description; -import co.aikar.commands.annotation.Syntax; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -@CommandAlias("nlgls") -@CommandPermission("namelayer.admin") public class GlobalStats extends BaseCommandMiddle { - @Syntax("/nlgls") + @CommandAlias("nlgls") + @CommandPermission("namelayer.admin") @Description("Get the amount of global groups.") public void execute(final CommandSender sender) { Bukkit.getScheduler().runTaskAsynchronously(NameLayerPlugin.getInstance(), new Runnable(){ diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GroupStats.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GroupStats.java index 9fb46dcf..17d517e3 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GroupStats.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/GroupStats.java @@ -18,17 +18,13 @@ import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlgs") -@CommandPermission("namelayer.admin") public class GroupStats extends BaseCommandMiddle { - @Syntax("/nlgs ") + @CommandAlias("nlgs") + @CommandPermission("namelayer.admin") + @Syntax("") @Description("Get stats about a group.") - public void execute(CommandSender sender, String groupName) { - if (!(sender instanceof Player)) { - sender.sendMessage("meh"); - return; - } + public void execute(Player sender, String groupName) { Player p = (Player) sender; Group g = gm.getGroup(groupName); UUID uuid = NameAPI.getUUID(p.getName()); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InfoDump.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InfoDump.java index da822381..07842dca 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InfoDump.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InfoDump.java @@ -8,7 +8,6 @@ import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; @@ -17,18 +16,13 @@ import vg.civcraft.mc.namelayer.permission.GroupPermission; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlid") -@CommandPermission("namelayer.admin") public class InfoDump extends BaseCommandMiddle { - - @Syntax("/nlid (page)") + + @CommandAlias("nlid") + @CommandPermission("namelayer.admin") + @Syntax("[page]") @Description("This command dumps group info for CitadelGUI.") - public void execute(CommandSender sender, @Optional String groupID) { - if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.RED + "You are not a player?"); - return; - } - + public void execute(Player sender, @Optional String groupID) { Player player = (Player)sender; UUID playerUUID = NameAPI.getUUID(player.getName()); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InvitePlayer.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InvitePlayer.java index 214f52ed..29fe68f3 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InvitePlayer.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/InvitePlayer.java @@ -1,11 +1,10 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Optional; import co.aikar.commands.annotation.Syntax; -import java.util.ArrayList; -import java.util.List; import java.util.UUID; import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.ComponentBuilder; @@ -20,17 +19,16 @@ import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; -import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.listeners.PlayerListener; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlip") public class InvitePlayer extends BaseCommandMiddle { - @Syntax("/nlip (PlayerType- default MEMBERS)") + @CommandAlias("nlip|invite|inviteplayer") + @Syntax(" [rank (eg: MEMBERS)]") @Description("Invite a player to a group.") + @CommandCompletion("@NL_Groups @allplayers @NL_Ranks") public void execute(CommandSender s, String groupName, String playerName, @Optional String playerRank) { final String targetGroup = groupName; final String targetPlayer = playerName; @@ -164,28 +162,4 @@ public static void sendInvitation(Group group, PlayerType pType, UUID invitedPla PlayerListener.addNotification(invitedPlayer, group); } } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); - return null; - } - if (args.length < 2) { - if (args.length == 0) - return GroupTabCompleter.complete(null, null, (Player) sender); - else - return GroupTabCompleter.complete(args[0], null, (Player)sender); - } else if (args.length == 2) { - List namesToReturn = new ArrayList<>(); - for (Player p: Bukkit.getOnlinePlayers()) { - if (p.getName().toLowerCase().startsWith(args[1].toLowerCase())) - namesToReturn.add(p.getName()); - } - return namesToReturn; - } - else if (args.length == 3) - return MemberTypeCompleter.complete(args[2]); - - else return null; - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java index d355645f..4e8f2fb4 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java @@ -5,7 +5,6 @@ import co.aikar.commands.annotation.Syntax; import java.util.UUID; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; @@ -15,17 +14,12 @@ import vg.civcraft.mc.namelayer.permission.GroupPermission; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nljg") public class JoinGroup extends BaseCommandMiddle { - @Syntax("/nljg ") + @CommandAlias("nljg|join|joingroup") + @Syntax(" ") @Description("Join a password protected group.") - public void execute(CommandSender sender, String groupName, String attemptedPassword) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.RED + "How would this even work. Seriously my reddit account is rourke750, explain to me why " + - "you would ever want to do this from console and I will remove this check."); - return; - } + public void execute(Player sender, String groupName, String attemptedPassword) { Player p = (Player) sender; Group g = gm.getGroup(groupName); if (groupIsNull(sender, groupName, g)) { diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java index e49a44e3..f36fa166 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java @@ -3,26 +3,19 @@ import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; -@CommandAlias("nlleg") public class LeaveGroup extends BaseCommandMiddle { - @Syntax("/nlleg ") + @CommandAlias("nlleg|leave|leavegroup") + @Syntax("") @Description("Leave a group") - public void execute(CommandSender sender, String groupName) { - if (!(sender instanceof Player)){ - sender.sendMessage("Nope, be player"); - return; - } + public void execute(Player sender, String groupName) { Player p = (Player) sender; Group g = gm.getGroup(groupName); if (groupIsNull(sender, groupName, g)) { @@ -40,15 +33,4 @@ public void execute(CommandSender sender, String groupName) { g.removeMember(uuid); p.sendMessage(ChatColor.GREEN + "You have been removed from the group."); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) - return null; - - if (args.length > 0) - return GroupTabCompleter.complete(args[0], null, (Player) sender); - else{ - return GroupTabCompleter.complete(null, null, (Player)sender); - } - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LinkGroups.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LinkGroups.java index f8ddd076..4db0631c 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LinkGroups.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LinkGroups.java @@ -1,32 +1,25 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nllink") public class LinkGroups extends BaseCommandMiddle { - @Syntax("/nllink ") + @CommandAlias("nllink|linkgroups") + @Syntax(" ") @Description("Links two groups to each other as nested groups.") - public void execute(CommandSender sender, String parentGroup, String childGroup) { - if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.LIGHT_PURPLE - + "And it feels like I am just to close to " - + "touch you, but you are not a player."); - return; - } + @CommandCompletion("@NL_Groups @NL_Groups") + public void execute(Player sender, String parentGroup, String childGroup) { Player p = (Player) sender; String supername = parentGroup, subname = childGroup; @@ -86,21 +79,4 @@ public void execute(CommandSender sender, String parentGroup, String childGroup) } p.sendMessage(message); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.BLUE - + "Fight me, bet you wont.\n " - + "Just back off you don't belong here."); - return null; - } - - if (args.length > 0) { - return GroupTabCompleter.complete(args[args.length - 1], - PermissionType.getPermission("LINKING"), (Player)sender); - } else { - return GroupTabCompleter.complete(null, - PermissionType.getPermission("LINKING"), (Player)sender); - } - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListCurrentInvites.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListCurrentInvites.java index 61408368..ae5a38d4 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListCurrentInvites.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListCurrentInvites.java @@ -2,23 +2,16 @@ import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.Description; -import co.aikar.commands.annotation.Syntax; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.listeners.PlayerListener; -@CommandAlias("nllci") public class ListCurrentInvites extends BaseCommandMiddle { - @Syntax("/nllci") + @CommandAlias("nllci|listinvites|invites") @Description("List your current invites.") - public void execute(CommandSender sender) { - if (!(sender instanceof Player)){ - sender.sendMessage("back off console man"); - return; - } + public void execute(Player sender) { Player p = (Player) sender; p.sendMessage(PlayerListener.getNotificationsInStringForm(NameAPI.getUUID(p.getName()))); } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListGroups.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListGroups.java index 0510e987..fc97c67f 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListGroups.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListGroups.java @@ -14,10 +14,10 @@ import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.Group; -@CommandAlias("nllg") public class ListGroups extends BaseCommandMiddle { - @Syntax("/nllg ") + @CommandAlias("nllg|listgroups|groups") + @Syntax("[page]") @Description("List groups.") public void execute(CommandSender sender, @Optional String pageNumber) { Player p = null; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java index a6b66d8e..a99169e9 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java @@ -8,28 +8,20 @@ import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; -import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nllm") public class ListMembers extends BaseCommandMiddle { - @Syntax("/nllm (PlayerType)") + @CommandAlias("nllm|listmembers|members") + @Syntax(" [rank (e.g: MEMBERS)]") @Description("List the members in a group") - public void execute(CommandSender sender, String groupName, @Optional String playerType, @Optional String playerName) { - if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.LIGHT_PURPLE + "No can do."); - return; - } - + public void execute(Player sender, String groupName, @Optional String playerType, @Optional String playerName) { Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); String groupname = groupName; @@ -93,19 +85,4 @@ public void execute(CommandSender sender, String groupName, @Optional String pla p.sendMessage(sb.toString()); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) { - return null; - } - - if (args.length == 0) - return GroupTabCompleter.complete(null, null, (Player) sender); - else if (args.length == 1) - return GroupTabCompleter.complete(args[0], null, (Player)sender); - else if (args.length == 2) - return MemberTypeCompleter.complete(args[1]); - - return null; - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java index 95615fa7..bb2139d8 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java @@ -4,30 +4,22 @@ import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Optional; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; -import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.GroupPermission; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nllp") public class ListPermissions extends BaseCommandMiddle { - @Syntax("/nllp ") + @CommandAlias("nllp|listperms|perms|permissions") + @Syntax(" [rank (e.g: MEMBERS)]") @Description("Show permissions for a PlayerType in a specific group.") - public void execute(CommandSender sender, String groupName, @Optional String playerRank) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.RED + "No."); - return; - } + public void execute(Player sender, String groupName, @Optional String playerRank) { Player p = (Player) sender; Group g = gm.getGroup(groupName); if (groupIsNull(sender, groupName, g)) { @@ -58,19 +50,4 @@ public void execute(CommandSender sender, String groupName, @Optional String pla p.sendMessage(ChatColor.GREEN + perms); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) - return null; - - if (args.length == 0) - return GroupTabCompleter.complete(null, null, (Player) sender); - else if (args.length == 1) - return GroupTabCompleter.complete(args[0], null, (Player)sender); - else if (args.length == 2) - return MemberTypeCompleter.complete(args[1]); - - return null; - } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPlayerTypes.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPlayerTypes.java index 53ddbdf5..56cea626 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPlayerTypes.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPlayerTypes.java @@ -2,17 +2,15 @@ import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.Description; -import co.aikar.commands.annotation.Syntax; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -@CommandAlias("nllpt") public class ListPlayerTypes extends BaseCommandMiddle { + @CommandAlias("nllpt|ranks") @Description("List PlayerTypes.") - @Syntax("/nllpt") public void execute(CommandSender sender) { if (!(sender instanceof Player)){ sender.sendMessage("wereyjukqswedfrgyjukl."); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListSubGroups.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListSubGroups.java index aa07da27..b0fb7969 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListSubGroups.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListSubGroups.java @@ -17,12 +17,12 @@ import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nllsg") public class ListSubGroups extends BaseCommandMiddle { private static String format = "%s%s : (%s)\n"; - @Syntax("/nllsg [group]") + @CommandAlias("nllsg|subgroups|listsubgroups") + @Syntax("[group]") @Description("List the nested group hierarchy.") public void execute(CommandSender sender, @Optional String targetGroupName) { if (!(sender instanceof Player)) { diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/MergeGroups.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/MergeGroups.java index 7f42e048..2a67ac5e 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/MergeGroups.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/MergeGroups.java @@ -1,9 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import java.util.logging.Level; import org.bukkit.ChatColor; @@ -13,15 +13,15 @@ import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlmg") public class MergeGroups extends BaseCommandMiddle { - @Syntax("/nlmg ") + @CommandAlias("nlmg|merge|mergegroups") + @Syntax(" ") @Description("Merge two groups together.") + @CommandCompletion("@NL_Groups @NL_Groups") public void execute(CommandSender sender, String groupToKeep, String groupToDelete) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.BLUE + "Fight me, bet you wont.\n Just back off you don't belong here."); @@ -66,16 +66,4 @@ public void execute(CommandSender sender, String groupToKeep, String groupToDele } p.sendMessage(ChatColor.GREEN + "Group is under going merge."); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) - return null; - - if (args.length > 0) - return GroupTabCompleter.complete(args[args.length - 1], PermissionType.getPermission("MERGE"), - (Player) sender); - else { - return GroupTabCompleter.complete(null, PermissionType.getPermission("MERGE"), (Player) sender); - } - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ModifyPermissions.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ModifyPermissions.java index bd52c110..9c5f939d 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ModifyPermissions.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ModifyPermissions.java @@ -1,9 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -12,18 +12,16 @@ import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; -import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter; -import vg.civcraft.mc.namelayer.command.TabCompleters.PermissionCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.GroupPermission; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlmp") public class ModifyPermissions extends BaseCommandMiddle { - @Syntax("/nlmp ") + @CommandAlias("nlmp|editperms|modifyperms") + @Syntax(" ") @Description("Modify the permissions of a group.") + @CommandCompletion("@NL_Groups add|remove @NL_Ranks @NL_Perms") public void execute(CommandSender sender, String groupName, String adding, String playerRank, String permissionName) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "You must be a player. Nuf said."); @@ -100,29 +98,4 @@ else if (info.equalsIgnoreCase("remove")){ p.sendMessage(ChatColor.RED + "Specify if you want to add or remove."); } } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) - return null; - - if (args.length == 0) - return GroupTabCompleter.complete(null, PermissionType.getPermission("PERMS"), (Player) sender); - else if (args.length == 1) - return GroupTabCompleter.complete(args[0], PermissionType.getPermission("PERMS"), (Player)sender); - else if (args.length == 2) { - - if (args[1].length() > 0) { - if (args[1].charAt(0) == 'a') return java.util.Arrays.asList(new String[]{"add"}); - else if (args[1].charAt(0) == 'r') return java.util.Arrays.asList(new String[]{"remove"}); - } else { - return java.util.Arrays.asList(new String[]{"add", "remove"}); - } - - } else if (args.length == 3) { - return MemberTypeCompleter.complete(args[2]); - } else if (args.length == 4) { - return PermissionCompleter.complete(args[3]); - } - return null; - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/NameLayerGroupGui.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/NameLayerGroupGui.java index ed09520b..366eb9be 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/NameLayerGroupGui.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/NameLayerGroupGui.java @@ -1,25 +1,25 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Optional; import co.aikar.commands.annotation.Syntax; -import java.util.List; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.gui.GUIGroupOverview; import vg.civcraft.mc.namelayer.gui.MainGroupGUI; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nl") public class NameLayerGroupGui extends BaseCommandMiddle { - @Syntax("/nl [group]") + @CommandAlias("nl") + @Syntax("[group]") @Description("Open the group management GUI") + @CommandCompletion("@NL_Groups") public void execute(CommandSender sender, @Optional String groupName) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.BLUE + "Go back home console man, we dont want you here"); @@ -41,18 +41,4 @@ public void execute(CommandSender sender, @Optional String groupName) { } MainGroupGUI gui = new MainGroupGUI((Player) sender, g); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.BLUE + "Go back home console man, we dont want you here"); - return null; - } - if (args.length == 0) { - return GroupTabCompleter.complete(null, PermissionType.getPermission("OPEN_GUI"), (Player)sender); - } - else { - return GroupTabCompleter.complete(args [0], PermissionType.getPermission("OPEN_GUI"), (Player)sender); - } - } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java index 22b64fba..0db8498e 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java @@ -1,35 +1,28 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; -import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter; import vg.civcraft.mc.namelayer.events.PromotePlayerEvent; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlpp") public class PromotePlayer extends BaseCommandMiddle { - @Syntax("/nlpp ") + @CommandAlias("nlpp|promote|promoteplayer") + @Syntax(" ") @Description("Promote/Demote a Player in a Group") - public void execute(CommandSender sender, String groupName, String playerName, String playerType) { - if (!(sender instanceof Player)){ - sender.sendMessage("How about No?"); - return; - } - + @CommandCompletion("@NL_Groups @allplayers @NL_Ranks") + public void execute(Player sender, String groupName, String playerName, String playerType) { Player p = (Player) sender; UUID executor = NameAPI.getUUID(p.getName()); @@ -153,25 +146,4 @@ public void execute(CommandSender sender, String groupName, String playerName, S promoteeType.toString() + " in (Group) " + group.getName()); } } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); - return null; - } - if (args.length < 2) { - if (args.length == 0) - return GroupTabCompleter.complete(null, null, (Player) sender); - else - return GroupTabCompleter.complete(args[0], null, (Player)sender); - - } else if (args.length == 2) - return null; - //return GroupMemberTabCompleter.complete(args[0], args[1], (Player) sender); - else if (args.length == 3) - return MemberTypeCompleter.complete(args[2]); - - else return null; - } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java index aa108009..5a2e8f10 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java @@ -3,7 +3,6 @@ import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; @@ -13,14 +12,13 @@ import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.InviteTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.listeners.PlayerListener; -@CommandAlias("nlrg") public class RejectInvite extends BaseCommandMiddle { - @Syntax("/nlrg ") + @CommandAlias("nlrg|reject|rejectinvite") + @Syntax("") @Description("Reject an invitation to a group.") public void execute(CommandSender sender, String targetGroup) { if (!(sender instanceof Player)) { @@ -50,14 +48,4 @@ public void execute(CommandSender sender, String targetGroup) { PlayerListener.removeNotification(uuid, group); player.sendMessage(ChatColor.GREEN + "You've successfully declined that group invitation."); } - - public List tabComplete(CommandSender sender, String[] args) { - if (args.length > 0) { - return InviteTabCompleter.complete(args[0], (Player) sender); - } - else { - return InviteTabCompleter.complete(null, (Player) sender); - } - } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveBlacklist.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveBlacklist.java index ad863451..35c42d12 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveBlacklist.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveBlacklist.java @@ -1,12 +1,10 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.ArrayList; -import java.util.List; import java.util.UUID; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -14,16 +12,16 @@ import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.BlackList; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlubl") public class RemoveBlacklist extends BaseCommandMiddle { - @Syntax("/nlubl ") + @CommandAlias("nlubl|unblacklist") + @Syntax(" ") @Description("Removes a player from the blacklist for a specific group") + @CommandCompletion("@NL_Groups @allplayers") public void execute(CommandSender sender, String groupName, String targetPlayer) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED @@ -55,26 +53,4 @@ public void execute(CommandSender sender, String groupName, String targetPlayer) bl.removeBlacklistMember(g, targetUUID, true); p.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(targetUUID) + " was successfully removed from the blacklist for the group " + g.getName()); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); - return null; - } - if (args.length < 2) { - if (args.length == 0) - return GroupTabCompleter.complete(null, null, (Player) sender); - else - return GroupTabCompleter.complete(args[0], null, (Player)sender); - - } else if (args.length == 2) { - List namesToReturn = new ArrayList(); - for (Player p: Bukkit.getOnlinePlayers()) { - if (p.getName().toLowerCase().startsWith(args[0].toLowerCase())) - namesToReturn.add(p.getName()); - } - return namesToReturn; - } - return null; - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveMember.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveMember.java index e92e941b..cbda1a4e 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveMember.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveMember.java @@ -1,9 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -11,15 +11,15 @@ import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlrm") public class RemoveMember extends BaseCommandMiddle { - @Syntax("/nlrm ") + @CommandAlias("nlrm|remove|removeplayer") + @Syntax(" ") @Description("Remove a member from a group.") + @CommandCompletion("@NL_Groups @allplayers") public void execute(CommandSender sender, String groupName, String targetPlayer) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); @@ -83,24 +83,4 @@ public void execute(CommandSender sender, String groupName, String targetPlayer) p.sendMessage(ChatColor.GREEN + playerName + " has been removed from the group."); group.removeMember(uuid); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) - return null; - - if (args.length < 2) { - if (args.length == 1) - return GroupTabCompleter.complete(args[0], null, (Player) sender); - else { - return GroupTabCompleter.complete(null, null, (Player)sender); - } - } - if (args.length == 2) { - return null; - //return GroupMemberTabCompleter.complete(args[0],args[1], (Player) sender); - } - - return null; - } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java index 701ab422..86bc4845 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java @@ -1,9 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -12,16 +12,16 @@ import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.listeners.PlayerListener; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlri") public class RevokeInvite extends BaseCommandMiddle { - @Syntax("/nlri ") + @CommandAlias("nlri|revokeinvite") + @Syntax(" ") @Description("Revoke an Invite.") + @CommandCompletion("@NL_Groups @allplayers") public void execute(CommandSender sender, String groupName, String targetPlayer) { if (!(sender instanceof Player)){ sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); @@ -91,21 +91,4 @@ public void execute(CommandSender sender, String groupName, String targetPlayer) p.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(uuid) + "'s invitation has been revoked."); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); - return null; - } - if (args.length < 2) { - if (args.length == 0) - return GroupTabCompleter.complete(null, null, (Player) sender); - else - return GroupTabCompleter.complete(args[0], null, (Player)sender); - - } else if (args.length == 2) - return null; - - else return null; - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetDefaultGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetDefaultGroup.java index 42f6d6ad..a95779df 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetDefaultGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetDefaultGroup.java @@ -1,9 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -11,15 +11,14 @@ import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; -import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlsdg") public class SetDefaultGroup extends BaseCommandMiddle { - @Syntax("/nlsdg ") + @CommandAlias("nlsdg") + @Syntax("") @Description("Set or change a default group") + @CommandCompletion("@NL_Groups") public void execute(CommandSender sender, String groupName) { if (!(sender instanceof Player)){ sender.sendMessage("I don't think you need to do that."); @@ -48,15 +47,4 @@ public void execute(CommandSender sender, String groupName) { p.sendMessage(ChatColor.GREEN + "You changed your default group from " + x + " to " + gm.getDefaultGroup(uuid)); } } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) - return null; - - if (args.length == 1) - return GroupTabCompleter.complete(args[0], PermissionType.getPermission("BLOCKS"), (Player) sender); - else{ - return GroupTabCompleter.complete(null, PermissionType.getPermission("BLOCKS"), (Player)sender); - } - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetPassword.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetPassword.java index ad0b66e6..452209b1 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetPassword.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/SetPassword.java @@ -1,9 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -11,15 +11,15 @@ import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlsp") public class SetPassword extends BaseCommandMiddle { - @Syntax("/nlsp ") + @CommandAlias("nlsp|setpassword") + @Syntax(" ") @Description("Set a password on a group.") + @CommandCompletion("@NL_Groups") public void execute(CommandSender sender, String groupName, String userPassword) { if (!(sender instanceof Player)){ sender.sendMessage("You may not use this command, must be a pluer."); @@ -49,15 +49,4 @@ public void execute(CommandSender sender, String groupName, String userPassword) g.setPassword(password); p.sendMessage(ChatColor.GREEN + "Password has been successfully set to: " + g.getPassword()); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) - return null; - - if (args.length == 1) - return GroupTabCompleter.complete(args[0], PermissionType.getPermission("PASSWORD"), (Player) sender); - else{ - return GroupTabCompleter.complete(null, PermissionType.getPermission("PASSWORD"), (Player)sender); - } - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ShowBlacklist.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ShowBlacklist.java index 4018c992..9a95d09f 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ShowBlacklist.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ShowBlacklist.java @@ -1,28 +1,26 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.ArrayList; -import java.util.List; import java.util.Set; import java.util.UUID; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlsbl") public class ShowBlacklist extends BaseCommandMiddle { - @Syntax("/nlsbl ") + @CommandAlias("nlsbl|showblacklist") + @Syntax("") @Description("Shows all blacklisted players for a specific group") + @CommandCompletion("@NL_Groups") public void execute(CommandSender sender, String groupName) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED @@ -56,26 +54,4 @@ public void execute(CommandSender sender, String groupName) { //remove last ", " p.sendMessage(reply.substring(0, reply.length() - 2)); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)){ - sender.sendMessage(ChatColor.RED + "I'm sorry baby, please run this as a player :)"); - return null; - } - if (args.length < 2) { - if (args.length == 0) - return GroupTabCompleter.complete(null, null, (Player) sender); - else - return GroupTabCompleter.complete(args[0], null, (Player)sender); - - } else if (args.length == 2) { - List namesToReturn = new ArrayList(); - for (Player p: Bukkit.getOnlinePlayers()) { - if (p.getName().toLowerCase().startsWith(args[0].toLowerCase())) - namesToReturn.add(p.getName()); - } - return namesToReturn; - } - return null; - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ToggleAutoAcceptInvites.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ToggleAutoAcceptInvites.java index a1c97cdf..3f9d36bf 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ToggleAutoAcceptInvites.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ToggleAutoAcceptInvites.java @@ -2,7 +2,6 @@ import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.Description; -import co.aikar.commands.annotation.Syntax; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -12,12 +11,11 @@ import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.group.AutoAcceptHandler; -@CommandAlias("nltaai") public class ToggleAutoAcceptInvites extends BaseCommandMiddle { private AutoAcceptHandler handler = NameLayerPlugin.getAutoAcceptHandler(); - @Syntax("/nltaai") + @CommandAlias("nltaai|autoaccept") @Description("Toggle the acceptance of invites.") public void execute(CommandSender sender) { if (!(sender instanceof Player)){ diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/TransferGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/TransferGroup.java index fc659eea..5216790b 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/TransferGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/TransferGroup.java @@ -1,9 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -12,15 +12,14 @@ import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; -import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nltg") public class TransferGroup extends BaseCommandMiddle { - @Syntax("/nltg ") + @CommandAlias("nltg|transfer|transfergroup") + @Syntax(" ") @Description("Transfer one group to another person.") + @CommandCompletion("@NL_Groups @allplayers") public void execute(CommandSender sender, String groupName, String playerName) { if (!(sender instanceof Player)){ sender.sendMessage("Nope?"); @@ -72,17 +71,4 @@ public static boolean attemptTransfer(Group g, Player owner, UUID futureOwner) { + " has been given ownership of the group."); return true; } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) - return null; - - if (args.length == 1) - return GroupTabCompleter.complete(args[0], PermissionType.getPermission("TRANSFER"), (Player) sender); - else if (args.length == 0) { - return GroupTabCompleter.complete(null, PermissionType.getPermission("TRANSFER"), (Player)sender); - } - return null; - } - } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UnlinkGroups.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UnlinkGroups.java index 150a778b..77bfa70e 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UnlinkGroups.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UnlinkGroups.java @@ -1,9 +1,9 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; -import java.util.List; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -11,15 +11,15 @@ import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; -import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CommandAlias("nlunlink") public class UnlinkGroups extends BaseCommandMiddle { - @Syntax("/nlunlink ") + @CommandAlias("nlunlink|unlink|unlinkgroups") + @Syntax(" ") @Description("Unlinks two groups from each other.") + @CommandCompletion("@NL_Groups @NL_Groups") public void execute(CommandSender sender, String parentGroup, String childGroup) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.LIGHT_PURPLE + "Sorry bruh, no can do."); @@ -76,18 +76,4 @@ public void execute(CommandSender sender, String parentGroup, String childGroup) } p.sendMessage(message); } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) { - return null; - } - - if (args.length > 0) { - return GroupTabCompleter.complete(args[0], - PermissionType.getPermission("LINKING"), (Player)sender); - } else { - return GroupTabCompleter.complete(null, - PermissionType.getPermission("LINKING"), (Player)sender); - } - } } diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UpdateName.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UpdateName.java index 8c128971..9055a6c5 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UpdateName.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/UpdateName.java @@ -4,32 +4,25 @@ import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.NameLayerPlugin; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; import vg.civcraft.mc.namelayer.misc.NameFetcher; -@CommandAlias("nlun") public class UpdateName extends BaseCommandMiddle { private Map newNames = Collections.synchronizedSortedMap(new TreeMap()); - @Syntax("/nlun [CONFIRM]") + @CommandAlias("nlun|updatename|") + @Syntax("[confirm]") @Description("Updates your name on this server to the one your minecraft account currently has") - public void execute(CommandSender sender, String newNameOrConfirm) { - if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.LIGHT_PURPLE - + "NO NO NO NO NO NO NO NO"); - return; - } + public void execute(Player sender, String newNameOrConfirm) { final Player p = (Player) sender; final UUID uuid = p.getUniqueId(); final String oldName = NameAPI.getCurrentName(uuid); @@ -113,15 +106,4 @@ public void run() { + "\". This change will be applied together with all other name changes at a previously announced date."); } } - - public List tabComplete(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) { - return null; - } - if (newNames.get(((Player) sender).getUniqueId()) != null) { - return Collections.singletonList("CONFIRM"); - } - return null; - } - } From 001d1865d118c9dd9c2db4e698a1bb7f373279b0 Mon Sep 17 00:00:00 2001 From: Cola Date: Thu, 1 Jul 2021 19:57:00 +0100 Subject: [PATCH 5/9] remove commands from plugin.yml --- .../src/main/resources/plugin.yml | 72 ------------------- 1 file changed, 72 deletions(-) diff --git a/namelayer-spigot/src/main/resources/plugin.yml b/namelayer-spigot/src/main/resources/plugin.yml index 34efa36f..133b03c8 100644 --- a/namelayer-spigot/src/main/resources/plugin.yml +++ b/namelayer-spigot/src/main/resources/plugin.yml @@ -6,78 +6,6 @@ authors: [BlackXnt, Maxopoly, ProgrammerDan, Tyrothalos, Scuwr, Mr_Little_Kitty] depend: [CivModCore] api-version: 1.16 description: NameLayer handles groups creation and management, in addition to name changes. Once you have connected to Civcraft with a name, it is permanently yours. If a name is already taken, then NameLayer will add a number to the name. -commands: - nlag: - aliases: [nlacceptinvite, nlacceptgroup, acceptinvite, acceptgroup, accept, join, ctjoin, ctj, ag] - nlcg: - aliases: [nlcreategroup, creategroup, create, ctcreate, creategroup, cg] - nldg: - aliases: [nldeletegroup, deletegroup, dg, delete, deletegroup, ctdelete] - nldig: - aliases: [nldisiplinegroup, nldisablegroup, nldisable] - permission: namelayer.admin - nlgls: - aliases: [nlglobalstats] - nlgs: - aliases: [nlgroupstats] - nlid: - aliases: [nlinfodump] - nlip: - aliases: [nlinviteplayer, nlinvite, invite, ctinvite, allow, cta] - nljg: - aliases: [nljoingroup, nljoin, join] - nllg: - aliases: [nllistgroups, nllistg, listgroups, ctlist, lg] - nllm: - aliases: [nllistmembers, nllistm, listmembers, ctmembers, lm, members] - nllcm: - nllp: - aliases: [nllistpermissions, nllistperms, listpermissions] - nlpp: - aliases: [nlpromoteplayer, nlpromote, promoteplayer, ctpromote, ctaddmod, ctam, addmod] - #nlmg: - #aliases: [nlmergegroups, nlmerge, mergegroup, mergegroups, merge] - nlmp: - aliases: [nlmodifyperms, nlmodifypermissions, nlmodperms, modifypermissions] - nlrm: - aliases: [nlremovemember, nlremove, nlkick, kickmember, removemember, remove, kickmember, ctremove, ctkick] - nlrg: - aliases: [nlrejectinvite, nldeclineinvite] - nlri: - aliases: [nlrevokeinvite, nluninvite, revoke, uninvite, revokeinvite, uninvite] - #nllink: - #nlunlink: - #nllsg: - nlsp: - aliases: [nlsetpassword, nlsetpass, setpass, setpassword] - nltg: - aliases: [nltransfergroup, nltransfer, transfergroup] - nlleg: - aliases: [nlleavegroup, nlleave, leavegroup, ctleave] - nllgt: - aliases: [nllistgrouptypes, nllistgtypes, listgrouptypes] - nllpt: - aliases: [nllistplayertypes, nllistptypes, listplayertypes] - nllci: - aliases: [nllistcurrentinvites, nllistinvites, invites, listinvites, ctinvites] - nltaai: - aliases: [nlautoacceptinvites, nlautoaccept, autoaccept] - nlcpn: - permission: namelayer.admin - nlsdg: - aliases: [nlsetdefaultgroup, nlsetdefault, setdefault, setdefaultgroup, default] - nlgdg: - aliases: [nlgetdefaultgroup, nlgetdefault, getdefaultgroup] - nlun: - aliases: [updatename] - nlsbl: - aliases: [showblacklist, listblacklist] - nlbl: - aliases: [blacklist, addblacklist] - nlubl: - aliases: [removeblacklist, unblacklist] - nl: - permissions: namelayer.admin: default: op From a1d8f5690a335d34a12cfa17e97a2e482475e203 Mon Sep 17 00:00:00 2001 From: Cola Date: Mon, 5 Jul 2021 20:29:59 +0100 Subject: [PATCH 6/9] Fix POM + Latest CMC --- namelayer-spigot/pom.xml | 2 +- .../mc/namelayer/NameLayerPlugin.java | 94 ++++++++++--------- 2 files changed, 52 insertions(+), 44 deletions(-) diff --git a/namelayer-spigot/pom.xml b/namelayer-spigot/pom.xml index 797f2c63..2aab1713 100755 --- a/namelayer-spigot/pom.xml +++ b/namelayer-spigot/pom.xml @@ -26,7 +26,7 @@ provided - vg.civcraft.mc.civmodcore + com.github.civclassic CivModCore 1.9.0 provided diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameLayerPlugin.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameLayerPlugin.java index e6c318aa..fe4d0081 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameLayerPlugin.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameLayerPlugin.java @@ -8,6 +8,7 @@ import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import vg.civcraft.mc.civmodcore.ACivMod; +import vg.civcraft.mc.civmodcore.dao.DatabaseCredentials; import vg.civcraft.mc.civmodcore.dao.ManagedDatasource; import vg.civcraft.mc.namelayer.command.CommandHandler; import vg.civcraft.mc.namelayer.database.AssociationList; @@ -35,7 +36,7 @@ public class NameLayerPlugin extends ACivMod { private static int groupLimit = 10; private static boolean createGroupOnFirstJoin; private FileConfiguration config; - + @Override public void onEnable() { super.onEnable(); // Need to call this to properly initialize this mod @@ -47,12 +48,12 @@ public void onEnable() { createGroupOnFirstJoin = config.getBoolean("groups.creationOnFirstJoin", true); instance = this; loadDatabases(); - ClassHandler.Initialize(Bukkit.getServer()); + ClassHandler.Initialize(Bukkit.getServer()); new NameAPI(new GroupManager(), associations); NameCleanser.load(config.getConfigurationSection("name_cleanser")); MojangNames.init(this); registerListeners(); - if (loadGroups){ + if (loadGroups) { PermissionType.initialize(); blackList = new BlackList(); groupManagerDao.loadGroupsInvitations(); @@ -61,8 +62,8 @@ public void onEnable() { handle = new CommandHandler(this); } } - - public void registerListeners(){ + + public void registerListeners() { registerListener(new AssociationListener()); registerListener(new PlayerListener()); } @@ -72,12 +73,12 @@ public void onDisable() { MojangNames.reset(this); super.onDisable(); } - - public static NameLayerPlugin getInstance(){ + + public static NameLayerPlugin getInstance() { return instance; } - - public void loadDatabases(){ + + public void loadDatabases() { String host = config.getString("sql.hostname", "localhost"); int port = config.getInt("sql.port", 3306); String dbname = config.getString("sql.dbname", "namelayer"); @@ -88,23 +89,24 @@ public void loadDatabases(){ long idleTimeout = config.getLong("sql.idle_timeout", 600000l); long maxLifetime = config.getLong("sql.max_lifetime", 7200000l); try { - db = new ManagedDatasource(this, username, password, host, port, dbname, - poolsize, connectionTimeout, idleTimeout, maxLifetime); + db = ManagedDatasource.construct(this, + new DatabaseCredentials(username, password, host, port, "mysql", dbname, poolsize, + connectionTimeout, idleTimeout, maxLifetime)); db.getConnection().close(); } catch (Exception se) { NameLayerPlugin.log(Level.WARNING, "Could not connect to DataBase, shutting down!"); Bukkit.shutdown(); return; } - + if (!db.isManaged()) { // First "migration" is conversion from old system to new, and lives outside AssociationList and GroupManagerDao. boolean isNew = true; try (Connection connection = db.getConnection(); - PreparedStatement checkNewInstall = connection.prepareStatement("SELECT * FROM db_version LIMIT 1;"); - // See if this was a new install. If it was, db_version statement will fail. If it isn't, it'll succeed. - // If the version statement fails, return true; this is new install, carryon. - ResultSet rs = checkNewInstall.executeQuery();) { + PreparedStatement checkNewInstall = connection.prepareStatement("SELECT * FROM db_version LIMIT 1;"); + // See if this was a new install. If it was, db_version statement will fail. If it isn't, it'll succeed. + // If the version statement fails, return true; this is new install, carryon. + ResultSet rs = checkNewInstall.executeQuery();) { isNew = !rs.next(); } catch (SQLException se) { NameLayerPlugin.log(Level.INFO, "New installation: Welcome to Namelayer!"); @@ -112,16 +114,18 @@ public void loadDatabases(){ if (!isNew) { try (Connection connection = db.getConnection(); - PreparedStatement migrateInstall = connection.prepareStatement( - "INSERT INTO managed_plugin_data (plugin_name, current_migration_number, last_migration)" - + " SELECT plugin_name, max(db_version), `timestamp` FROM db_version WHERE plugin_name = '" - + this.getName() + "' LIMIT 1;");) { + PreparedStatement migrateInstall = connection.prepareStatement( + "INSERT INTO managed_plugin_data (plugin_name, current_migration_number, last_migration)" + + + " SELECT plugin_name, max(db_version), `timestamp` FROM db_version WHERE plugin_name = '" + + this.getName() + "' LIMIT 1;");) { int rows = migrateInstall.executeUpdate(); if (rows == 1) { NameLayerPlugin.log(Level.INFO, "Migration successful!"); } else { Bukkit.shutdown(); - NameLayerPlugin.log(Level.SEVERE, "Migration failed; db_version exists but uncaptured. Could be version problem."); + NameLayerPlugin.log(Level.SEVERE, + "Migration failed; db_version exists but uncaptured. Could be version problem."); return; } } catch (SQLException se) { @@ -138,14 +142,14 @@ public void loadDatabases(){ associations = new AssociationList(getLogger(), db); associations.registerMigrations(); - + if (loadGroups) { groupManagerDao = new GroupManagerDao(getLogger(), db); groupManagerDao.registerMigrations(); NameLayerPlugin.log(Level.INFO, "Removing any cycles..."); groupManagerDao.removeCycles(); } - + long begin_time = System.currentTimeMillis(); try { @@ -159,56 +163,60 @@ public void loadDatabases(){ Bukkit.shutdown(); } - getLogger().log(Level.INFO, "Database update took {0} seconds", (System.currentTimeMillis() - begin_time) / 1000); + getLogger() + .log(Level.INFO, "Database update took {0} seconds", (System.currentTimeMillis() - begin_time) / 1000); } - + /** * @return Returns the AssocationList. */ - public static AssociationList getAssociationList(){ + public static AssociationList getAssociationList() { return associations; } + /** * @return Returns the GroupManagerDatabase. */ - public static GroupManagerDao getGroupManagerDao(){ + public static GroupManagerDao getGroupManagerDao() { return groupManagerDao; } - - public static void log(Level level, String message){ - if (level == Level.INFO) + + public static void log(Level level, String message) { + if (level == Level.INFO) { Bukkit.getLogger().log(level, "[NameLayer:] Info follows\n" + - message); - else if (level == Level.WARNING) + message); + } else if (level == Level.WARNING) { Bukkit.getLogger().log(level, "[NameLayer:] Warning follows\n" + message); - else if (level == Level.SEVERE) - Bukkit.getLogger().log(level, "[NameLayer:] Stack Trace follows\n --------------------------------------\n" + - message + - "\n --------------------------------------"); + } else if (level == Level.SEVERE) { + Bukkit.getLogger() + .log(level, "[NameLayer:] Stack Trace follows\n --------------------------------------\n" + + message + + "\n --------------------------------------"); + } } - - public static String getSpecialAdminGroup(){ + + public static String getSpecialAdminGroup() { return "Name_Layer_Special"; } - + public static boolean createGroupOnFirstJoin() { return createGroupOnFirstJoin; } - public int getGroupLimit(){ + public int getGroupLimit() { return groupLimit; } - + public static BlackList getBlackList() { return blackList; } - + public static AutoAcceptHandler getAutoAcceptHandler() { return autoAcceptHandler; } - + public static DefaultGroupHandler getDefaultGroupHandler() { return defaultGroupHandler; } From 13f408d7d2542c8a9e9b85acc1c3928db004a555 Mon Sep 17 00:00:00 2001 From: Cola Date: Tue, 6 Jul 2021 02:42:21 +0100 Subject: [PATCH 7/9] Update commands --- .../command/commands/AcceptInvite.java | 4 ++-- .../command/commands/DeleteGroup.java | 2 ++ .../command/commands/DisciplineGroup.java | 2 ++ .../namelayer/command/commands/JoinGroup.java | 2 +- .../command/commands/LeaveGroup.java | 2 ++ .../command/commands/ListMembers.java | 2 ++ .../command/commands/ListPermissions.java | 2 ++ .../command/commands/RejectInvite.java | 22 +++++++++++-------- 8 files changed, 26 insertions(+), 12 deletions(-) diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java index 93dfcdc3..0ef446e8 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/AcceptInvite.java @@ -20,7 +20,7 @@ public class AcceptInvite extends BaseCommandMiddle { - @CommandAlias("nlacceptinvite|nlacceptgroup|acceptinvite|acceptgroup|accept|join|ctjoin|ctj|ag") + @CommandAlias("nlacceptinvite|nlacceptgroup|acceptinvite|acceptgroup|accept|join|ctjoin|ctj|ag|nlag") @Syntax("") @Description("Accept an invitation to a group.") @CommandCompletion("@NL_Invites") @@ -48,7 +48,7 @@ public void execute(Player sender, String groupName) { group.addMember(uuid, type); group.removeInvite(uuid, true); PlayerListener.removeNotification(uuid, group); - p.sendMessage(Component.text("You have successfully been added to the group as a " + type.name() +".").color(NamedTextColor.RED)); + p.sendMessage(Component.text("You have successfully been added to the group as a " + type.name() +".").color(NamedTextColor.GREEN)); } @TabComplete("NL_Invites") diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java index c9f975d8..1505b4c7 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DeleteGroup.java @@ -1,6 +1,7 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; import java.util.Date; @@ -22,6 +23,7 @@ public class DeleteGroup extends BaseCommandMiddle { @CommandAlias("nldg|delete|deletegroup|groupdelete") @Syntax("") @Description("Delete a group.") + @CommandCompletion("@NL_Groups") public void execute(Player sender, String groupName) { Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java index fd1f63e9..73f2b164 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/DisciplineGroup.java @@ -1,6 +1,7 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.CommandPermission; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; @@ -15,6 +16,7 @@ public class DisciplineGroup extends BaseCommandMiddle { @CommandPermission("namelayer.admin") @Syntax("") @Description("Disable a group from working.") + @CommandCompletion("@NL_Groups") public void execute(Player sender, String groupName) { Player p = (Player) sender; Group g = gm.getGroup(groupName); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java index 4e8f2fb4..ee12fe62 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/JoinGroup.java @@ -17,7 +17,7 @@ public class JoinGroup extends BaseCommandMiddle { @CommandAlias("nljg|join|joingroup") - @Syntax(" ") + @Syntax(" [password]") @Description("Join a password protected group.") public void execute(Player sender, String groupName, String attemptedPassword) { Player p = (Player) sender; diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java index f36fa166..343cdf46 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/LeaveGroup.java @@ -1,6 +1,7 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; import java.util.UUID; @@ -15,6 +16,7 @@ public class LeaveGroup extends BaseCommandMiddle { @CommandAlias("nlleg|leave|leavegroup") @Syntax("") @Description("Leave a group") + @CommandCompletion("@NL_Groups") public void execute(Player sender, String groupName) { Player p = (Player) sender; Group g = gm.getGroup(groupName); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java index a99169e9..01335ba9 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListMembers.java @@ -1,6 +1,7 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Optional; import co.aikar.commands.annotation.Syntax; @@ -21,6 +22,7 @@ public class ListMembers extends BaseCommandMiddle { @CommandAlias("nllm|listmembers|members") @Syntax(" [rank (e.g: MEMBERS)]") @Description("List the members in a group") + @CommandCompletion("@NL_Groups @NL_Ranks") public void execute(Player sender, String groupName, @Optional String playerType, @Optional String playerName) { Player p = (Player) sender; UUID uuid = NameAPI.getUUID(p.getName()); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java index bb2139d8..60b3aecd 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/ListPermissions.java @@ -1,6 +1,7 @@ package vg.civcraft.mc.namelayer.command.commands; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Optional; import co.aikar.commands.annotation.Syntax; @@ -19,6 +20,7 @@ public class ListPermissions extends BaseCommandMiddle { @CommandAlias("nllp|listperms|perms|permissions") @Syntax(" [rank (e.g: MEMBERS)]") @Description("Show permissions for a PlayerType in a specific group.") + @CommandCompletion("@NL_Groups @NL_Ranks") public void execute(Player sender, String groupName, @Optional String playerRank) { Player p = (Player) sender; Group g = gm.getGroup(groupName); diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java index 5a2e8f10..f1c40243 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java @@ -1,30 +1,29 @@ package vg.civcraft.mc.namelayer.command.commands; +import co.aikar.commands.BukkitCommandCompletionContext; import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Syntax; +import java.util.List; import java.util.UUID; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import vg.civcraft.mc.civmodcore.commands.TabComplete; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.BaseCommandMiddle; +import vg.civcraft.mc.namelayer.command.TabCompleters.InviteTabCompleter; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.listeners.PlayerListener; public class RejectInvite extends BaseCommandMiddle { - @CommandAlias("nlrg|reject|rejectinvite") + @CommandAlias("nlrg|reject|rejectinvite|revoke") @Syntax("") @Description("Reject an invitation to a group.") - public void execute(CommandSender sender, String targetGroup) { - if (!(sender instanceof Player)) { - sender.sendMessage(Component.text("Be gone console thot").color(NamedTextColor.RED)); - return; - } + @CommandCompletion("@NL_Invites") + public void execute(Player sender, String targetGroup) { Player player = (Player) sender; String groupName = targetGroup; Group group = GroupManager.getGroup(groupName); @@ -48,4 +47,9 @@ public void execute(CommandSender sender, String targetGroup) { PlayerListener.removeNotification(uuid, group); player.sendMessage(ChatColor.GREEN + "You've successfully declined that group invitation."); } + + @TabComplete("NL_Invites") + public List tabComplete(BukkitCommandCompletionContext context) { + return InviteTabCompleter.complete(context.getInput(), context.getPlayer()); + } } From d9b0021a55eb1bd12bd52a5a7510ff350e735bf9 Mon Sep 17 00:00:00 2001 From: Cola Date: Tue, 6 Jul 2021 02:47:17 +0100 Subject: [PATCH 8/9] Fix commands --- .../vg/civcraft/mc/namelayer/command/commands/RejectInvite.java | 2 +- .../vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java index f1c40243..ea9ceea0 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RejectInvite.java @@ -19,7 +19,7 @@ public class RejectInvite extends BaseCommandMiddle { - @CommandAlias("nlrg|reject|rejectinvite|revoke") + @CommandAlias("nlrg|reject|rejectinvite") @Syntax("") @Description("Reject an invitation to a group.") @CommandCompletion("@NL_Invites") diff --git a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java index 86bc4845..7ba30b51 100644 --- a/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java +++ b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RevokeInvite.java @@ -18,7 +18,7 @@ public class RevokeInvite extends BaseCommandMiddle { - @CommandAlias("nlri|revokeinvite") + @CommandAlias("nlri|revokeinvite|revoke") @Syntax(" ") @Description("Revoke an Invite.") @CommandCompletion("@NL_Groups @allplayers") From b925c6ab9acb3026785cedaec77ac63a0acfea88 Mon Sep 17 00:00:00 2001 From: Cola Date: Sun, 18 Jul 2021 23:42:21 +0100 Subject: [PATCH 9/9] 1.17.1 --- namelayer-spigot/pom.xml | 2 +- nms/v1_17_R1/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/namelayer-spigot/pom.xml b/namelayer-spigot/pom.xml index 2aab1713..b7b2c634 100755 --- a/namelayer-spigot/pom.xml +++ b/namelayer-spigot/pom.xml @@ -22,7 +22,7 @@ io.papermc.paper paper - 1.17-R0.1-SNAPSHOT + 1.17.1-R0.1-SNAPSHOT provided diff --git a/nms/v1_17_R1/pom.xml b/nms/v1_17_R1/pom.xml index 34048227..6886c9ce 100644 --- a/nms/v1_17_R1/pom.xml +++ b/nms/v1_17_R1/pom.xml @@ -24,7 +24,7 @@ io.papermc.paper paper - 1.17-R0.1-SNAPSHOT + 1.17.1-R0.1-SNAPSHOT provided