update chomens chat parser

This commit is contained in:
Chayapak 2023-05-11 13:16:16 +07:00
parent eb78e8de5c
commit 0ad227acae

View file

@ -7,8 +7,10 @@ import land.chipmunk.chipmunkbot.data.chat.SystemChatParser;
import land.chipmunk.chipmunkbot.util.ComponentUtilities; import land.chipmunk.chipmunkbot.util.ComponentUtilities;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TranslatableComponent; import net.kyori.adventure.text.TranslatableComponent;
import net.kyori.adventure.text.event.HoverEvent;
import java.util.List; import java.util.List;
import java.util.UUID;
// ported from chomens sex bot // ported from chomens sex bot
public class ChomeNSCustomChatParser implements SystemChatParser { public class ChomeNSCustomChatParser implements SystemChatParser {
@ -29,14 +31,22 @@ public class ChomeNSCustomChatParser implements SystemChatParser {
final List<Component> args = message.args(); final List<Component> args = message.args();
if (args.size() < 3 || (!message.key().equals("[%s] %s %s") && !message.key().equals("%s %s %s"))) return null; if (args.size() < 3 || (!message.key().equals("[%s] %s %s") && !message.key().equals("%s %s %s"))) return null;
final Component username = args.get(1); final Component senderComponent = args.get(1);
final Component contents = args.get(2); final Component contents = args.get(2);
final String stringUsername = ComponentUtilities.stringify(username); MutablePlayerListEntry sender;
MutablePlayerListEntry sender = client.playerList().getEntry(stringUsername); final HoverEvent<?> hoverEvent = senderComponent.hoverEvent();
if (hoverEvent != null && hoverEvent.action().equals(HoverEvent.Action.SHOW_ENTITY)) {
HoverEvent.ShowEntity entityInfo = (HoverEvent.ShowEntity) hoverEvent.value();
final UUID senderUUID = entityInfo.id();
sender = client.playerList().getEntry(senderUUID);
} else {
final String stringUsername = ComponentUtilities.stringify(senderComponent);
sender = client.playerList().getEntry(stringUsername);
}
if (sender == null) return null; if (sender == null) return null;
return new PlayerMessage(sender, contents, "minecraft:chat", username); return new PlayerMessage(sender, contents, "minecraft:chat", senderComponent);
} }
} }