From 3c0236e15e043ee7e3b18b9736d587a2d1458119 Mon Sep 17 00:00:00 2001 From: ljacqu Date: Mon, 15 Jan 2018 22:39:29 +0100 Subject: [PATCH] #1035 Fix handling of new login command constraints - Incorporate ConfigMe fix - Various fixes in the integration --- pom.xml | 2 +- .../settings/commandconfig/CommandManager.java | 7 ++++--- .../settings/commandconfig/OnLoginCommand.java | 15 +++++++++++++++ .../commandconfig/CommandManagerTest.java | 1 - 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index a3ac7819..21efb076 100644 --- a/pom.xml +++ b/pom.xml @@ -709,7 +709,7 @@ ch.jalu configme - 0.4 + 0.4.1 compile true diff --git a/src/main/java/fr/xephi/authme/settings/commandconfig/CommandManager.java b/src/main/java/fr/xephi/authme/settings/commandconfig/CommandManager.java index ab096fc6..f4022cc3 100644 --- a/src/main/java/fr/xephi/authme/settings/commandconfig/CommandManager.java +++ b/src/main/java/fr/xephi/authme/settings/commandconfig/CommandManager.java @@ -136,9 +136,9 @@ public class CommandManager implements Reloadable { private static boolean shouldCommandBeRun(OnLoginCommand command, int numberOfOtherAccounts) { return (!command.getNumberOfOtherAccountsAtLeast().isPresent() - || command.getNumberOfOtherAccountsAtLeast().get() >= numberOfOtherAccounts) + || command.getNumberOfOtherAccountsAtLeast().get() <= numberOfOtherAccounts) && (!command.getNumberOfOtherAccountsLessThan().isPresent() - || command.getNumberOfOtherAccountsLessThan().get() <= numberOfOtherAccounts); + || command.getNumberOfOtherAccountsLessThan().get() >= numberOfOtherAccounts); } @Override @@ -167,7 +167,8 @@ public class CommandManager implements Reloadable { Map commands) { return new WrappedTagReplacer<>(availableTags, commands.values(), Command::getCommand, - (cmd, text) -> new OnLoginCommand(text, cmd.getExecutor())); + (cmd, text) -> new OnLoginCommand(text, cmd.getExecutor(), cmd.getNumberOfOtherAccountsAtLeast(), + cmd.getNumberOfOtherAccountsLessThan())); } private List> buildAvailableTags() { diff --git a/src/main/java/fr/xephi/authme/settings/commandconfig/OnLoginCommand.java b/src/main/java/fr/xephi/authme/settings/commandconfig/OnLoginCommand.java index 9a3a25bc..ed963f0c 100644 --- a/src/main/java/fr/xephi/authme/settings/commandconfig/OnLoginCommand.java +++ b/src/main/java/fr/xephi/authme/settings/commandconfig/OnLoginCommand.java @@ -26,6 +26,21 @@ public class OnLoginCommand extends Command { super(command, executor); } + /** + * Constructor. + * + * @param command the command to execute + * @param executor the executor of the command + * @param numberOfOtherAccountsAtLeast required number of accounts for the command to run + * @param numberOfOtherAccountsLessThan max threshold of accounts, from which the command will not be run + */ + public OnLoginCommand(String command, Executor executor, Optional numberOfOtherAccountsAtLeast, + Optional numberOfOtherAccountsLessThan) { + super(command, executor); + this.numberOfOtherAccountsAtLeast = numberOfOtherAccountsAtLeast; + this.numberOfOtherAccountsLessThan = numberOfOtherAccountsLessThan; + } + public Optional getNumberOfOtherAccountsAtLeast() { return numberOfOtherAccountsAtLeast; } diff --git a/src/test/java/fr/xephi/authme/settings/commandconfig/CommandManagerTest.java b/src/test/java/fr/xephi/authme/settings/commandconfig/CommandManagerTest.java index 4b6b1361..9fb779ef 100644 --- a/src/test/java/fr/xephi/authme/settings/commandconfig/CommandManagerTest.java +++ b/src/test/java/fr/xephi/authme/settings/commandconfig/CommandManagerTest.java @@ -31,7 +31,6 @@ import static org.mockito.Mockito.verifyZeroInteractions; /** * Test for {@link CommandManager}. */ -// TODO #1035: Tests currently fail because ConfigMe can't handle Optional fields @RunWith(MockitoJUnitRunner.class) public class CommandManagerTest {