diff --git a/namelayer-all/pom.xml b/namelayer-all/pom.xml
index cc5a9267..e06385d0 100644
--- a/namelayer-all/pom.xml
+++ b/namelayer-all/pom.xml
@@ -5,23 +5,23 @@
4.0.0
- vg.civcraft.mc.namelayer
+ com.github.civclassic
namelayer-parent
1.0.0
NameLayer
- 2.14.1
+ 2.15.0
- 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 1a21986b..b7b2c634 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,20 +15,20 @@
- vg.civcraft.mc.namelayer
- namelayer-nms-v1_16_R3
+ com.github.civclassic
+ namelayer-nms-v1_17_R1
1.0.1
+
+ io.papermc.paper
+ paper
+ 1.17.1-R0.1-SNAPSHOT
+ provided
+
- com.destroystokyo.paper
- paper
- 1.16.5-R0.1-SNAPSHOT
- provided
-
-
- vg.civcraft.mc.civmodcore
+ com.github.civclassic
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
-
+
+ com.github.civclassic
+ 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..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
@@ -4,13 +4,11 @@
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.DatabaseCredentials;
import vg.civcraft.mc.civmodcore.dao.ManagedDatasource;
import vg.civcraft.mc.namelayer.command.CommandHandler;
import vg.civcraft.mc.namelayer.database.AssociationList;
@@ -38,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
@@ -50,52 +48,37 @@ 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();
defaultGroupHandler = new DefaultGroupHandler();
autoAcceptHandler = new AutoAcceptHandler(groupManagerDao.loadAllAutoAccept());
- handle = new CommandHandler();
- handle.registerCommands();
+ handle = new CommandHandler(this);
}
}
-
- public void registerListeners(){
+
+ 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() {
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");
@@ -106,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!");
@@ -130,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) {
@@ -156,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 {
@@ -177,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;
}
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 77%
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..40e2992f 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,17 +1,15 @@
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 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..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,11 +1,13 @@
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.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;
@@ -24,7 +26,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;
@@ -38,73 +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 {
- 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;
+public class CommandHandler extends CommandManager{
+
+ public CommandHandler(NameLayerPlugin plugin) {
+ super(plugin);
+ 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;
+ @Override
+ public void registerCommands(){
+ 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
+ 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 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());
+ @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 301b0a40..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
@@ -1,68 +1,58 @@
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 org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.format.NamedTextColor;
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.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{
+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) {
- 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;
- }
+ @CommandAlias("nlacceptinvite|nlacceptgroup|acceptinvite|acceptgroup|accept|join|ctjoin|ctj|ag|nlag")
+ @Syntax("")
+ @Description("Accept an invitation to a group.")
+ @CommandCompletion("@NL_Invites")
+ public void execute(Player sender, String groupName) {
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.GREEN));
}
- @Override
- 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 44f7ee7b..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,90 +1,54 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.ArrayList;
-import java.util.List;
+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;
-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.PlayerCommandMiddle;
-import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
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 {
+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
- + "Why do you have to make this so difficult?");
- return true;
- }
- Player p = (Player) arg0;
- Group g = GroupManager.getGroup(arg1[0]);
+ @CommandAlias("nlbl|blacklist|addblacklist")
+ @Syntax(" ")
+ @Description("Blacklist a player for a specific group")
+ @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) {
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 :)");
- 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 5c7a3a45..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
@@ -1,46 +1,39 @@
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) {
+public class ChangePlayerName extends BaseCommandMiddle {
+
+ @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 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..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
@@ -1,51 +1,42 @@
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;
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;
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{
+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) {
- 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;
- }
+ @CommandAlias("nlcg|nlcreategroup|creategroup|create|ctcreate|creategroup|cg")
+ @Syntax(" [password]")
+ @Description("Create a group (Public or Private). Password is optional.")
+ public void execute(Player sender, String groupName, @Optional String userPassword) {
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 +56,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,10 +92,5 @@ 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) {
- 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 870083fd..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,42 +1,33 @@
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;
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.PlayerCommandMiddle;
-import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class DeleteGroup extends PlayerCommandMiddle{
+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) {
- if (!(sender instanceof Player)){
- sender.sendMessage(ChatColor.DARK_AQUA + "I grow tired of this, NO.");
- return true;
- }
+ @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());
- String x = args[0];
+ String x = groupName;
String confirm = "CONFIRM";
if(x.equals(confirm))
{
@@ -48,7 +39,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 +53,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 +66,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,19 +87,6 @@ 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;
- }
-
- @Override
- 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);
- }
+ return;
}
}
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..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,36 +1,31 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
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{
+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) {
- 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
+ @CommandAlias("nldig|disablegroup|disable|discipline")
+ @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(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 +35,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..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
@@ -1,30 +1,21 @@
package vg.civcraft.mc.namelayer.command.commands;
+import co.aikar.commands.annotation.CommandAlias;
+import co.aikar.commands.annotation.Description;
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{
+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) {
- if (!(sender instanceof Player)){
- sender.sendMessage("I don't think you need to do that.");
- return true;
- }
+ @CommandAlias("nlgdg")
+ @Description("Get a players default group")
+ public void execute(Player sender) {
Player p = (Player) sender;
UUID uuid = NameAPI.getUUID(p.getName());
@@ -35,11 +26,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..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
@@ -1,24 +1,20 @@
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 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{
+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) {
+ @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(){
@Override
@@ -29,11 +25,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..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
@@ -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,39 @@
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 {
+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) {
- if (!(sender instanceof Player)) {
- sender.sendMessage("meh");
- return true;
- }
+ @CommandAlias("nlgs")
+ @CommandPermission("namelayer.admin")
+ @Syntax("")
+ @Description("Get stats about a group.")
+ public void execute(Player sender, String groupName) {
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..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
@@ -1,70 +1,54 @@
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;
-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.group.Group;
import vg.civcraft.mc.namelayer.permission.GroupPermission;
import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class InfoDump extends PlayerCommandMiddle
-{
-
- 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)){
- sender.sendMessage(ChatColor.RED + "You are not a player?");
- return true;
- }
-
+public class InfoDump extends BaseCommandMiddle {
+
+ @CommandAlias("nlid")
+ @CommandPermission("namelayer.admin")
+ @Syntax("[page]")
+ @Description("This command dumps group info for CitadelGUI.")
+ public void execute(Player sender, @Optional String groupID) {
Player player = (Player)sender;
UUID playerUUID = NameAPI.getUUID(player.getName());
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 +61,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 +108,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..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,7 +1,10 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.ArrayList;
-import java.util.List;
+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.UUID;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.ComponentBuilder;
@@ -15,43 +18,36 @@
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.TabCompleters.GroupTabCompleter;
-import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
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{
+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;
+ @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;
+ 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 +56,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 +68,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 +90,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 +111,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,29 +162,4 @@ 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 :)");
- 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 9c57aa4d..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
@@ -1,76 +1,59 @@
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.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{
+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) {
- 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;
- }
+ @CommandAlias("nljg|join|joingroup")
+ @Syntax(" [password]")
+ @Description("Join a password protected group.")
+ public void execute(Player sender, String groupName, String attemptedPassword) {
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..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,59 +1,38 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
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.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
-public class LeaveGroup extends PlayerCommandMiddle{
+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) {
- if (!(sender instanceof Player)){
- sender.sendMessage("Nope, be player");
- return true;
- }
+ @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(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;
-
- 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 5025919e..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,52 +1,42 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
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.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class LinkGroups extends PlayerCommandMiddle {
+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) {
- 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;
- }
+ @CommandAlias("nllink|linkgroups")
+ @Syntax(" ")
+ @Description("Links two groups to each other as nested groups.")
+ @CommandCompletion("@NL_Groups @NL_Groups")
+ public void execute(Player sender, String parentGroup, String childGroup) {
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 +45,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,24 +78,5 @@ 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
- + "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 0d72f50c..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
@@ -1,34 +1,18 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
-import org.bukkit.command.CommandSender;
+import co.aikar.commands.annotation.CommandAlias;
+import co.aikar.commands.annotation.Description;
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{
+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) {
- if (!(sender instanceof Player)){
- sender.sendMessage("back off console man");
- return true;
- }
+ @CommandAlias("nllci|listinvites|invites")
+ @Description("List your current invites.")
+ public void execute(Player sender) {
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..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
@@ -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 {
+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) {
+ @CommandAlias("nllg|listgroups|groups")
+ @Syntax("[page]")
+ @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..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,62 +1,54 @@
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 com.google.common.collect.Lists;
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.PlayerCommandMiddle;
-import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter;
-import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class ListMembers extends PlayerCommandMiddle {
+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) {
- if (!(sender instanceof Player)) {
- sender.sendMessage(ChatColor.LIGHT_PURPLE + "No can do.");
- return true;
- }
-
+ @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());
- 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 +60,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,22 +86,5 @@ 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;
- }
-
- 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 bdd3de68..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,57 +1,49 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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.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.PlayerCommandMiddle;
-import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter;
-import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter;
+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 ListPermissions extends PlayerCommandMiddle{
+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) {
- if (!(sender instanceof Player)){
- sender.sendMessage(ChatColor.RED + "No.");
- return true;
- }
+ @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(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,22 +51,5 @@ 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;
-
- 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 2fd67458..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
@@ -1,33 +1,22 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+import co.aikar.commands.annotation.CommandAlias;
+import co.aikar.commands.annotation.Description;
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{
+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) {
+ @CommandAlias("nllpt|ranks")
+ @Description("List PlayerTypes.")
+ 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..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
@@ -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 {
+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) {
+ @CommandAlias("nllsg|subgroups|listsubgroups")
+ @Syntax("[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..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,6 +1,9 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
import java.util.logging.Level;
import org.bukkit.ChatColor;
@@ -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.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class MergeGroups extends PlayerCommandMiddle {
+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) {
+ @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.");
- 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,19 +65,5 @@ 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;
-
- 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 4d600faa..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,6 +1,9 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -8,56 +11,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.TabCompleters.GroupTabCompleter;
-import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter;
-import vg.civcraft.mc.namelayer.command.TabCompleters.PermissionCompleter;
+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 ModifyPermissions extends PlayerCommandMiddle{
+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) {
+ @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.");
- 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 +62,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,33 +97,5 @@ 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;
-
- 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 3c4f3340..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,62 +1,44 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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 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.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
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) {
+public class NameLayerGroupGui extends BaseCommandMiddle {
+
+ @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");
- 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");
- 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 d65aa043..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,79 +1,69 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
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.PlayerCommandMiddle;
-import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter;
-import vg.civcraft.mc.namelayer.command.TabCompleters.MemberTypeCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
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{
+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) {
- if (!(sender instanceof Player)){
- sender.sendMessage("How about No?");
- return true;
- }
-
+ @CommandAlias("nlpp|promote|promoteplayer")
+ @Syntax(" ")
+ @Description("Promote/Demote a Player in a Group")
+ @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());
- 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 +87,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 +114,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 +129,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,28 +145,5 @@ 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 :)");
- 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 9325fb50..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
@@ -1,35 +1,34 @@
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 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.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 {
+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) {
+ @CommandAlias("nlrg|reject|rejectinvite")
+ @Syntax("")
+ @Description("Reject an invitation to a group.")
+ @CommandCompletion("@NL_Invites")
+ public void execute(Player sender, String targetGroup) {
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,27 +36,20 @@ 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);
- }
- 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/RemoveBlacklist.java b/namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/commands/RemoveBlacklist.java
index 50ece3dd..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,85 +1,56 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.ArrayList;
-import java.util.List;
+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;
-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.PlayerCommandMiddle;
-import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
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);
- }
+public class RemoveBlacklist extends BaseCommandMiddle {
- @Override
- public boolean execute(CommandSender arg0, String[] arg1) {
- if (!(arg0 instanceof Player)) {
- arg0.sendMessage(ChatColor.RED
+ @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
+ "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 :)");
- 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 3b6a4b1a..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,49 +1,45 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
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.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class RemoveMember extends PlayerCommandMiddle {
+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) {
+ @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 :)");
- 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,44 +66,21 @@ 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;
-
- 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 9093249d..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
@@ -1,6 +1,9 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -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.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
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{
+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) {
+ @CommandAlias("nlri|revokeinvite|revoke")
+ @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 :)");
- 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,31 +83,12 @@ 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 :)");
- 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 3f1d6dbe..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,44 +1,40 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
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.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
-import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class SetDefaultGroup extends PlayerCommandMiddle{
+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) {
+ @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.");
- 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,18 +46,5 @@ 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;
-
- 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 f93e5165..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,68 +1,52 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
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.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class SetPassword extends PlayerCommandMiddle{
+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) {
+ @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.");
- 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;
-
- 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 7838ffe9..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,53 +1,48 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.ArrayList;
-import java.util.List;
+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.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.PlayerCommandMiddle;
-import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class ShowBlacklist extends PlayerCommandMiddle {
+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
+ @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
+ "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,29 +53,5 @@ 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 :)");
- 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 9eb714b3..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
@@ -1,31 +1,26 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+import co.aikar.commands.annotation.CommandAlias;
+import co.aikar.commands.annotation.Description;
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{
+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) {
+ @CommandAlias("nltaai|autoaccept")
+ @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 +31,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..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,6 +1,9 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -8,41 +11,34 @@
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.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
-import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class TransferGroup extends PlayerCommandMiddle{
+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) {
+ @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?");
- 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) {
@@ -75,18 +71,4 @@ public static boolean attemptTransfer(Group g, Player owner, UUID futureOwner) {
+ " has been given ownership of the group.");
return true;
}
-
- @Override
- 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 2ae211a5..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,47 +1,44 @@
package vg.civcraft.mc.namelayer.command.commands;
-import java.util.List;
+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;
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.TabCompleters.GroupTabCompleter;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.group.Group;
import vg.civcraft.mc.namelayer.permission.PermissionType;
-public class UnlinkGroups extends PlayerCommandMiddle {
+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) {
+ @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.");
- 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,21 +75,5 @@ 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;
- }
-
- 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 a290e5f4..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
@@ -1,49 +1,38 @@
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;
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.PlayerCommandMiddle;
+import vg.civcraft.mc.namelayer.command.BaseCommandMiddle;
import vg.civcraft.mc.namelayer.misc.NameFetcher;
-public class UpdateName extends PlayerCommandMiddle {
+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) {
- if (!(sender instanceof Player)) {
- sender.sendMessage(ChatColor.LIGHT_PURPLE
- + "NO NO NO NO NO NO NO NO");
- return true;
- }
+ @CommandAlias("nlun|updatename|")
+ @Syntax("[confirm]")
+ @Description("Updates your name on this server to the one your minecraft account currently has")
+ public void execute(Player sender, String newNameOrConfirm) {
final Player p = (Player) sender;
final UUID uuid = p.getUniqueId();
final String oldName = NameAPI.getCurrentName(uuid);
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 +81,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,17 +105,5 @@ 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) {
- if (!(sender instanceof Player)) {
- return null;
- }
- if (newNames.get(((Player) sender).getUniqueId()) != null) {
- return Collections.singletonList("CONFIRM");
- }
- return null;
}
-
}
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/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
diff --git a/nms/interface/pom.xml b/nms/interface/pom.xml
index 9fa44098..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
@@ -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_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
new file mode 100644
index 00000000..6886c9ce
--- /dev/null
+++ b/nms/v1_17_R1/pom.xml
@@ -0,0 +1,32 @@
+
+
+ 4.0.0
+
+
+ com.github.civclassic
+ namelayer-parent
+ 1.0.0
+ ../../pom.xml
+
+
+ namelayer-nms-v1_17_R1
+ 1.0.1
+ jar
+
+
+
+ com.github.civclassic
+ namelayer-nms-interface
+ 1.0.1
+
+
+ io.papermc.paper
+ paper
+ 1.17.1-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..368ab679
--- /dev/null
+++ b/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/MaterialMap.java
@@ -0,0 +1,30 @@
+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(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(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
new file mode 100644
index 00000000..a66aff88
--- /dev/null
+++ b/nms/v1_17_R1/src/main/java/vg/civcraft/mc/namelayer/misc/v1_17_R1/ProfileModifier.java
@@ -0,0 +1,28 @@
+package vg.civcraft.mc.namelayer.misc.v1_17_R1;
+
+import com.destroystokyo.paper.profile.CraftPlayerProfile;
+import java.util.logging.Logger;
+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 LOGGER = Logger.getLogger(ProfileModifier.class.getSimpleName());
+
+ @Override
+ public void setPlayerProfile(final Player player, final String name) {
+ final String oldName = player.getName();
+ if (name.length() > 16) {
+ 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()));
+ }
+ 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));
+ }
+
+}
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 50c90744..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
@@ -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
@@ -30,7 +30,7 @@
codecrafter47-repo
- http://nexus.codecrafter47.dyndns.eu/content/repositories/public/
+ https://nexus.codecrafter47.dyndns.eu/content/repositories/public/
@@ -42,9 +42,14 @@
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/
+ https://repo.md-5.net/content/repositories/public/
bungeecord-repo
@@ -79,6 +84,7 @@
nms/v1_14_R1
nms/v1_16_R1
nms/v1_16_R3
+ nms/v1_17_R1