From 7f63056cc955114e1f07f9ca95475674ac2f0b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Vis=C3=A9e?= Date: Sun, 1 Nov 2015 21:06:19 +0100 Subject: [PATCH] Implemented the unregister command --- src/main/java/fr/xephi/authme/AuthMe.java | 2 +- .../xephi/authme/command/CommandManager.java | 30 +++++++++++ .../unregister/UnregisterCommand.java | 52 +++++++++++++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 src/main/java/fr/xephi/authme/command/executable/unregister/UnregisterCommand.java diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index 37b95967..50743503 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -351,7 +351,7 @@ public class AuthMe extends JavaPlugin { //getCommand("login").setExecutor(new LoginCommand(this)); //getCommand("changepassword").setExecutor(new ChangePasswordCommand(this)); //getCommand("logout").setExecutor(new LogoutCommand(this)); - getCommand("unregister").setExecutor(new UnregisterCommand(this)); + //getCommand("unregister").setExecutor(new UnregisterCommand(this)); getCommand("email").setExecutor(new EmailCommand(this)); getCommand("captcha").setExecutor(new CaptchaCommand(this)); getCommand("converter").setExecutor(new ConverterCommand(this)); diff --git a/src/main/java/fr/xephi/authme/command/CommandManager.java b/src/main/java/fr/xephi/authme/command/CommandManager.java index 7f06492e..864d098b 100644 --- a/src/main/java/fr/xephi/authme/command/CommandManager.java +++ b/src/main/java/fr/xephi/authme/command/CommandManager.java @@ -413,6 +413,35 @@ public class CommandManager { registerHelpCommand.addArgument(new CommandArgumentDescription("query", "The command or query to view help for.", true)); registerHelpCommand.setMaximumArguments(false); + // Register the base unregister command + CommandDescription unregisterBaseCommand = new CommandDescription( + new RegisterCommand(), + new ArrayList() {{ + add("unregister"); + add("unreg"); + }}, + "Unregistration command", + "Command to unregister using AuthMeReloaded.", null); + unregisterBaseCommand.setCommandPermissions("authme.unregister", CommandPermissions.DefaultPermission.ALLOWED); + unregisterBaseCommand.addArgument(new CommandArgumentDescription("password", "Password", false)); + unregisterBaseCommand.setMaximumArguments(false); + + // Register the help command + CommandDescription unregisterHelpCommand = new CommandDescription( + new HelpCommand(), + new ArrayList() {{ + add("help"); + add("hlp"); + add("h"); + add("sos"); + add("?"); + }}, + "View help", + "View detailed help pages about AuthMeReloaded register commands.", + unregisterBaseCommand); + unregisterHelpCommand.addArgument(new CommandArgumentDescription("query", "The command or query to view help for.", true)); + unregisterHelpCommand.setMaximumArguments(false); + // Register the base changepassword command CommandDescription changePasswordBaseCommand = new CommandDescription( new ChangePasswordCommand(), @@ -448,6 +477,7 @@ public class CommandManager { this.commandDescriptions.add(loginBaseCommand); this.commandDescriptions.add(logoutBaseCommand); this.commandDescriptions.add(registerBaseCommand); + this.commandDescriptions.add(unregisterBaseCommand); this.commandDescriptions.add(changePasswordBaseCommand); } diff --git a/src/main/java/fr/xephi/authme/command/executable/unregister/UnregisterCommand.java b/src/main/java/fr/xephi/authme/command/executable/unregister/UnregisterCommand.java new file mode 100644 index 00000000..20055203 --- /dev/null +++ b/src/main/java/fr/xephi/authme/command/executable/unregister/UnregisterCommand.java @@ -0,0 +1,52 @@ +package fr.xephi.authme.command.executable.unregister; + +import fr.xephi.authme.AuthMe; +import fr.xephi.authme.cache.auth.PlayerCache; +import fr.xephi.authme.command.CommandParts; +import fr.xephi.authme.command.ExecutableCommand; +import fr.xephi.authme.settings.Messages; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class UnregisterCommand extends ExecutableCommand { + + /** + * Execute the command. + * + * @param sender The command sender. + * @param commandReference The command reference. + * @param commandArguments The command arguments. + * + * @return True if the command was executed successfully, false otherwise. + */ + @Override + public boolean executeCommand(CommandSender sender, CommandParts commandReference, CommandParts commandArguments) { + // AuthMe plugin instance + final AuthMe plugin = AuthMe.getInstance(); + + // Messages instance + final Messages m = Messages.getInstance(); + + // Make sure the current command executor is a player + if(!(sender instanceof Player)) { + return true; + } + + // Get the password + String playerPass = commandArguments.get(0); + + // Get the player instance and name + final Player player = (Player) sender; + final String playerNameLowerCase = player.getName().toLowerCase(); + + // Make sure the player is authenticated + if (!PlayerCache.getInstance().isAuthenticated(playerNameLowerCase)) { + m.send(player, "not_logged_in"); + return true; + } + + // Unregister the player + plugin.management.performUnregister(player, playerPass, false); + return true; + } +}