Merge pull request 'VelocityCore/PrivateTicketLog' (#61) from VelocityCore/PrivateTicketLog into main

Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/61
Reviewed-by: Lixfel <lixfel@steamwar.de>
This commit is contained in:
Lixfel
2025-01-01 13:00:44 +01:00
@@ -41,12 +41,12 @@ import net.dv8tion.jda.api.interactions.components.ActionRow;
import net.dv8tion.jda.api.interactions.components.buttons.Button; import net.dv8tion.jda.api.interactions.components.buttons.Button;
import net.dv8tion.jda.api.utils.SplitUtil; import net.dv8tion.jda.api.utils.SplitUtil;
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder; import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
import net.dv8tion.jda.api.utils.messages.MessageCreateData;
import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.event.ClickEvent;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.awt.*; import java.awt.*;
import java.time.Instant; import java.time.Instant;
import java.util.Collections;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -112,9 +112,12 @@ public class DiscordTicketHandler extends ListenerAdapter {
.setTimestamp(Instant.now()) .setTimestamp(Instant.now())
.setTitle(event.getChannel().getName()); .setTitle(event.getChannel().getName());
User user;
if(channel.getTopic() != null && !channel.getTopic().isEmpty()) { if(channel.getTopic() != null && !channel.getTopic().isEmpty()) {
User user = event.getJDA().retrieveUserById(channel.getTopic()).complete(); user = event.getJDA().retrieveUserById(channel.getTopic()).complete();
embedBuilder.setAuthor(user.getName(), null, user.getAvatarUrl()); embedBuilder.setAuthor(user.getName(), null, user.getAvatarUrl());
} else {
user = null;
} }
TextChannel logChannel = event.getGuild().getTextChannelById(TICKET_LOG); TextChannel logChannel = event.getGuild().getTextChannelById(TICKET_LOG);
@@ -124,7 +127,14 @@ public class DiscordTicketHandler extends ListenerAdapter {
2000, 2000,
SplitUtil.Strategy.NEWLINE, SplitUtil.Strategy.NEWLINE,
SplitUtil.Strategy.ANYWHERE SplitUtil.Strategy.ANYWHERE
).stream().map(message -> new MessageCreateBuilder().setEmbeds(embedBuilder.setDescription(message).build())).forEach(builder -> logChannel.sendMessage(builder.build()).queue()); ).stream().map(message -> new MessageCreateBuilder().setEmbeds(embedBuilder.setDescription(message).build()))
.forEach(builder -> {
MessageCreateData createData = builder.build();
logChannel.sendMessage(createData).queue();
if (user != null) {
user.openPrivateChannel().queue(privateChannel -> privateChannel.sendMessage(createData).queue());
}
});
Chatter.serverteam().prefixless("DISCORD_TICKET_CLOSED", channel.getName()); Chatter.serverteam().prefixless("DISCORD_TICKET_CLOSED", channel.getName());
channel.delete().reason("Closed").queue(); channel.delete().reason("Closed").queue();