[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

@@ -57,6 +57,7 @@ public class Ban extends AbstractConditionableCommand {
.name("ban")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -52,6 +52,7 @@ public class BanId extends AbstractConditionableCommand {
.name("banId")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -41,6 +41,7 @@ public class DecayAllWarnings extends AbstractConditionableCommand {
.name("decayAllWarnings")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -36,6 +36,7 @@ public class DecayWarnings extends AbstractConditionableCommand {
.name("decayWarnings")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -48,6 +48,7 @@ public class DeleteNote extends AbstractConditionableCommand {
.name("deleteNote")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -48,6 +48,7 @@ public class DeleteWarning extends AbstractConditionableCommand {
.name("deleteWarning")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.aliases(aliases)
.causesReaction(true)
.parameters(parameters)

View File

@@ -55,6 +55,7 @@ public class Kick extends AbstractConditionableCommand {
.name("kick")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -50,6 +50,7 @@ public class MyWarnings extends AbstractConditionableCommand {
.name("myWarnings")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.aliases(aliases)
.parameters(parameters)

View File

@@ -55,6 +55,7 @@ public class Purge extends AbstractConditionableCommand {
.name("purge")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -55,6 +55,7 @@ public class SlowMode extends AbstractConditionableCommand {
.name("slowmode")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -49,6 +49,7 @@ public class UserNoteCommand extends AbstractConditionableCommand {
.name("userNote")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -8,7 +8,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.models.FullUser;
import dev.sheldan.abstracto.core.models.FullUserInServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.core.service.ChannelService;
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
@@ -55,7 +55,7 @@ public class UserNotes extends AbstractConditionableCommand {
Member member = (Member) parameters.get(0);
AUserInAServer userInAServer = userInServerManagementService.loadUser(member);
userNotes = userNoteManagementService.loadNotesForUser(userInAServer);
FullUser specifiedUser = FullUser
FullUserInServer specifiedUser = FullUserInServer
.builder()
.aUserInAServer(userInAServer)
.member(member)
@@ -79,6 +79,7 @@ public class UserNotes extends AbstractConditionableCommand {
.name("userNotes")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -57,6 +57,7 @@ public class Warn extends AbstractConditionableCommand {
.name("warn")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -75,6 +75,7 @@ public class Warnings extends AbstractConditionableCommand {
.module(ModerationModule.MODERATION)
.templated(true)
.causesReaction(true)
.supportsEmbedException(true)
.parameters(parameters)
.help(helpInfo)
.build();

View File

@@ -55,6 +55,7 @@ public class Mute extends AbstractConditionableCommand {
.module(ModerationModule.MODERATION)
.templated(true)
.causesReaction(true)
.supportsEmbedException(true)
.parameters(parameters)
.help(helpInfo)
.build();

View File

@@ -40,6 +40,7 @@ public class SetMuteRole extends AbstractConditionableCommand {
.name("setMuteRole")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -57,6 +57,7 @@ public class UnMute extends AbstractConditionableCommand {
.name("unMute")
.module(ModerationModule.MODERATION)
.templated(true)
.supportsEmbedException(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.moderation.converter;
import dev.sheldan.abstracto.core.models.FullUser;
import dev.sheldan.abstracto.core.models.FullUserInServer;
import dev.sheldan.abstracto.core.service.BotService;
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
import dev.sheldan.abstracto.moderation.models.database.UserNote;
@@ -22,7 +22,7 @@ public class UserNotesConverter {
public List<NoteEntryModel> fromNotes(List<UserNote> userNotes){
List<NoteEntryModel> entryModels = new ArrayList<>();
userNotes.forEach(userNote -> {
FullUser fullUser = FullUser
FullUserInServer fullUser = FullUserInServer
.builder()
.member(botService.getMemberInServer(userNote.getUser()))
.aUserInAServer(userNote.getUser())

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.moderation.converter;
import dev.sheldan.abstracto.core.models.FullUser;
import dev.sheldan.abstracto.core.models.FullUserInServer;
import dev.sheldan.abstracto.core.service.BotService;
import dev.sheldan.abstracto.moderation.models.database.Warning;
import dev.sheldan.abstracto.moderation.models.template.commands.WarnEntry;
@@ -19,13 +19,13 @@ public class WarnEntryConverter {
public List<WarnEntry> fromWarnings(List<Warning> warnings) {
List<WarnEntry> entries = new ArrayList<>();
warnings.forEach(warning -> {
FullUser warnedUser = FullUser
FullUserInServer warnedUser = FullUserInServer
.builder()
.member(botService.getMemberInServer(warning.getWarnedUser()))
.aUserInAServer(warning.getWarnedUser())
.build();
FullUser warningUser = FullUser
FullUserInServer warningUser = FullUserInServer
.builder()
.member(botService.getMemberInServer(warning.getWarningUser()))
.aUserInAServer(warning.getWarningUser())

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.moderation.service;
import dev.sheldan.abstracto.core.models.AServerAChannelMessage;
import dev.sheldan.abstracto.core.models.FullUser;
import dev.sheldan.abstracto.core.models.FullUserInServer;
import dev.sheldan.abstracto.core.models.database.AChannel;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
@@ -9,7 +9,7 @@ import dev.sheldan.abstracto.core.service.*;
import dev.sheldan.abstracto.core.service.management.ChannelManagementService;
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
import dev.sheldan.abstracto.moderation.config.posttargets.MutingPostTarget;
import dev.sheldan.abstracto.moderation.exception.MuteException;
import dev.sheldan.abstracto.moderation.exception.MuteRoleNotSetupException;
import dev.sheldan.abstracto.moderation.models.database.Mute;
import dev.sheldan.abstracto.moderation.models.database.MuteRole;
import dev.sheldan.abstracto.moderation.models.template.commands.MuteLog;
@@ -83,13 +83,13 @@ public class MuteServiceBean implements MuteService {
@Override
public Mute muteMember(Member memberToMute, Member mutingMember, String reason, Instant unMuteDate, Message message) {
FullUser mutedUser = FullUser
FullUserInServer mutedUser = FullUserInServer
.builder()
.aUserInAServer(userInServerManagementService.loadUser(memberToMute))
.member(memberToMute)
.build();
FullUser mutingUser = FullUser
FullUserInServer mutingUser = FullUserInServer
.builder()
.aUserInAServer(userInServerManagementService.loadUser(mutingMember))
.member(mutingMember)
@@ -99,13 +99,13 @@ public class MuteServiceBean implements MuteService {
@Override
public Mute muteAUserInAServer(AUserInAServer userBeingMuted, AUserInAServer userMuting, String reason, Instant unMuteDate, Message message) {
FullUser mutedUser = FullUser
FullUserInServer mutedUser = FullUserInServer
.builder()
.aUserInAServer(userBeingMuted)
.member(botService.getMemberInServer(userBeingMuted))
.build();
FullUser mutingUser = FullUser
FullUserInServer mutingUser = FullUserInServer
.builder()
.aUserInAServer(userMuting)
.member(botService.getMemberInServer(userMuting))
@@ -114,11 +114,11 @@ public class MuteServiceBean implements MuteService {
}
@Override
public Mute muteUser(FullUser userBeingMuted, FullUser userMuting, String reason, Instant unMuteDate, Message message) {
public Mute muteUser(FullUserInServer userBeingMuted, FullUserInServer userMuting, String reason, Instant unMuteDate, Message message) {
AServer serverBeingMutedIn = userBeingMuted.getAUserInAServer().getServerReference();
if(!muteRoleManagementService.muteRoleForServerExists(serverBeingMutedIn)) {
log.error("Mute role for server {} has not been setup.", serverBeingMutedIn.getId());
throw new MuteException("Mute role for server has not been setup");
throw new MuteRoleNotSetupException();
}
Member memberBeingMuted = userBeingMuted.getMember();
log.info("User {} mutes user {} until {}",
@@ -152,7 +152,7 @@ public class MuteServiceBean implements MuteService {
messageService.sendMessageToUser(memberBeingMuted.getUser(), muteNotificationMessage, textChannel);
}
private Mute createMuteObject(FullUser userMuting, String reason, Instant unMuteDate, Message message, AUserInAServer userInServerBeingMuted) {
private Mute createMuteObject(FullUserInServer userMuting, String reason, Instant unMuteDate, Message message, AUserInAServer userInServerBeingMuted) {
AServerAChannelMessage origin = null;
if(message != null) {
long channelId = message.getChannel().getIdLong();

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.moderation.service;
import dev.sheldan.abstracto.core.models.FullUser;
import dev.sheldan.abstracto.core.models.FullUserInServer;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.ConfigService;
import dev.sheldan.abstracto.core.service.MessageService;
@@ -60,13 +60,13 @@ public class WarnServiceBean implements WarnService {
@Override
public Warning warnUser(AUserInAServer warnedAUserInAServer, AUserInAServer warningAUserInAServer, String reason, MessageChannel feedbackChannel) {
FullUser warnedUser = FullUser
FullUserInServer warnedUser = FullUserInServer
.builder()
.aUserInAServer(warnedAUserInAServer)
.member(botService.getMemberInServer(warnedAUserInAServer))
.build();
FullUser warningUser = FullUser
FullUserInServer warningUser = FullUserInServer
.builder()
.aUserInAServer(warningAUserInAServer)
.member(botService.getMemberInServer(warningAUserInAServer))
@@ -76,13 +76,13 @@ public class WarnServiceBean implements WarnService {
@Override
public Warning warnMember(Member warnedMember, Member warningMember, String reason, MessageChannel feedbackChannel) {
FullUser warnedUser = FullUser
FullUserInServer warnedUser = FullUserInServer
.builder()
.aUserInAServer(userInServerManagementService.loadUser(warnedMember))
.member(warnedMember)
.build();
FullUser warningUser = FullUser
FullUserInServer warningUser = FullUserInServer
.builder()
.aUserInAServer(userInServerManagementService.loadUser(warningMember))
.member(warningMember)
@@ -91,7 +91,7 @@ public class WarnServiceBean implements WarnService {
}
@Override
public Warning warnFullUser(FullUser warnedMember, FullUser warningMember, String reason, MessageChannel feedbackChannel) {
public Warning warnFullUser(FullUserInServer warnedMember, FullUserInServer warningMember, String reason, MessageChannel feedbackChannel) {
Guild guild = warnedMember.getMember().getGuild();
log.info("User {} is warning {} in server {}", warnedMember.getMember().getId(), warningMember.getMember().getId(), guild.getIdLong());
Warning warning = warnManagementService.createWarning(warnedMember.getAUserInAServer(), warningMember.getAUserInAServer(), reason);