From 0e4a46f98a2103a526b5a8939aaef9585123b4e5 Mon Sep 17 00:00:00 2001 From: HypherionMC Date: Tue, 2 Jan 2024 08:29:01 +0200 Subject: [PATCH] [BUG] Fix MessageBroadcastEvent using the wrong thread context (SDLink) --- .../craterlib/api/event/server/MessageBroadcastEvent.java | 8 +++++++- .../craterlib/mixin/events/PlayerListMixin.java | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/MessageBroadcastEvent.java b/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/MessageBroadcastEvent.java index ac3a71d..da622e0 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/MessageBroadcastEvent.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/MessageBroadcastEvent.java @@ -11,11 +11,13 @@ public class MessageBroadcastEvent extends CraterEvent { private final Component component; private final UUID uuid; private final ChatType bl; + private final String threadName; - public MessageBroadcastEvent(Component component, UUID uuid, ChatType bl) { + public MessageBroadcastEvent(Component component, UUID uuid, ChatType bl, String threadName) { this.component = component; this.uuid = uuid; this.bl = bl; + this.threadName = threadName; } public Component getComponent() { @@ -30,6 +32,10 @@ public class MessageBroadcastEvent extends CraterEvent { return uuid; } + public String getThreadName() { + return threadName; + } + @Override public boolean canCancel() { return false; diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerListMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerListMixin.java index e98d039..9e9b2be 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerListMixin.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerListMixin.java @@ -24,7 +24,8 @@ public class PlayerListMixin { @Inject(method = "broadcastMessage(Lnet/minecraft/network/chat/Component;Lnet/minecraft/network/chat/ChatType;Ljava/util/UUID;)V", at = @At("HEAD")) private void injectBroadcast(Component component, ChatType chatType, UUID uUID, CallbackInfo ci) { - MessageBroadcastEvent event = new MessageBroadcastEvent(component, uUID, chatType); + String thread = Thread.currentThread().getStackTrace()[3].getClassName(); + MessageBroadcastEvent event = new MessageBroadcastEvent(component, uUID, chatType, thread); CraterEventBus.INSTANCE.postEvent(event); }