changed context handling for command models for logging

added method to convert the user initiated context to a concrete command model
added method to find if a template exists
added method to render a context aware model
added banid command
This commit is contained in:
Sheldan
2020-03-20 09:34:37 +01:00
parent ec21305725
commit c978c1c677
68 changed files with 412 additions and 254 deletions

View File

@@ -1,22 +0,0 @@
package dev.sheldan.abstracto.moderation.models;
import dev.sheldan.abstracto.command.execution.CommandTemplateContext;
import lombok.Builder;
import lombok.Getter;
import net.dv8tion.jda.api.entities.Member;
@Getter
public class BanLog extends CommandTemplateContext {
private String reason;
private Member banningUser;
private Member bannedUser;
@Builder(builderMethodName = "parentBuilder")
public BanLog(CommandTemplateContext commandTemplateContext, Member bannedUser, Member banningUser, String reason) {
super(commandTemplateContext);
this.bannedUser = bannedUser;
this.banningUser = banningUser;
this.reason = reason;
}
}

View File

@@ -1,21 +0,0 @@
package dev.sheldan.abstracto.moderation.models;
import dev.sheldan.abstracto.command.execution.CommandTemplateContext;
import lombok.Builder;
import lombok.Getter;
import net.dv8tion.jda.api.entities.Member;
@Getter
public class KickLogModel extends CommandTemplateContext {
private String reason;
private Member kickingUser;
private Member kickedUser;
@Builder(builderMethodName = "parentBuilder")
public KickLogModel(CommandTemplateContext commandTemplateContext, Member kickedUser, Member kickingUser, String reason) {
super(commandTemplateContext);
this.kickedUser = kickedUser;
this.kickingUser = kickingUser;
this.reason = reason;
}
}

View File

@@ -1,23 +0,0 @@
package dev.sheldan.abstracto.moderation.models;
import dev.sheldan.abstracto.command.execution.CommandTemplateContext;
import lombok.Builder;
import lombok.Getter;
import net.dv8tion.jda.api.entities.Member;
@Getter
public class WarnLog extends CommandTemplateContext {
private Warning warning;
private Member warnedUser;
private Member warningUser;
@Builder(builderMethodName = "parentBuilder")
public WarnLog(CommandTemplateContext commandTemplateContext, Warning warning, Member warnedUser, Member warningUser) {
super(commandTemplateContext);
this.warning = warning;
this.warnedUser = warnedUser;
this.warningUser = warningUser;
}
}

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.moderation.models;
import dev.sheldan.abstracto.core.models.AUserInAServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;

View File

@@ -0,0 +1,19 @@
package dev.sheldan.abstracto.moderation.models.template;
import dev.sheldan.abstracto.core.models.UserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import net.dv8tion.jda.api.entities.Member;
@Getter @SuperBuilder @Setter
public class BanIdLog extends UserInitiatedServerContext {
private String reason;
private Member banningUser;
private Long bannedUserId;
@Override
public String getTemplateSuffix() {
return "";
}
}

View File

@@ -0,0 +1,15 @@
package dev.sheldan.abstracto.moderation.models.template;
import dev.sheldan.abstracto.core.models.UserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import net.dv8tion.jda.api.entities.Member;
@Getter @SuperBuilder @Setter
public class BanLog extends UserInitiatedServerContext {
private String reason;
private Member banningUser;
private Member bannedUser;
}

View File

@@ -0,0 +1,14 @@
package dev.sheldan.abstracto.moderation.models.template;
import dev.sheldan.abstracto.core.models.UserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import net.dv8tion.jda.api.entities.Member;
@Getter @SuperBuilder @Setter
public class KickLogModel extends UserInitiatedServerContext {
private String reason;
private Member kickingUser;
private Member kickedUser;
}

View File

@@ -0,0 +1,18 @@
package dev.sheldan.abstracto.moderation.models.template;
import dev.sheldan.abstracto.core.models.UserInitiatedServerContext;
import dev.sheldan.abstracto.moderation.models.Warning;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import net.dv8tion.jda.api.entities.Member;
@Getter @SuperBuilder @Setter
public class WarnLog extends UserInitiatedServerContext {
private String reason;
private Member warnedUser;
private Member warningUser;
}

View File

@@ -1,5 +1,6 @@
package dev.sheldan.abstracto.moderation.models;
package dev.sheldan.abstracto.moderation.models.template;
import dev.sheldan.abstracto.moderation.models.Warning;
import lombok.Builder;
import lombok.Value;

View File

@@ -1,9 +1,9 @@
package dev.sheldan.abstracto.moderation.service;
import dev.sheldan.abstracto.moderation.models.BanLog;
import dev.sheldan.abstracto.core.models.ServerContext;
import net.dv8tion.jda.api.entities.Member;
public interface BanService {
void banMember(Member member, String reason);
void sendBanLog(BanLog banLog);
void banMember(Member member, String reason, ServerContext banLog);
void banMember(Long guildId, Long userId, String reason, ServerContext banIdLog);
}

View File

@@ -1,9 +1,8 @@
package dev.sheldan.abstracto.moderation.service;
import dev.sheldan.abstracto.moderation.models.KickLogModel;
import dev.sheldan.abstracto.moderation.models.template.KickLogModel;
import net.dv8tion.jda.api.entities.Member;
public interface KickService {
void kickMember(Member member, String reason);
void sendKickLog(KickLogModel kickLogModel);
void kickMember(Member member, String reason, KickLogModel kickLogModel);
}

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.moderation.service;
import dev.sheldan.abstracto.core.models.AChannel;
import dev.sheldan.abstracto.core.models.database.AChannel;
import net.dv8tion.jda.api.entities.TextChannel;
import java.time.Duration;

View File

@@ -1,13 +1,12 @@
package dev.sheldan.abstracto.moderation.service;
import dev.sheldan.abstracto.moderation.models.WarnLog;
import dev.sheldan.abstracto.moderation.models.Warning;
import dev.sheldan.abstracto.core.models.AUserInAServer;
import dev.sheldan.abstracto.core.models.ServerContext;
import dev.sheldan.abstracto.moderation.models.template.WarnLog;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import net.dv8tion.jda.api.entities.Member;
public interface WarnService {
Warning warnUser(AUserInAServer warnedAUser, AUserInAServer warningAUser, String reason);
Warning warnUser(Member warnedUser, Member warningUser, String reason);
void sendWarnLog(WarnLog warnLogModel);
void warnUser(AUserInAServer warnedAUser, AUserInAServer warningAUser, String reason, ServerContext warnLog);
void warnUser(Member warnedUser, Member warningUser, String reason, ServerContext warnLog);
}

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.moderation.service.management;
import dev.sheldan.abstracto.moderation.models.Warning;
import dev.sheldan.abstracto.core.models.AUserInAServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
public interface WarnManagementService {
Warning createWarning(AUserInAServer warnedAUser, AUserInAServer warningAUser, String reason);