mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-11-13 22:05:13 +01:00
Change ExecutableCommand interface (wip – doesn't compile)
- Change interface to use (CommandSender, List<String> arguments) - Use CommandArgumentDescription#name instead of "label" (to prevent confusion between command labels and arguments) - Simplify command difference computation in CommandHandler (no longer consider argument difference)
This commit is contained in:
parent
2f3738aa9a
commit
d5b2058124
@ -1,5 +1,6 @@
|
|||||||
package fr.xephi.authme.command;
|
package fr.xephi.authme.command;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
import fr.xephi.authme.command.executable.HelpCommand;
|
import fr.xephi.authme.command.executable.HelpCommand;
|
||||||
import fr.xephi.authme.command.executable.authme.AccountsCommand;
|
import fr.xephi.authme.command.executable.authme.AccountsCommand;
|
||||||
import fr.xephi.authme.command.executable.authme.AuthMeCommand;
|
import fr.xephi.authme.command.executable.authme.AuthMeCommand;
|
||||||
@ -37,6 +38,7 @@ import fr.xephi.authme.util.Wrapper;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import static com.google.common.collect.Sets.newHashSet;
|
||||||
import static fr.xephi.authme.permission.DefaultPermission.ALLOWED;
|
import static fr.xephi.authme.permission.DefaultPermission.ALLOWED;
|
||||||
import static fr.xephi.authme.permission.DefaultPermission.OP_ONLY;
|
import static fr.xephi.authme.permission.DefaultPermission.OP_ONLY;
|
||||||
|
|
||||||
@ -495,7 +497,7 @@ public final class CommandInitializer {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Add the base commands to the commands array
|
// Add the base commands to the commands array
|
||||||
baseCommands = new HashSet<>(Arrays.asList(
|
baseCommands = ImmutableSet.of(
|
||||||
AUTHME_BASE,
|
AUTHME_BASE,
|
||||||
LOGIN_BASE,
|
LOGIN_BASE,
|
||||||
LOGOUT_BASE,
|
LOGOUT_BASE,
|
||||||
@ -504,6 +506,6 @@ public final class CommandInitializer {
|
|||||||
CHANGE_PASSWORD_BASE,
|
CHANGE_PASSWORD_BASE,
|
||||||
EMAIL_BASE,
|
EMAIL_BASE,
|
||||||
CAPTCHA_BASE,
|
CAPTCHA_BASE,
|
||||||
CONVERTER_BASE));
|
CONVERTER_BASE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
package fr.xephi.authme.command;
|
|
||||||
|
|
||||||
import fr.xephi.authme.util.StringUtils;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
public class CommandParts {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The list of parts for this command.
|
|
||||||
*/
|
|
||||||
private final List<String> parts = new ArrayList<>();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param part The part to add.
|
|
||||||
*/
|
|
||||||
public CommandParts(String part) {
|
|
||||||
this.parts.add(part);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param parts The list of parts.
|
|
||||||
*/
|
|
||||||
public CommandParts(List<String> parts) {
|
|
||||||
this.parts.addAll(parts);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the command parts.
|
|
||||||
*
|
|
||||||
* @return Command parts.
|
|
||||||
*/
|
|
||||||
public List<String> getList() {
|
|
||||||
return this.parts;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a part by its index.
|
|
||||||
*
|
|
||||||
* @param i Part index.
|
|
||||||
*
|
|
||||||
* @return The part.
|
|
||||||
*/
|
|
||||||
public String get(int i) {
|
|
||||||
// Make sure the index is in-bound
|
|
||||||
if (i < 0 || i >= parts.size()) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get and return the argument
|
|
||||||
return this.parts.get(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert the parts to a string.
|
|
||||||
*
|
|
||||||
* @return The part as a string.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return StringUtils.join(" ", this.parts);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,5 @@
|
|||||||
package fr.xephi.authme.command.executable;
|
package fr.xephi.authme.command.executable;
|
||||||
|
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.command.ExecutableCommand;
|
import fr.xephi.authme.command.ExecutableCommand;
|
||||||
import fr.xephi.authme.command.help.HelpProvider;
|
import fr.xephi.authme.command.help.HelpProvider;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -7,14 +7,18 @@ import org.bukkit.command.CommandSender;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AuthMe base command; shows the version and some command pointers.
|
||||||
|
*/
|
||||||
public class AuthMeCommand extends ExecutableCommand {
|
public class AuthMeCommand extends ExecutableCommand {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executeCommand(CommandSender sender, List<String> arguments) {
|
public void executeCommand(CommandSender sender, List<String> arguments) {
|
||||||
// Show some version info
|
sender.sendMessage(ChatColor.GREEN + "This server is running " + AuthMe.getPluginName() + " v"
|
||||||
// FIXME replace use of commandReference
|
+ AuthMe.getPluginVersion() + " b" + AuthMe.getPluginBuildNumber()+ "! " + ChatColor.RED + "<3");
|
||||||
sender.sendMessage(ChatColor.GREEN + "This server is running " + AuthMe.getPluginName() + " v" + AuthMe.getPluginVersion() + " b" + AuthMe.getPluginBuildNumber()+ "! " + ChatColor.RED + "<3");
|
sender.sendMessage(ChatColor.YELLOW + "Use the command " + ChatColor.GOLD + "/authme help" + ChatColor.YELLOW
|
||||||
sender.sendMessage(ChatColor.YELLOW + "Use the command " + ChatColor.GOLD + "/" + commandReference.get(0) + " help" + ChatColor.YELLOW + " to view help.");
|
+ " to view help.");
|
||||||
sender.sendMessage(ChatColor.YELLOW + "Use the command " + ChatColor.GOLD + "/" + commandReference.get(0) + " about" + ChatColor.YELLOW + " to view about.");
|
sender.sendMessage(ChatColor.YELLOW + "Use the command " + ChatColor.GOLD + "/authme about" + ChatColor.YELLOW
|
||||||
|
+ " to view about.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ package fr.xephi.authme.command.executable.authme;
|
|||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.ConsoleLogger;
|
import fr.xephi.authme.ConsoleLogger;
|
||||||
import fr.xephi.authme.cache.auth.PlayerAuth;
|
import fr.xephi.authme.cache.auth.PlayerAuth;
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.command.ExecutableCommand;
|
import fr.xephi.authme.command.ExecutableCommand;
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
import fr.xephi.authme.output.Messages;
|
import fr.xephi.authme.output.Messages;
|
||||||
@ -13,23 +12,15 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Admin command to register a user.
|
* Admin command to register a user.
|
||||||
*/
|
*/
|
||||||
public class RegisterAdminCommand extends ExecutableCommand {
|
public class RegisterAdminCommand 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
|
@Override
|
||||||
public boolean executeCommand(final CommandSender sender, CommandParts commandReference, CommandParts commandArguments) {
|
public void executeCommand(final CommandSender sender, List<String> arguments) {
|
||||||
// AuthMe plugin instance
|
// AuthMe plugin instance
|
||||||
final AuthMe plugin = AuthMe.getInstance();
|
final AuthMe plugin = AuthMe.getInstance();
|
||||||
|
|
||||||
@ -37,8 +28,8 @@ public class RegisterAdminCommand extends ExecutableCommand {
|
|||||||
final Messages m = plugin.getMessages();
|
final Messages m = plugin.getMessages();
|
||||||
|
|
||||||
// Get the player name and password
|
// Get the player name and password
|
||||||
final String playerName = commandArguments.get(0);
|
final String playerName = arguments.get(0);
|
||||||
final String playerPass = commandArguments.get(1);
|
final String playerPass = arguments.get(1);
|
||||||
final String playerNameLowerCase = playerName.toLowerCase();
|
final String playerNameLowerCase = playerName.toLowerCase();
|
||||||
final String playerPassLowerCase = playerPass.toLowerCase();
|
final String playerPassLowerCase = playerPass.toLowerCase();
|
||||||
|
|
||||||
@ -49,20 +40,20 @@ public class RegisterAdminCommand extends ExecutableCommand {
|
|||||||
|| playerPassLowerCase.contains(";") || playerPassLowerCase.contains("null")
|
|| playerPassLowerCase.contains(";") || playerPassLowerCase.contains("null")
|
||||||
|| !playerPassLowerCase.matches(Settings.getPassRegex)) {
|
|| !playerPassLowerCase.matches(Settings.getPassRegex)) {
|
||||||
m.send(sender, MessageKey.PASSWORD_MATCH_ERROR);
|
m.send(sender, MessageKey.PASSWORD_MATCH_ERROR);
|
||||||
return true;
|
return;
|
||||||
}
|
}
|
||||||
if (playerPassLowerCase.equalsIgnoreCase(playerName)) {
|
if (playerPassLowerCase.equalsIgnoreCase(playerName)) {
|
||||||
m.send(sender, MessageKey.PASSWORD_IS_USERNAME_ERROR);
|
m.send(sender, MessageKey.PASSWORD_IS_USERNAME_ERROR);
|
||||||
return true;
|
return;
|
||||||
}
|
}
|
||||||
if (playerPassLowerCase.length() < Settings.getPasswordMinLen || playerPassLowerCase.length() > Settings.passwordMaxLength) {
|
if (playerPassLowerCase.length() < Settings.getPasswordMinLen || playerPassLowerCase.length() > Settings.passwordMaxLength) {
|
||||||
m.send(sender, MessageKey.INVALID_PASSWORD_LENGTH);
|
m.send(sender, MessageKey.INVALID_PASSWORD_LENGTH);
|
||||||
return true;
|
return;
|
||||||
}
|
}
|
||||||
if (!Settings.unsafePasswords.isEmpty()) {
|
if (!Settings.unsafePasswords.isEmpty()) {
|
||||||
if (Settings.unsafePasswords.contains(playerPassLowerCase)) {
|
if (Settings.unsafePasswords.contains(playerPassLowerCase)) {
|
||||||
m.send(sender, MessageKey.PASSWORD_UNSAFE_ERROR);
|
m.send(sender, MessageKey.PASSWORD_UNSAFE_ERROR);
|
||||||
return true;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||||
@ -95,6 +86,5 @@ public class RegisterAdminCommand extends ExecutableCommand {
|
|||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
package fr.xephi.authme.command.executable.authme;
|
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
|
||||||
import fr.xephi.authme.cache.auth.PlayerAuth;
|
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.command.ExecutableCommand;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
public class ResetNameCommand 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();
|
|
||||||
|
|
||||||
// Command logic
|
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
List<PlayerAuth> authentications = plugin.database.getAllAuths();
|
|
||||||
for (PlayerAuth auth : authentications) {
|
|
||||||
auth.setRealName("Player");
|
|
||||||
plugin.database.updateSession(auth);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -12,7 +12,6 @@ import org.bukkit.entity.Player;
|
|||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.command.CommandArgumentDescription;
|
import fr.xephi.authme.command.CommandArgumentDescription;
|
||||||
import fr.xephi.authme.command.CommandDescription;
|
import fr.xephi.authme.command.CommandDescription;
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.command.CommandPermissions;
|
import fr.xephi.authme.command.CommandPermissions;
|
||||||
import fr.xephi.authme.permission.PermissionNode;
|
import fr.xephi.authme.permission.PermissionNode;
|
||||||
import fr.xephi.authme.util.CollectionUtils;
|
import fr.xephi.authme.util.CollectionUtils;
|
||||||
|
@ -2,7 +2,6 @@ package fr.xephi.authme.command.help;
|
|||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.command.CommandDescription;
|
import fr.xephi.authme.command.CommandDescription;
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.command.CommandUtils;
|
import fr.xephi.authme.command.CommandUtils;
|
||||||
import fr.xephi.authme.command.FoundCommandResult;
|
import fr.xephi.authme.command.FoundCommandResult;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
|
@ -2,7 +2,6 @@ package fr.xephi.authme.command.help;
|
|||||||
|
|
||||||
import fr.xephi.authme.command.CommandArgumentDescription;
|
import fr.xephi.authme.command.CommandArgumentDescription;
|
||||||
import fr.xephi.authme.command.CommandDescription;
|
import fr.xephi.authme.command.CommandDescription;
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.command.CommandUtils;
|
import fr.xephi.authme.command.CommandUtils;
|
||||||
import fr.xephi.authme.util.CollectionUtils;
|
import fr.xephi.authme.util.CollectionUtils;
|
||||||
import fr.xephi.authme.util.StringUtils;
|
import fr.xephi.authme.util.StringUtils;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package fr.xephi.authme.command.executable.captcha;
|
package fr.xephi.authme.command.executable.captcha;
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.command.ExecutableCommand;
|
import fr.xephi.authme.command.ExecutableCommand;
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
import fr.xephi.authme.output.Messages;
|
import fr.xephi.authme.output.Messages;
|
||||||
|
@ -3,7 +3,6 @@ package fr.xephi.authme.command.executable.changepassword;
|
|||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.ReflectionTestUtils;
|
import fr.xephi.authme.ReflectionTestUtils;
|
||||||
import fr.xephi.authme.cache.auth.PlayerCache;
|
import fr.xephi.authme.cache.auth.PlayerCache;
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
import fr.xephi.authme.output.Messages;
|
import fr.xephi.authme.output.Messages;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package fr.xephi.authme.command.executable.email;
|
package fr.xephi.authme.command.executable.email;
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.process.Management;
|
import fr.xephi.authme.process.Management;
|
||||||
import fr.xephi.authme.util.WrapperMock;
|
import fr.xephi.authme.util.WrapperMock;
|
||||||
import org.bukkit.command.BlockCommandSender;
|
import org.bukkit.command.BlockCommandSender;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package fr.xephi.authme.command.executable.email;
|
package fr.xephi.authme.command.executable.email;
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.process.Management;
|
import fr.xephi.authme.process.Management;
|
||||||
import fr.xephi.authme.util.WrapperMock;
|
import fr.xephi.authme.util.WrapperMock;
|
||||||
import org.bukkit.command.BlockCommandSender;
|
import org.bukkit.command.BlockCommandSender;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package fr.xephi.authme.command.executable.email;
|
package fr.xephi.authme.command.executable.email;
|
||||||
|
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.util.WrapperMock;
|
import fr.xephi.authme.util.WrapperMock;
|
||||||
import org.bukkit.command.BlockCommandSender;
|
import org.bukkit.command.BlockCommandSender;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package fr.xephi.authme.command.executable.login;
|
package fr.xephi.authme.command.executable.login;
|
||||||
|
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.process.Management;
|
import fr.xephi.authme.process.Management;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
import fr.xephi.authme.util.WrapperMock;
|
import fr.xephi.authme.util.WrapperMock;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package fr.xephi.authme.command.executable.logout;
|
package fr.xephi.authme.command.executable.logout;
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.process.Management;
|
import fr.xephi.authme.process.Management;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
import fr.xephi.authme.util.WrapperMock;
|
import fr.xephi.authme.util.WrapperMock;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package fr.xephi.authme.command.executable.register;
|
package fr.xephi.authme.command.executable.register;
|
||||||
|
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.process.Management;
|
import fr.xephi.authme.process.Management;
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
import fr.xephi.authme.output.Messages;
|
import fr.xephi.authme.output.Messages;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package fr.xephi.authme.command.help;
|
package fr.xephi.authme.command.help;
|
||||||
|
|
||||||
import fr.xephi.authme.command.CommandDescription;
|
import fr.xephi.authme.command.CommandDescription;
|
||||||
import fr.xephi.authme.command.CommandParts;
|
|
||||||
import fr.xephi.authme.command.ExecutableCommand;
|
import fr.xephi.authme.command.ExecutableCommand;
|
||||||
import fr.xephi.authme.command.executable.authme.RegisterAdminCommand;
|
import fr.xephi.authme.command.executable.authme.RegisterAdminCommand;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
Loading…
Reference in New Issue
Block a user