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