diff --git a/build-number.txt b/build-number.txt index 28a0b015..6cacbad9 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -1356 \ No newline at end of file +1359 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/command/DiscordCommandContext.java b/src/main/java/me/chayapak1/chomens_bot/command/DiscordCommandContext.java index 8bc03bd0..6874c305 100644 --- a/src/main/java/me/chayapak1/chomens_bot/command/DiscordCommandContext.java +++ b/src/main/java/me/chayapak1/chomens_bot/command/DiscordCommandContext.java @@ -1,18 +1,20 @@ package me.chayapak1.chomens_bot.command; -import org.geysermc.mcprotocollib.auth.GameProfile; -import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; +import me.chayapak1.chomens_bot.Bot; import me.chayapak1.chomens_bot.data.PlayerEntry; import me.chayapak1.chomens_bot.util.CodeBlockUtilities; -import me.chayapak1.chomens_bot.Bot; import me.chayapak1.chomens_bot.util.ComponentUtilities; +import me.chayapak1.chomens_bot.util.UUIDUtilities; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.utils.FileUpload; import net.kyori.adventure.text.Component; +import org.geysermc.mcprotocollib.auth.GameProfile; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; import java.awt.*; -import java.util.UUID; +import java.nio.charset.StandardCharsets; public class DiscordCommandContext extends CommandContext { private final MessageReceivedEvent event; @@ -25,7 +27,7 @@ public class DiscordCommandContext extends CommandContext { prefix, new PlayerEntry( new GameProfile( - UUID.nameUUIDFromBytes(("OfflinePlayer:" + event.getAuthor().getName()).getBytes()), + UUIDUtilities.getOfflineUUID(event.getAuthor().getName()), event.getAuthor().getName() ), GameMode.SURVIVAL, @@ -44,15 +46,27 @@ public class DiscordCommandContext extends CommandContext { @Override public void sendOutput (Component component) { - final String output = ComponentUtilities.stringifyAnsi(component); - final EmbedBuilder builder = new EmbedBuilder(); - builder.setTitle("Output"); - builder.setColor(Color.decode(bot.config.discord.embedColors.normal)); - builder.setDescription("```ansi\n" + CodeBlockUtilities.escape(output.replace("\u001b[9", "\u001b[3")) + "\n```"); + String output = ComponentUtilities.stringifyDiscordAnsi(component); - final MessageEmbed embed = builder.build(); + if (output.length() > 2048) { + output = ComponentUtilities.stringify(component); - event.getMessage().replyEmbeds(embed).queue(); + event.getMessage().replyFiles( + FileUpload.fromData( + output.getBytes(StandardCharsets.UTF_8), + String.format("output-%d.txt", System.currentTimeMillis()) + ) + ).queue(); + } else { + final EmbedBuilder builder = new EmbedBuilder(); + builder.setTitle("Output"); + builder.setColor(Color.decode(bot.config.discord.embedColors.normal)); + builder.setDescription("```ansi\n" + CodeBlockUtilities.escape(output) + "\n```"); + + final MessageEmbed embed = builder.build(); + + event.getMessage().replyEmbeds(embed).queue(); + } } @Override diff --git a/src/main/java/me/chayapak1/chomens_bot/command/IRCCommandContext.java b/src/main/java/me/chayapak1/chomens_bot/command/IRCCommandContext.java index ef20b024..5990f446 100644 --- a/src/main/java/me/chayapak1/chomens_bot/command/IRCCommandContext.java +++ b/src/main/java/me/chayapak1/chomens_bot/command/IRCCommandContext.java @@ -1,5 +1,6 @@ package me.chayapak1.chomens_bot.command; +import me.chayapak1.chomens_bot.util.UUIDUtilities; import org.geysermc.mcprotocollib.auth.GameProfile; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; import me.chayapak1.chomens_bot.Bot; @@ -19,7 +20,7 @@ public class IRCCommandContext extends CommandContext { prefix, new PlayerEntry( new GameProfile( - UUID.nameUUIDFromBytes(("OfflinePlayer:" + nickName).getBytes()), + UUIDUtilities.getOfflineUUID(nickName), nickName ), GameMode.SURVIVAL, diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/GrepLogPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/GrepLogPlugin.java index 6ad2788d..ac1204cf 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/GrepLogPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/GrepLogPlugin.java @@ -98,7 +98,7 @@ public class GrepLogPlugin { .addFiles( FileUpload.fromData( // as of the time writing this, discord has an 8 MB file size limit for bots - StringUtilities.truncateToFitUtf8ByteLength(stringifiedResult, 8 * 1000 * 1000).getBytes(), + StringUtilities.truncateToFitUtf8ByteLength(stringifiedResult, 8 * 1000 * 1000).getBytes(StandardCharsets.UTF_8), String.format("result-%d.txt", System.currentTimeMillis() / 1000) ) )