mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-13 19:41:38 +00:00
upgraded spring boot starter version
added gson dependency added logging the exception in the exception post executor added configuration exception in case the configuration for posttargets is not correct added support to send embeds to posttargets changed interface to be a warnlog instead of a server context for warning users, because the template changed freemarker Incompatible Improvements to support default methods in interfaces added ability to define embed configurations to be used, in order for a template to only be configurable as a template changed template content size to 4000 characters
This commit is contained in:
@@ -2,9 +2,7 @@ package dev.sheldan.abstracto.moderation.command;
|
||||
|
||||
import dev.sheldan.abstracto.command.execution.*;
|
||||
import dev.sheldan.abstracto.moderation.Moderation;
|
||||
import dev.sheldan.abstracto.moderation.models.template.BanIdLog;
|
||||
import dev.sheldan.abstracto.moderation.models.template.WarnLog;
|
||||
import dev.sheldan.abstracto.moderation.models.Warning;
|
||||
import dev.sheldan.abstracto.moderation.service.WarnService;
|
||||
import dev.sheldan.abstracto.command.Command;
|
||||
import dev.sheldan.abstracto.command.HelpInfo;
|
||||
@@ -41,6 +39,7 @@ public class Warn implements Command {
|
||||
warnLogModel.setWarnedUser(member);
|
||||
warnLogModel.setReason(reason);
|
||||
warnLogModel.setWarningUser(commandContext.getAuthor());
|
||||
warnLogModel.setMessageLink(commandContext.getMessage().getJumpUrl());
|
||||
warnService.warnUser(member, commandContext.getAuthor(), reason, warnLogModel);
|
||||
return Result.fromSuccess();
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -49,7 +50,7 @@ public class WarnServiceBean implements WarnService {
|
||||
private static final String WARN_NOTIFICATION_TEMPLATE = "warn_notification";
|
||||
|
||||
@Override
|
||||
public void warnUser(AUserInAServer warnedAUserInAServer, AUserInAServer warningAUserInAServer, String reason, ServerContext warnLog) {
|
||||
public void warnUser(AUserInAServer warnedAUserInAServer, AUserInAServer warningAUserInAServer, String reason, WarnLog warnLog) {
|
||||
AUser warningAUser = warningAUserInAServer.getUserReference();
|
||||
AUser warnedAUser = warnedAUserInAServer.getUserReference();
|
||||
AServer serverOfWarning = warnedAUserInAServer.getServerReference();
|
||||
@@ -72,18 +73,21 @@ public class WarnServiceBean implements WarnService {
|
||||
} else {
|
||||
log.warn("Unable to find user {} in guild {} to warn.", warnedAUser.getId(), serverOfWarning.getId());
|
||||
}
|
||||
warnLog.setWarning(warning);
|
||||
this.sendWarnLog(warnLog);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warnUser(Member warnedMember, Member warningMember, String reason, ServerContext warnLog) {
|
||||
public void warnUser(Member warnedMember, Member warningMember, String reason, WarnLog warnLog) {
|
||||
AUserInAServer warnedAUser = userManagementService.loadUser(warnedMember);
|
||||
AUserInAServer warningAUser = userManagementService.loadUser(warningMember);
|
||||
this.warnUser(warnedAUser, warningAUser, reason, warnLog);
|
||||
}
|
||||
|
||||
public void sendWarnLog(ServerContext warnLogModel) {
|
||||
private void sendWarnLog(ServerContext warnLogModel) {
|
||||
String warnLogMessage = templateService.renderContextAwareTemplate(WARN_LOG_TEMPLATE, warnLogModel);
|
||||
postTargetService.sendTextInPostTarget(warnLogMessage, PostTarget.WARN_LOG, warnLogModel.getServer().getId());
|
||||
MessageEmbed embed = templateService.renderEmbedTemplate("warn_log", warnLogModel);
|
||||
postTargetService.sendEmbedInPostTarget(embed, PostTarget.WARN_LOG, warnLogModel.getServer().getId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"author": {
|
||||
"name": "${warnedUser.effectiveName}",
|
||||
"avatar": "${warnedUser.user.effectiveAvatarUrl}"
|
||||
},
|
||||
"title": {
|
||||
"title": "User has been warned"
|
||||
},
|
||||
"color" : {
|
||||
"r": 200,
|
||||
"g": 0,
|
||||
"b": 255
|
||||
},
|
||||
"fields": [
|
||||
{
|
||||
"name": "Warned User",
|
||||
"value": "${warnedUser.effectiveName} ${warnedUser.asMention} (${warnedUser.idLong?c})"
|
||||
},
|
||||
<#if warningUser?has_content>
|
||||
{
|
||||
"name": "Warned by",
|
||||
"value": "${warningUser.effectiveName} ${warningUser.asMention} (${warningUser.idLong?c})"
|
||||
},
|
||||
</#if>
|
||||
<#if warning?has_content>
|
||||
{
|
||||
"name": "Location of the incident",
|
||||
"value": "[${textChannel.name}](${messageLink})"
|
||||
},
|
||||
</#if>
|
||||
{
|
||||
"name": "Reason",
|
||||
"value": "${reason}"
|
||||
}
|
||||
],
|
||||
"footer": {
|
||||
<#if warningUser?has_content>
|
||||
"text": "Warning #${warning.id}"
|
||||
</#if>
|
||||
}
|
||||
}
|
||||
@@ -14,5 +14,6 @@ public class WarnLog extends UserInitiatedServerContext {
|
||||
private String reason;
|
||||
private Member warnedUser;
|
||||
private Member warningUser;
|
||||
|
||||
private String messageLink;
|
||||
private Warning warning;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,6 @@ import net.dv8tion.jda.api.entities.Member;
|
||||
|
||||
|
||||
public interface WarnService {
|
||||
void warnUser(AUserInAServer warnedAUser, AUserInAServer warningAUser, String reason, ServerContext warnLog);
|
||||
void warnUser(Member warnedUser, Member warningUser, String reason, ServerContext warnLog);
|
||||
void warnUser(AUserInAServer warnedAUser, AUserInAServer warningAUser, String reason, WarnLog warnLog);
|
||||
void warnUser(Member warnedUser, Member warningUser, String reason, WarnLog warnLog);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user