[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

@@ -4,19 +4,19 @@ package dev.sheldan.abstracto.moderation.exception;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.templating.Templatable;
public class MuteException extends AbstractoRunTimeException implements Templatable {
public MuteException(String message) {
super(message);
public class MuteRoleNotSetupException extends AbstractoRunTimeException implements Templatable {
public MuteRoleNotSetupException() {
super("Mute role for server has not been setup");
}
@Override
public String getTemplateName() {
return "unMute_has_no_active_mute";
return "mute_role_has_not_been_setup_exception";
}
@Override
public Object getTemplateModel() {
return null;
return new Object();
}
}

View File

@@ -5,7 +5,7 @@ import dev.sheldan.abstracto.templating.Templatable;
public class NoMessageFoundException extends AbstractoRunTimeException implements Templatable {
public NoMessageFoundException() {
super("");
super("No message found");
}
@Override

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.moderation.models.template.commands;
import dev.sheldan.abstracto.core.models.FullUser;
import dev.sheldan.abstracto.core.models.FullUserInServer;
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
@@ -13,5 +13,5 @@ import java.util.List;
@Setter
public class ListNotesModel extends UserInitiatedServerContext {
private List<NoteEntryModel> userNotes;
private FullUser specifiedUser;
private FullUserInServer specifiedUser;
}

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.moderation.models.template.commands;
import dev.sheldan.abstracto.core.models.FullUser;
import dev.sheldan.abstracto.core.models.FullUserInServer;
import dev.sheldan.abstracto.moderation.models.database.UserNote;
import lombok.Builder;
import lombok.Getter;
@@ -11,5 +11,5 @@ import lombok.Setter;
@Builder
public class NoteEntryModel {
private UserNote note;
private FullUser fullUser;
private FullUserInServer fullUser;
}

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.moderation.models.template.commands;
import dev.sheldan.abstracto.core.models.FullUser;
import dev.sheldan.abstracto.core.models.FullUserInServer;
import dev.sheldan.abstracto.moderation.models.database.Warning;
import lombok.Builder;
import lombok.Getter;
@@ -19,11 +19,11 @@ public class WarnEntry {
*/
private Warning warning;
/**
* The {@link FullUser} containing information about the user being warned. The member property is null if the user left the server
* The {@link FullUserInServer} containing information about the user being warned. The member property is null if the user left the server
*/
private FullUser warnedUser;
private FullUserInServer warnedUser;
/**
* The {@link FullUser} containing information about the user warning. The member property is null if the user left the server
* The {@link FullUserInServer} containing information about the user warning. The member property is null if the user left the server
*/
private FullUser warningUser;
private FullUserInServer warningUser;
}

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.AUserInAServer;
import dev.sheldan.abstracto.moderation.models.database.Mute;
import dev.sheldan.abstracto.moderation.models.template.commands.MuteLog;
@@ -12,7 +12,7 @@ import java.time.Instant;
public interface MuteService {
Mute muteMember(Member memberToMute, Member userMuting, String reason, Instant unMuteDate, Message message);
Mute muteAUserInAServer(AUserInAServer member, AUserInAServer userMuting, String reason, Instant unMuteDate, Message message);
Mute muteUser(FullUser userToMute, FullUser userMuting, String reason, Instant unMuteDate, Message message);
Mute muteUser(FullUserInServer userToMute, FullUserInServer userMuting, String reason, Instant unMuteDate, Message message);
void applyMuteRole(AUserInAServer aUserInAServer);
void muteMemberWithLog(Member memberToMute, Member memberMuting, String reason, Instant unMuteDate, MuteLog log, Message message);
String startUnMuteJobFor(Instant unMuteDate, Mute mute);

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.moderation.models.database.Warning;
import dev.sheldan.abstracto.moderation.models.template.commands.WarnLog;
@@ -14,7 +14,7 @@ import java.time.Instant;
public interface WarnService {
Warning warnUser(AUserInAServer warnedAUser, AUserInAServer warningAUser, String reason, MessageChannel feedbackChannel);
Warning warnMember(Member warnedMember, Member warningMember, String reason, MessageChannel feedbackChannel);
Warning warnFullUser(FullUser warnedUser, FullUser warningUser, String reason, MessageChannel feedbackChannel);
Warning warnFullUser(FullUserInServer warnedUser, FullUserInServer warningUser, String reason, MessageChannel feedbackChannel);
Warning warnUserWithLog(Member warnedMember, Member warningMember, String reason, WarnLog warnLog, MessageChannel feedbackChannel);
void decayWarning(Warning warning, Instant decayDate);
void decayWarningsForServer(AServer server);