Add Message Spliting #240
@ -75,29 +75,40 @@ public class DiscordTicketListener extends BasicDiscordListener {
|
||||
} else if(event.getComponentId().startsWith("close-")) {
|
||||
TextChannel logChannel = event.getGuild().getTextChannelById(SteamwarDiscordBotConfig.TICKET_LOG);
|
||||
|
||||
MessageBuilder builder = new MessageBuilder();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
LinkedList<StringBuilder> stringBuilders = new LinkedList<>();
|
||||
stringBuilders.add(new StringBuilder());
|
||||
|
||||
new LinkedList<>(event.getTextChannel().getIterableHistory().complete()).descendingIterator().forEachRemaining(message -> {
|
||||
if(message.getAuthor().isSystem() || message.getAuthor().isBot()) return;
|
||||
stringBuilder.append("<t:").append(message.getTimeCreated().toInstant().getEpochSecond()).append("> ")
|
||||
StringBuilder currentBuilder = new StringBuilder();
|
||||
currentBuilder.append("<t:").append(message.getTimeCreated().toInstant().getEpochSecond()).append("> ")
|
||||
.append("**")
|
||||
.append(message.getAuthor().getName())
|
||||
.append("**: ")
|
||||
.append(message.getContentRaw());
|
||||
if(!message.getAttachments().isEmpty()) {
|
||||
stringBuilder.append("\n")
|
||||
currentBuilder.append("\n")
|
||||
.append("Files: ").append("\n");
|
||||
message.getAttachments().forEach(attachment -> stringBuilder.append(attachment.getUrl()).append("\n"));
|
||||
message.getAttachments().forEach(attachment -> currentBuilder.append(attachment.getUrl()).append("\n"));
|
||||
}
|
||||
|
||||
stringBuilder.append("\n");
|
||||
currentBuilder.append("\n");
|
||||
if(currentBuilder.length() >= 4096) {
|
||||
stringBuilders.getLast().append(currentBuilder.substring(0, 4090));
|
||||
stringBuilders.add(new StringBuilder(currentBuilder.substring(4090, currentBuilder.length() - 1)));
|
||||
} else if (currentBuilder.length() + stringBuilders.getLast().length() >= 4096) {
|
||||
stringBuilders.add(new StringBuilder(currentBuilder.toString()));
|
||||
} else {
|
||||
stringBuilders.getLast().append(currentBuilder);
|
||||
}
|
||||
});
|
||||
|
||||
stringBuilder.append("\n");
|
||||
stringBuilder.append("<t:").append(Instant.now().getEpochSecond()).append("> ")
|
||||
.append("**").append(event.getUser().getName()).append("**: ")
|
||||
.append("Ticket geschlossen");
|
||||
String footer = "<t:" + Instant.now().getEpochSecond() + "> **" + event.getUser().getName() + "**: Ticket geschlossen";
|
||||
if(stringBuilders.getLast().length() + footer.length() > 4090) {
|
||||
stringBuilders.add(new StringBuilder(footer));
|
||||
} else {
|
||||
stringBuilders.getLast().append(footer);
|
||||
}
|
||||
|
||||
EmbedBuilder embedBuilder = new EmbedBuilder();
|
||||
embedBuilder.setColor(Color.GREEN);
|
||||
@ -107,11 +118,13 @@ public class DiscordTicketListener extends BasicDiscordListener {
|
||||
embedBuilder.setAuthor(user.getName(), swuser==null?"https://steamwar.de/":("https://steamwar.de/users/" + swuser.getUserName().toLowerCase() + "/"), user.getAvatarUrl());
|
||||
embedBuilder.setTimestamp(Instant.now());
|
||||
embedBuilder.setTitle(event.getTextChannel().getName());
|
||||
embedBuilder.setDescription(stringBuilder);
|
||||
stringBuilders.forEach(stringBuilder -> {
|
||||
embedBuilder.setDescription(stringBuilder.toString());
|
||||
MessageBuilder builder = new MessageBuilder();
|
||||
builder.setEmbeds(embedBuilder.build());
|
||||
|
||||
builder.setEmbeds(embedBuilder.build());
|
||||
|
||||
logChannel.sendMessage(builder.build()).complete();
|
||||
logChannel.sendMessage(builder.build()).queue();
|
||||
});
|
||||
|
||||
Message.team("DISCORD_TICKET_CLOSED", event.getTextChannel().getName());
|
||||
event.getTextChannel().delete().reason("Closed").queue();
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren