mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-21 20:59:05 +00:00
added anonymous message handling to modmail
This commit is contained in:
@@ -400,24 +400,25 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
|
||||
public void sendReply(ModMailThread modMailThread, String text, Message message, PrivateChannel privateChannel, Boolean anonymous, MessageChannel feedBack) {
|
||||
AUserInAServer moderator = userInServerManagementService.loadUser(message.getMember());
|
||||
Member userInGuild = botService.getMemberInServer(modMailThread.getUser());
|
||||
FullUser moderatorUser = FullUser
|
||||
.builder()
|
||||
.aUserInAServer(moderator)
|
||||
.member(message.getMember())
|
||||
.build();
|
||||
Member moderatorMember = botService.getMemberInServer(moderator);
|
||||
FullUser fullThreadUser = FullUser
|
||||
.builder()
|
||||
.aUserInAServer(modMailThread.getUser())
|
||||
.member(userInGuild)
|
||||
.build();
|
||||
ModMailModeratorReplyModel modMailUserReplyModel = ModMailModeratorReplyModel
|
||||
ModMailModeratorReplyModel.ModMailModeratorReplyModelBuilder modMailModeratorReplyModelBuilder = ModMailModeratorReplyModel
|
||||
.builder()
|
||||
.text(text)
|
||||
.modMailThread(modMailThread)
|
||||
.postedMessage(message)
|
||||
.threadUser(fullThreadUser)
|
||||
.moderator(moderatorUser)
|
||||
.build();
|
||||
.anonymous(anonymous)
|
||||
.threadUser(fullThreadUser);
|
||||
if(anonymous) {
|
||||
modMailModeratorReplyModelBuilder.moderator(botService.getBotInGuild(modMailThread.getServer()));
|
||||
} else {
|
||||
modMailModeratorReplyModelBuilder.moderator(moderatorMember);
|
||||
}
|
||||
ModMailModeratorReplyModel modMailUserReplyModel = modMailModeratorReplyModelBuilder.build();
|
||||
MessageToSend messageToSend = templateService.renderEmbedTemplate("modmail_staff_message", modMailUserReplyModel);
|
||||
List<CompletableFuture<Message>> completableFutures = channelService.sendMessageToSendToChannel(messageToSend, privateChannel);
|
||||
CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])).thenAccept(aVoid -> {
|
||||
|
||||
@@ -7,10 +7,15 @@
|
||||
"r": 200,
|
||||
"g": 0,
|
||||
"b": 255
|
||||
},
|
||||
"description": "${message.embeds[0].description}"
|
||||
}
|
||||
<#if message.embeds[0].description?has_content>
|
||||
,"description": "${message.embeds[0].description}"
|
||||
</#if>
|
||||
<#if message.attachments?size gt 0>
|
||||
,"imageUrl": "${message.embeds[0].image.proxyUrl}"
|
||||
</#if>,
|
||||
"timeStamp": "${message.timeCreated}"
|
||||
</#if>
|
||||
<#if modMailMessage.anonymous>
|
||||
, "additionalMessage": "<#include "modmail_anonymous_message_note">"
|
||||
</#if>
|
||||
,"timeStamp": "${message.timeCreated}"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"author": {
|
||||
"name": "${threadUser.member.effectiveName}",
|
||||
"avatar": "${threadUser.member.user.effectiveAvatarUrl}"
|
||||
"name": "${moderator.effectiveName}",
|
||||
"avatar": "${moderator.user.effectiveAvatarUrl}"
|
||||
},
|
||||
"title": {
|
||||
"title": "<#include "modmail_thread_staff_message_title">"
|
||||
@@ -10,9 +10,9 @@
|
||||
"r": 200,
|
||||
"g": 0,
|
||||
"b": 255
|
||||
},
|
||||
}
|
||||
<#if text?has_content>
|
||||
"description": "${text}"
|
||||
, "description": "${text}"
|
||||
</#if>
|
||||
<#if postedMessage.attachments?size gt 0>
|
||||
,"imageUrl": "${postedMessage.attachments[0].proxyUrl}"
|
||||
|
||||
@@ -5,6 +5,7 @@ import dev.sheldan.abstracto.modmail.models.database.ModMailThread;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
@Getter
|
||||
@@ -12,8 +13,9 @@ import net.dv8tion.jda.api.entities.Message;
|
||||
@Builder
|
||||
public class ModMailModeratorReplyModel {
|
||||
private FullUser threadUser;
|
||||
private FullUser moderator;
|
||||
private Member moderator;
|
||||
private String text;
|
||||
private Message postedMessage;
|
||||
private Boolean anonymous;
|
||||
private ModMailThread modMailThread;
|
||||
}
|
||||
|
||||
@@ -149,6 +149,16 @@ public class BotServiceBean implements BotService {
|
||||
return instance.getGuildById(serverId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Member getBotInGuild(AServer server) {
|
||||
Optional<Guild> guildOptional = getGuildById(server.getId());
|
||||
if(guildOptional.isPresent()) {
|
||||
Guild guild = guildOptional.get();
|
||||
return guild.getMemberById(instance.getSelfUser().getId());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shutdown() {
|
||||
|
||||
|
||||
@@ -29,5 +29,6 @@ public interface BotService {
|
||||
Optional<TextChannel> getTextChannelFromServer(Long serverId, Long textChannelId);
|
||||
Optional<Guild> getGuildById(Long serverId);
|
||||
Guild getGuildByIdNullable(Long serverId);
|
||||
Member getBotInGuild(AServer server);
|
||||
void shutdown();
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
This message was sent anonymous.
|
||||
Reference in New Issue
Block a user