[AB-99/AB-66] changed commands to use embeds for exceptions instead of direct messages

added models instead of using HashMaps for exceptions
added a lot of exceptions for different cases
refactored a few commands to be fully async instead of fire and forget
This commit is contained in:
Sheldan
2020-08-29 01:24:06 +02:00
parent fbb36ae9d5
commit 552ecc26b8
285 changed files with 1607 additions and 847 deletions

View File

@@ -45,6 +45,7 @@ public class DisableExpForRole extends AbstractConditionableCommand {
.name("disableExpForRole")
.module(ExperienceModule.EXPERIENCE)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -48,6 +48,7 @@ public class DisableExpGain extends AbstractConditionableCommand {
.name("disableExpGain")
.module(ExperienceModule.EXPERIENCE)
.causesReaction(true)
.supportsEmbedException(true)
.templated(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -45,6 +45,7 @@ public class EnableExpForRole extends AbstractConditionableCommand {
.module(ExperienceModule.EXPERIENCE)
.templated(true)
.causesReaction(true)
.supportsEmbedException(true)
.parameters(parameters)
.help(helpInfo)
.build();

View File

@@ -48,6 +48,7 @@ public class EnableExpGain extends AbstractConditionableCommand {
.name("enableExpGain")
.module(ExperienceModule.EXPERIENCE)
.causesReaction(true)
.supportsEmbedException(true)
.templated(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -48,6 +48,7 @@ public class ExpScale extends AbstractConditionableCommand {
.module(ExperienceModule.EXPERIENCE)
.causesReaction(true)
.templated(true)
.supportsEmbedException(true)
.parameters(parameters)
.help(helpInfo)
.build();

View File

@@ -72,6 +72,7 @@ public class LeaderBoardCommand extends AbstractConditionableCommand {
.name("leaderboard")
.module(ExperienceModule.EXPERIENCE)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -63,6 +63,7 @@ public class ListDisabledExperienceRoles extends AbstractConditionableCommand {
.name("listDisabledExperienceRoles")
.module(ExperienceModule.EXPERIENCE)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.aliases(aliases)
.parameters(parameters)

View File

@@ -69,6 +69,7 @@ public class Rank extends AbstractConditionableCommand {
.name("rank")
.module(ExperienceModule.EXPERIENCE)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -57,6 +57,7 @@ public class SetExpRole extends AbstractConditionableCommand {
.name("setExpRole")
.module(ExperienceModule.EXPERIENCE)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -46,6 +46,7 @@ public class SyncRoles extends AbstractConditionableCommand {
.name("syncExpRoles")
.module(ExperienceModule.EXPERIENCE)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -46,6 +46,7 @@ public class UnSetExpRole extends AbstractConditionableCommand {
.module(ExperienceModule.EXPERIENCE)
.templated(true)
.causesReaction(true)
.supportsEmbedException(true)
.parameters(parameters)
.help(helpInfo)
.build();

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.experience.commands;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameter;
import dev.sheldan.abstracto.core.command.exception.InsufficientParameters;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameterException;
import dev.sheldan.abstracto.core.command.exception.InsufficientParametersException;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.models.database.ARole;
@@ -28,12 +28,12 @@ public class DisableExpForRoleTest {
@Mock
private DisabledExpRoleManagementService disabledExpRoleManagementService;
@Test(expected = InsufficientParameters.class)
@Test(expected = InsufficientParametersException.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
@Test(expected = IncorrectParameterException.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit);
}

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.experience.commands;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameter;
import dev.sheldan.abstracto.core.command.exception.InsufficientParameters;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameterException;
import dev.sheldan.abstracto.core.command.exception.InsufficientParametersException;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
@@ -34,12 +34,12 @@ public class DisableExpGainTest {
@Mock
private UserInServerManagementService userInServerManagementService;
@Test(expected = InsufficientParameters.class)
@Test(expected = InsufficientParametersException.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
@Test(expected = IncorrectParameterException.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit);
}

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.experience.commands;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameter;
import dev.sheldan.abstracto.core.command.exception.InsufficientParameters;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameterException;
import dev.sheldan.abstracto.core.command.exception.InsufficientParametersException;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.models.database.ARole;
@@ -28,12 +28,12 @@ public class EnableExpForRoleTest {
@Mock
private DisabledExpRoleManagementService disabledExpRoleManagementService;
@Test(expected = InsufficientParameters.class)
@Test(expected = InsufficientParametersException.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
@Test(expected = IncorrectParameterException.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit);
}

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.experience.commands;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameter;
import dev.sheldan.abstracto.core.command.exception.InsufficientParameters;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameterException;
import dev.sheldan.abstracto.core.command.exception.InsufficientParametersException;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
@@ -34,12 +34,12 @@ public class EnableExpGainTest {
@Mock
private UserInServerManagementService userInServerManagementService;
@Test(expected = InsufficientParameters.class)
@Test(expected = InsufficientParametersException.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
@Test(expected = IncorrectParameterException.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit);
}

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.experience.commands;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameter;
import dev.sheldan.abstracto.core.command.exception.InsufficientParameters;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameterException;
import dev.sheldan.abstracto.core.command.exception.InsufficientParametersException;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.service.ConfigService;
@@ -26,12 +26,12 @@ public class ExpScaleTest {
@Mock
private ConfigService configService;
@Test(expected = InsufficientParameters.class)
@Test(expected = InsufficientParametersException.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
@Test(expected = IncorrectParameterException.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit);
}

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.experience.commands;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameter;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameterException;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.service.ChannelService;
@@ -43,7 +43,7 @@ public class LeaderBoardCommandTest {
@Mock
private LeaderBoardModelConverter converter;
@Test(expected = IncorrectParameter.class)
@Test(expected = IncorrectParameterException.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit);
}

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.experience.commands;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameter;
import dev.sheldan.abstracto.core.command.exception.InsufficientParameters;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameterException;
import dev.sheldan.abstracto.core.command.exception.InsufficientParametersException;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.exception.RoleNotFoundInGuildException;
@@ -33,23 +33,23 @@ public class SetExpRoleTest {
@Mock
private RoleService roleService;
@Test(expected = InsufficientParameters.class)
@Test(expected = InsufficientParametersException.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = InsufficientParameters.class)
@Test(expected = InsufficientParametersException.class)
public void testRoleMissing() {
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(4));
testUnit.execute(context);
}
@Test(expected = IncorrectParameter.class)
@Test(expected = IncorrectParameterException.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
@Test(expected = IncorrectParameterException.class)
public void testLevelProvidedButNotRole() {
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(4, ""));
testUnit.execute(context);

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.experience.commands;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameter;
import dev.sheldan.abstracto.core.command.exception.InsufficientParameters;
import dev.sheldan.abstracto.core.command.exception.IncorrectParameterException;
import dev.sheldan.abstracto.core.command.exception.InsufficientParametersException;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.models.database.ARole;
@@ -29,12 +29,12 @@ public class UnSetExpRoleTest {
@Mock
private ExperienceRoleService experienceRoleService;
@Test(expected = InsufficientParameters.class)
@Test(expected = InsufficientParametersException.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
@Test(expected = IncorrectParameterException.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit);
}

View File

@@ -14,7 +14,6 @@ import java.util.List;
* Model used to render an overview of the roles for which experience gain has been disabled on the current server.
*/
@Getter
@Setter
@SuperBuilder
public class DisabledExperienceRolesModel extends UserInitiatedServerContext {
@Builder.Default

View File

@@ -6,16 +6,17 @@ import lombok.Getter;
import lombok.Setter;
import net.dv8tion.jda.api.entities.Member;
import java.io.Serializable;
/**
* Model used in the list of members when rendering the leader board template. The reason this is necessary,
* is because we need more than just the {@link AUserExperience} object, we also need the position of the user in this
* guild and the {@link Member} for convenience in the templates.
*/
@Getter
@Setter
@Builder
public class LeaderBoardEntryModel {
public class LeaderBoardEntryModel implements Serializable {
private AUserExperience experience;
private Member member;
private transient Member member;
private Integer rank;
}