[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

@@ -1,16 +1,16 @@
package dev.sheldan.abstracto.assignableroles.exceptions;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRolePlacePostNotFoundModel;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRolePlacePostNotFoundExceptionModel;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.templating.Templatable;
public class AssignablePlacePostNotFoundException extends AbstractoRunTimeException implements Templatable {
private final AssignableRolePlacePostNotFoundModel model;
private final AssignableRolePlacePostNotFoundExceptionModel model;
public AssignablePlacePostNotFoundException(Long messageId) {
super("Assignable place post not found.");
this.model = AssignableRolePlacePostNotFoundModel.builder().messageId(messageId).build();
this.model = AssignableRolePlacePostNotFoundExceptionModel.builder().messageId(messageId).build();
}
@Override

View File

@@ -1,16 +1,16 @@
package dev.sheldan.abstracto.assignableroles.exceptions;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRoleAlreadyDefinedModel;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRoleAlreadyDefinedExceptionModel;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.models.FullEmote;
import dev.sheldan.abstracto.templating.Templatable;
public class AssignableRoleAlreadyDefinedException extends AbstractoRunTimeException implements Templatable {
private final AssignableRoleAlreadyDefinedModel model;
private final AssignableRoleAlreadyDefinedExceptionModel model;
public AssignableRoleAlreadyDefinedException(FullEmote emote, String placeName) {
super("Assignable role already assigned");
this.model = AssignableRoleAlreadyDefinedModel.builder().emote(emote).placeName(placeName).build();
this.model = AssignableRoleAlreadyDefinedExceptionModel.builder().emote(emote).placeName(placeName).build();
}
@Override

View File

@@ -1,17 +1,17 @@
package dev.sheldan.abstracto.assignableroles.exceptions;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRoleNotUsableModel;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRoleNotUsableExceptionModel;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.models.FullRole;
import dev.sheldan.abstracto.templating.Templatable;
import net.dv8tion.jda.api.entities.Guild;
public class AssignableRoleNotUsableException extends AbstractoRunTimeException implements Templatable {
private final AssignableRoleNotUsableModel model;
private final AssignableRoleNotUsableExceptionModel model;
public AssignableRoleNotUsableException(FullRole role, Guild guild) {
super("Role is not usable as assignable role");
this.model = AssignableRoleNotUsableModel.builder().role(role).guild(guild).build();
this.model = AssignableRoleNotUsableExceptionModel.builder().role(role).guild(guild).build();
}
@Override

View File

@@ -1,16 +1,16 @@
package dev.sheldan.abstracto.assignableroles.exceptions;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRolePlaceAlreadyExistsModel;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRolePlaceAlreadyExistsExceptionModel;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.templating.Templatable;
public class AssignableRolePlaceAlreadyExistsException extends AbstractoRunTimeException implements Templatable {
private final AssignableRolePlaceAlreadyExistsModel model;
private final AssignableRolePlaceAlreadyExistsExceptionModel model;
public AssignableRolePlaceAlreadyExistsException(String name) {
super("Assignable role place already exists");
this.model = AssignableRolePlaceAlreadyExistsModel.builder().name(name).build();
this.model = AssignableRolePlaceAlreadyExistsExceptionModel.builder().name(name).build();
}
@Override

View File

@@ -1,16 +1,16 @@
package dev.sheldan.abstracto.assignableroles.exceptions;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRolePlaceChannelDoesNotExistModel;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRolePlaceChannelDoesNotExistExceptionModel;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.templating.Templatable;
public class AssignableRolePlaceChannelDoesNotExist extends AbstractoRunTimeException implements Templatable {
private final AssignableRolePlaceChannelDoesNotExistModel model;
private final AssignableRolePlaceChannelDoesNotExistExceptionModel model;
public AssignableRolePlaceChannelDoesNotExist(Long channelId, String placeName) {
super("Assignable role place channel does not exist");
this.model = AssignableRolePlaceChannelDoesNotExistModel.builder().channelId(channelId).placeName(placeName).build();
this.model = AssignableRolePlaceChannelDoesNotExistExceptionModel.builder().channelId(channelId).placeName(placeName).build();
}
@Override

View File

@@ -1,16 +1,16 @@
package dev.sheldan.abstracto.assignableroles.exceptions;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRolePlaceNotFoundModel;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignableRolePlaceNotFoundExceptionModel;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.templating.Templatable;
public class AssignableRolePlaceNotFoundException extends AbstractoRunTimeException implements Templatable {
private final AssignableRolePlaceNotFoundModel model;
private final AssignableRolePlaceNotFoundExceptionModel model;
public AssignableRolePlaceNotFoundException(Long placeId) {
super("Assignable role place not found");
this.model = AssignableRolePlaceNotFoundModel.builder().placeId(placeId).build();
this.model = AssignableRolePlaceNotFoundExceptionModel.builder().placeId(placeId).build();
}
@Override

View File

@@ -1,17 +1,17 @@
package dev.sheldan.abstracto.assignableroles.exceptions;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignedUserNotFoundModel;
import dev.sheldan.abstracto.assignableroles.models.exception.AssignedUserNotFoundExceptionModel;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.templating.Templatable;
public class AssignedUserNotFoundException extends AbstractoRunTimeException implements Templatable {
private final AssignedUserNotFoundModel model;
private final AssignedUserNotFoundExceptionModel model;
public AssignedUserNotFoundException(AUserInAServer userInAServer) {
super("Assigned user was not found");
this.model = AssignedUserNotFoundModel.builder().aUserInAServer(userInAServer).build();
this.model = AssignedUserNotFoundExceptionModel.builder().aUserInAServer(userInAServer).build();
}
@Override

View File

@@ -1,17 +1,17 @@
package dev.sheldan.abstracto.assignableroles.exceptions;
import dev.sheldan.abstracto.assignableroles.models.exception.EmoteNotInAssignableRolePlaceModel;
import dev.sheldan.abstracto.assignableroles.models.exception.EmoteNotInAssignableRolePlaceExceptionModel;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.models.FullEmote;
import dev.sheldan.abstracto.templating.Templatable;
public class EmoteNotInAssignableRolePlaceException extends AbstractoRunTimeException implements Templatable {
private final EmoteNotInAssignableRolePlaceModel model;
private final EmoteNotInAssignableRolePlaceExceptionModel model;
public EmoteNotInAssignableRolePlaceException(FullEmote emote, String placeName) {
super("Emote not found in assignable role place");
this.model = EmoteNotInAssignableRolePlaceModel.builder().emote(emote).placeName(placeName).build();
this.model = EmoteNotInAssignableRolePlaceExceptionModel.builder().emote(emote).placeName(placeName).build();
}
@Override

View File

@@ -6,6 +6,7 @@ import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
@@ -18,7 +19,7 @@ import java.util.List;
@Getter
@Setter
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AssignableRole {
public class AssignableRole implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

View File

@@ -6,6 +6,7 @@ import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
@@ -18,7 +19,7 @@ import java.util.List;
@Getter
@Setter
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AssignableRolePlace {
public class AssignableRolePlace implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

View File

@@ -5,6 +5,7 @@ import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
@@ -17,7 +18,7 @@ import java.util.List;
@Getter
@Setter
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AssignableRolePlacePost {
public class AssignableRolePlacePost implements Serializable {
@Id
private Long id;

View File

@@ -5,6 +5,7 @@ import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
@@ -17,7 +18,7 @@ import java.util.List;
@Getter
@Setter
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AssignedRoleUser {
public class AssignedRoleUser implements Serializable {
@Id
private Long id;

View File

@@ -8,9 +8,8 @@ import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@Builder
public class AssignableRoleAlreadyDefinedModel implements Serializable {
private FullEmote emote;
private String placeName;
public class AssignableRoleAlreadyDefinedExceptionModel implements Serializable {
private final FullEmote emote;
private final String placeName;
}

View File

@@ -3,15 +3,13 @@ package dev.sheldan.abstracto.assignableroles.models.exception;
import dev.sheldan.abstracto.core.models.FullRole;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import net.dv8tion.jda.api.entities.Guild;
import java.io.Serializable;
@Getter
@Setter
@Builder
public class AssignableRoleNotUsableModel implements Serializable {
private FullRole role;
private Guild guild;
public class AssignableRoleNotUsableExceptionModel implements Serializable {
private final FullRole role;
private final transient Guild guild;
}

View File

@@ -7,9 +7,7 @@ import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@Builder
public class AssignableRolePlaceChannelDoesNotExistModel implements Serializable {
private Long channelId;
private String placeName;
public class AssignableRolePlaceAlreadyExistsExceptionModel implements Serializable {
private final String name;
}

View File

@@ -1,12 +0,0 @@
package dev.sheldan.abstracto.assignableroles.models.exception;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Builder
public class AssignableRolePlaceAlreadyExistsModel {
private String name;
}

View File

@@ -0,0 +1,14 @@
package dev.sheldan.abstracto.assignableroles.models.exception;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Builder
public class AssignableRolePlaceChannelDoesNotExistExceptionModel implements Serializable {
private final Long channelId;
private final String placeName;
}

View File

@@ -1,19 +1,20 @@
package dev.sheldan.abstracto.assignableroles.models.exception;
import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlace;
import dev.sheldan.abstracto.core.models.FullUser;
import dev.sheldan.abstracto.core.models.FullUserInServer;
import dev.sheldan.abstracto.templating.Templatable;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@Builder
public class AssignableRolePlaceExceptionModel {
private AssignableRolePlace rolePlace;
private FullUser user;
private Throwable throwable;
public class AssignableRolePlaceExceptionModel implements Serializable {
private final AssignableRolePlace rolePlace;
private final FullUserInServer user;
private final Throwable throwable;
public Templatable getTemplate() {
Throwable current = throwable;

View File

@@ -7,8 +7,7 @@ import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@Builder
public class AssignableRolePlacePostNotFoundModel implements Serializable {
private Long messageId;
public class AssignableRolePlaceNotFoundExceptionModel implements Serializable {
private final Long placeId;
}

View File

@@ -4,9 +4,10 @@ import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@Builder
public class AssignableRolePlaceNotFoundModel {
private Long placeId;
public class AssignableRolePlacePostNotFoundExceptionModel implements Serializable {
private final Long messageId;
}

View File

@@ -5,9 +5,10 @@ import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@Builder
public class AssignedUserNotFoundModel {
private AUserInAServer aUserInAServer;
public class AssignedUserNotFoundExceptionModel implements Serializable {
private final AUserInAServer aUserInAServer;
}

View File

@@ -8,9 +8,8 @@ import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@Builder
public class EmoteNotInAssignableRolePlaceModel implements Serializable {
private FullEmote emote;
private String placeName;
public class EmoteNotInAssignableRolePlaceExceptionModel implements Serializable {
private final FullEmote emote;
private final String placeName;
}