mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-16 12:28:03 +00:00
[AB-365] introducing slash commands for a selection of commands
adding method for pinning a message moving suggestion to correct deployment
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
package dev.sheldan.abstracto.moderation.config;
|
||||
|
||||
public class ModerationSlashCommandNames {
|
||||
public static final String MODERATION = "moderation";
|
||||
public static final String WARNINGS = "warnings";
|
||||
public static final String USER_NOTES = "usernotes";
|
||||
public static final String MUTE = "mute";
|
||||
public static final String WARN_DECAY = "warningdecay";
|
||||
public static final String WARNINGS_PUBLIC = "warningspublic";
|
||||
}
|
||||
@@ -10,7 +10,6 @@ public enum ModerationFeatureDefinition implements FeatureDefinition {
|
||||
MUTING("muting"),
|
||||
AUTOMATIC_WARN_DECAY("warnDecay"),
|
||||
USER_NOTES("userNotes"),
|
||||
INVITE_FILTER("inviteFilter"),
|
||||
REPORT_REACTIONS("reportReactions"),
|
||||
INFRACTIONS("infractions")
|
||||
;
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package dev.sheldan.abstracto.moderation.exception;
|
||||
|
||||
import dev.sheldan.abstracto.core.exception.AbstractoTemplatableException;
|
||||
|
||||
public class UserNoteNotFoundException extends AbstractoTemplatableException {
|
||||
@Override
|
||||
public String getTemplateName() {
|
||||
return "user_note_not_found_exception";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getTemplateModel() {
|
||||
return new Object();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package dev.sheldan.abstracto.moderation.exception;
|
||||
|
||||
import dev.sheldan.abstracto.core.exception.AbstractoTemplatableException;
|
||||
|
||||
public class WarnNotFoundException extends AbstractoTemplatableException {
|
||||
@Override
|
||||
public String getTemplateName() {
|
||||
return "warn_not_found_exception";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getTemplateModel() {
|
||||
return new Object();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package dev.sheldan.abstracto.moderation.model;
|
||||
|
||||
public enum BanResult {
|
||||
NOTIFICATION_FAILED, SUCCESSFUL
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.command;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.context.SlimUserInitiatedServerContext;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
|
||||
/**
|
||||
* Used when rendering the notification when a member was kicked. The template is: "kick_log_embed"
|
||||
*/
|
||||
@Getter
|
||||
@SuperBuilder
|
||||
@Builder
|
||||
@Setter
|
||||
public class KickLogModel extends SlimUserInitiatedServerContext {
|
||||
public class KickLogModel {
|
||||
/**
|
||||
* The reason of the kick
|
||||
*/
|
||||
@@ -21,4 +22,7 @@ public class KickLogModel extends SlimUserInitiatedServerContext {
|
||||
* The member being kicked
|
||||
*/
|
||||
private Member kickedUser;
|
||||
private Member member;
|
||||
private Guild guild;
|
||||
private GuildMessageChannel channel;
|
||||
}
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.command;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.FullUserInServer;
|
||||
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@SuperBuilder
|
||||
@Builder
|
||||
@Getter
|
||||
@Setter
|
||||
public class ListNotesModel extends UserInitiatedServerContext {
|
||||
public class ListNotesModel {
|
||||
private List<NoteEntryModel> userNotes;
|
||||
private FullUserInServer specifiedUser;
|
||||
private Member member;
|
||||
}
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.command;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.context.SlimUserInitiatedServerContext;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@SuperBuilder
|
||||
public class MutesModel extends SlimUserInitiatedServerContext {
|
||||
@Builder
|
||||
public class MutesModel {
|
||||
private List<MuteEntry> mutes;
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.command;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
|
||||
/**
|
||||
* Used to render the response of the myWarnings command. The template is: 'myWarnings_response_embed'
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@SuperBuilder
|
||||
public class MyWarningsModel extends UserInitiatedServerContext {
|
||||
@Builder
|
||||
public class MyWarningsModel {
|
||||
/**
|
||||
* The total amount of warnings the member has
|
||||
*/
|
||||
@@ -20,4 +20,5 @@ public class MyWarningsModel extends UserInitiatedServerContext {
|
||||
* The current (only active) amount of warnings the member has
|
||||
*/
|
||||
private Long currentWarnCount;
|
||||
private Member member;
|
||||
}
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.command;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.context.SlimUserInitiatedServerContext;
|
||||
import dev.sheldan.abstracto.moderation.model.database.Warning;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
/**
|
||||
* Used when rendering the notification when a member was warned. The template is: "warn_log_embed"
|
||||
*/
|
||||
@Getter
|
||||
@SuperBuilder
|
||||
@Builder
|
||||
@Setter
|
||||
public class WarnContext extends SlimUserInitiatedServerContext {
|
||||
public class WarnContext {
|
||||
/**
|
||||
* The reason why the warn was cast
|
||||
*/
|
||||
@@ -27,4 +29,8 @@ public class WarnContext extends SlimUserInitiatedServerContext {
|
||||
*/
|
||||
private Long warnId;
|
||||
private Long infractionId;
|
||||
private Member member;
|
||||
private Guild guild;
|
||||
private Message message;
|
||||
private GuildMessageChannel channel;
|
||||
}
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
package dev.sheldan.abstracto.moderation.service;
|
||||
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
import dev.sheldan.abstracto.moderation.model.BanResult;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public interface BanService {
|
||||
String BAN_EFFECT_KEY = "ban";
|
||||
CompletableFuture<Void> banMemberWithNotification(Member member, String reason, Member banningMember, Integer deletionDays, Message message);
|
||||
CompletableFuture<Void> banUserWithNotification(User user, String reason, Member banningMember, Integer deletionDays, Message message);
|
||||
CompletableFuture<BanResult> banUserWithNotification(User user, String reason, Member banningMember, Integer deletionDays);
|
||||
CompletableFuture<Void> unBanUserWithNotification(User user, Member unBanningUser);
|
||||
CompletableFuture<Void> banUser(Guild guild, User user, Integer deletionDays, String reason);
|
||||
CompletableFuture<Void> unbanUser(Guild guild, User user);
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package dev.sheldan.abstracto.moderation.service;
|
||||
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import net.dv8tion.jda.api.interactions.InteractionHook;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.CompletionStage;
|
||||
|
||||
public interface PurgeService {
|
||||
CompletableFuture<Void> purgeMessagesInChannel(Integer count, GuildMessageChannel channel, Long messageId, Member purgingRestriction);
|
||||
CompletableFuture<Void> purgeMessagesInChannel(Integer count, GuildMessageChannel channel, Message origin, Member purgingRestriction);
|
||||
CompletionStage<Void> purgeMessagesInChannel(Integer amountOfMessages, GuildMessageChannel guildMessageChannel, Long startId, InteractionHook hook, Member memberToPurgeMessagesOf);
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import java.util.List;
|
||||
public interface UserNoteManagementService {
|
||||
UserNote createUserNote(AUserInAServer aUserInAServer, String note);
|
||||
void deleteNote(Long id, AServer server);
|
||||
void deleteNote(UserNote userNote);
|
||||
UserNote loadNote(Long serverId, Long userNoteId);
|
||||
boolean noteExists(Long id, AServer server);
|
||||
List<UserNote> loadNotesForUser(AUserInAServer aUserInAServer);
|
||||
|
||||
Reference in New Issue
Block a user