mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-24 13:44:33 +00:00
added warn and ban command
changed command context to be a member instead of user, commands are only supported within guilds added custom exception templating for the error message added error message in case the parameters for a command were too little added support for templates on command help descriptions added post execution to be executed to print exception messages refactored command handling to be able to support exceptions added user and userInServer management
This commit is contained in:
@@ -1,13 +1,12 @@
|
||||
package dev.sheldan.abstracto.core.management;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.AServer;
|
||||
import dev.sheldan.abstracto.core.models.PostTarget;
|
||||
import dev.sheldan.abstracto.core.models.*;
|
||||
|
||||
public interface ServerManagementService {
|
||||
AServer createServer(Long id);
|
||||
AServer loadServer(Long id);
|
||||
void addChannelToServer(AServer server, AChannel channel);
|
||||
AUserInAServer addUserToServer(AServer server, AUser user);
|
||||
AChannel getPostTarget(Long serverId, String name);
|
||||
AChannel getPostTarget(Long serverId, PostTarget target);
|
||||
AChannel getPostTarget(AServer server, PostTarget target);
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package dev.sheldan.abstracto.core.management;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.AServer;
|
||||
import dev.sheldan.abstracto.core.models.AUser;
|
||||
import dev.sheldan.abstracto.core.models.AUserInAServer;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
|
||||
public interface UserManagementService {
|
||||
AUserInAServer loadUser(Long userId, Long serverId);
|
||||
AUserInAServer loadUser(AUser user, AServer server);
|
||||
AUserInAServer loadUser(Member member);
|
||||
AUserInAServer createUserInServer(Member member);
|
||||
AUser createUser(Member member);
|
||||
}
|
||||
@@ -11,17 +11,15 @@ import java.util.List;
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public class AServer implements SnowFlake {
|
||||
|
||||
@Id
|
||||
@Getter @Setter
|
||||
private Long id;
|
||||
|
||||
@Getter
|
||||
private String name;
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@Getter
|
||||
@Builder.Default
|
||||
private List<ARole> roles = new ArrayList<>();
|
||||
|
||||
@@ -30,10 +28,15 @@ public class AServer implements SnowFlake {
|
||||
mappedBy = "server",
|
||||
cascade = CascadeType.ALL,
|
||||
orphanRemoval = true)
|
||||
@Getter
|
||||
@Builder.Default
|
||||
private List<AChannel> channels = new ArrayList<>();
|
||||
|
||||
@OneToMany(
|
||||
fetch = FetchType.LAZY,
|
||||
mappedBy = "serverReference",
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
private List<AUserInAServer> users;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package dev.sheldan.abstracto.core.models;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Table(name="users")
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
public class AUser {
|
||||
|
||||
@Id
|
||||
private Long id;
|
||||
|
||||
@OneToMany(
|
||||
fetch = FetchType.LAZY,
|
||||
mappedBy = "userReference",
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
private List<AUserInAServer> servers;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package dev.sheldan.abstracto.core.models;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Entity @Getter @Builder
|
||||
public class AUserInAServer {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long userInServerId;
|
||||
|
||||
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
@JoinColumn(name = "userReference")
|
||||
private AUser userReference;
|
||||
|
||||
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
@JoinColumn(name = "serverReference")
|
||||
private AServer serverReference;
|
||||
}
|
||||
@@ -35,6 +35,7 @@ public class PostTarget {
|
||||
|
||||
public static String JOIN_LOG = "joinlog";
|
||||
public static String LEAVE_LOG = "leavelog";
|
||||
public static String WARN_LOG = "warnlog";
|
||||
|
||||
public static List<String> AVAILABLE_POST_TARGETS = Arrays.asList(JOIN_LOG, LEAVE_LOG);
|
||||
public static List<String> AVAILABLE_POST_TARGETS = Arrays.asList(JOIN_LOG, LEAVE_LOG, WARN_LOG);
|
||||
}
|
||||
|
||||
@@ -4,4 +4,5 @@ import dev.sheldan.abstracto.core.models.PostTarget;
|
||||
|
||||
public interface PostTargetService {
|
||||
void sendTextInPostTarget(String text, PostTarget target);
|
||||
void sendTextInPostTarget(String text, String postTargetName, Long serverId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user