[AB-291] refactoring pagination to custom button pagination

adding mutes command
fixing edit message not considering components
reversing the origin comparison in a few button click listeners
fixing ordering of warnings and mutes from converter
This commit is contained in:
Sheldan
2021-12-01 01:14:29 +01:00
parent f2aa7035aa
commit 0e7ea25aef
40 changed files with 860 additions and 201 deletions

View File

@@ -0,0 +1,28 @@
package dev.sheldan.abstracto.moderation.model.template.command;
import dev.sheldan.abstracto.core.models.MemberDisplayModel;
import dev.sheldan.abstracto.moderation.model.database.Mute;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.time.Duration;
@Getter
@Setter
@Builder
public class MuteEntry {
/**
* The {@link Mute} of this entry
*/
private Mute mute;
/**
* The {@link MemberDisplayModel} containing information about the user being muted. The member property is null if the user left the server
*/
private MemberDisplayModel mutedUser;
/**
* The {@link MemberDisplayModel} containing information about the user muting. The member property is null if the user left the server
*/
private MemberDisplayModel mutingUser;
private Duration muteDuration;
}

View File

@@ -0,0 +1,15 @@
package dev.sheldan.abstracto.moderation.model.template.command;
import dev.sheldan.abstracto.core.models.context.SlimUserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import java.util.List;
@Getter
@Setter
@SuperBuilder
public class MutesModel extends SlimUserInitiatedServerContext {
private List<MuteEntry> mutes;
}

View File

@@ -1,6 +1,7 @@
package dev.sheldan.abstracto.moderation.service.management;
import dev.sheldan.abstracto.core.models.AServerAChannelMessage;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.moderation.model.database.Mute;
import net.dv8tion.jda.api.entities.Member;
@@ -75,5 +76,18 @@ public interface MuteManagementService {
* @param aUserInAServer The {@link AUserInAServer} to search the active mutes for
* @return A collection of {@link Mute} objects of the user which are active
*/
List<Mute> getAllActiveMutesOf(AUserInAServer aUserInAServer);
/**
* Retrieves all mutes of the given {@link AUserInAServer} in a collection
* @param aUserInAServer The {@link AUserInAServer} to search the mutes for
* @return A collection of {@link Mute} objects of the user
*/
List<Mute> getAllMutesOf(AUserInAServer aUserInAServer);
/**
* Retrieves all {@link Mute} from the given {@link AServer}
* @return All found mutes of this server
*/
List<Mute> getAllMutes(AServer server);
}