From ebcce14b5f0c76a92e8143f7c92523342fa86eaf Mon Sep 17 00:00:00 2001 From: unilock Date: Sat, 6 Apr 2024 09:22:02 -0400 Subject: [PATCH] Treat Discord username, nickname, message as literal text Prevents parsing tags unintentionally Signed-off-by: unilock --- .../cc/unilock/nilcord/util/TextUtils.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/cc/unilock/nilcord/util/TextUtils.java b/src/main/java/cc/unilock/nilcord/util/TextUtils.java index fd0c813..546c8e9 100644 --- a/src/main/java/cc/unilock/nilcord/util/TextUtils.java +++ b/src/main/java/cc/unilock/nilcord/util/TextUtils.java @@ -26,14 +26,14 @@ public static Text parseDiscordMessage(String template, String attachmentChunk, template = template .replace("", attachmentChunk) .replace("", usernameChunk) - .replace("", author.getName()) - .replace("", member.getEffectiveName()) .replace("", ColorUtils.getHexColor(member)) - .replace("", message.getContentDisplay()) .replace("", message.getJumpUrl()); Map placeholders = Map.of( - "reply_format", replyChunk + "reply_format", replyChunk, + "username", Text.literal(author.getName()), + "nickname", Text.literal(member.getEffectiveName()), + "message", Text.literal(message.getContentDisplay()) ); return Placeholders.parseText(parse(template), ANGLE_BRACKETS, placeholders); @@ -44,13 +44,16 @@ public static Text parseDiscordReply(String template, Message refMessage) { Member refMember = refMessage.getMember(); template = template - .replace("", refAuthor.getName()) - .replace("", refMember == null ? refAuthor.getEffectiveName() : refMember.getEffectiveName()) .replace("", refMember == null ? ColorUtils.WHITE : ColorUtils.getHexColor(refMember)) - .replace("", refMessage.getContentDisplay()) .replace("", refMessage.getJumpUrl()); - return parse(template); + Map placeholders = Map.of( + "reply_username", Text.literal(refAuthor.getName()), + "reply_nickname", Text.literal(refMember == null ? refAuthor.getEffectiveName() : refMember.getEffectiveName()), + "reply_message", Text.literal(refMessage.getContentDisplay()) + ); + + return Placeholders.parseText(parse(template), ANGLE_BRACKETS, placeholders); } public static Text parsePlayer(String template, ServerPlayerEntity player) {