aboutsummaryrefslogtreecommitdiff
path: root/versions/1.12.2-forge/src
diff options
context:
space:
mode:
authorDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-08-19 19:23:39 +0200
committerGitHub <noreply@github.com>2022-08-20 00:23:39 +0700
commit87e7c92526ac894525079305932de80f20372679 (patch)
treee61325d1fe416b1857685d5162bc0a4ac83f8664 /versions/1.12.2-forge/src
parentb6a4394db3dd58f6eea0d45b4e5f6630fc67a328 (diff)
downloadOneConfig-87e7c92526ac894525079305932de80f20372679.tar.gz
OneConfig-87e7c92526ac894525079305932de80f20372679.tar.bz2
OneConfig-87e7c92526ac894525079305932de80f20372679.zip
integrate with forge chat event (#106)
Diffstat (limited to 'versions/1.12.2-forge/src')
-rw-r--r--versions/1.12.2-forge/src/main/java/cc/polyfrost/oneconfig/internal/mixin/EventBusMixin.java (renamed from versions/1.12.2-forge/src/main/java/cc/polyfrost/oneconfig/internal/mixin/NetHandlerPlayClientMixin.java)33
1 files changed, 20 insertions, 13 deletions
diff --git a/versions/1.12.2-forge/src/main/java/cc/polyfrost/oneconfig/internal/mixin/NetHandlerPlayClientMixin.java b/versions/1.12.2-forge/src/main/java/cc/polyfrost/oneconfig/internal/mixin/EventBusMixin.java
index dd801c3..64ca336 100644
--- a/versions/1.12.2-forge/src/main/java/cc/polyfrost/oneconfig/internal/mixin/NetHandlerPlayClientMixin.java
+++ b/versions/1.12.2-forge/src/main/java/cc/polyfrost/oneconfig/internal/mixin/EventBusMixin.java
@@ -24,28 +24,35 @@
* <https://polyfrost.cc/legal/oneconfig/additional-terms>
*/
+//#if FORGE==1
package cc.polyfrost.oneconfig.internal.mixin;
import cc.polyfrost.oneconfig.events.EventManager;
import cc.polyfrost.oneconfig.events.event.ChatReceiveEvent;
-import net.minecraft.client.network.NetHandlerPlayClient;
-import net.minecraft.network.play.server.SPacketChat;
+import net.minecraft.util.text.ChatType;
+import net.minecraftforge.client.event.ClientChatReceivedEvent;
+import net.minecraftforge.fml.common.eventhandler.Event;
+import net.minecraftforge.fml.common.eventhandler.EventBus;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
-@Mixin(value = NetHandlerPlayClient.class, priority = Integer.MAX_VALUE)
-public class NetHandlerPlayClientMixin {
+@Mixin(EventBus.class)
+public class EventBusMixin {
- @Inject(method = "handleChat", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/event/ForgeEventFactory;onClientChat(Lnet/minecraft/util/text/ChatType;Lnet/minecraft/util/text/ITextComponent;)Lnet/minecraft/util/text/ITextComponent;", remap = false), cancellable = true, remap = true)
- private void onClientChat(SPacketChat packetIn, CallbackInfo ci) {
- if (packetIn.getType().getId() == 0) {
- ChatReceiveEvent event = new ChatReceiveEvent(packetIn.getChatComponent());
- EventManager.INSTANCE.post(event);
- if (event.isCancelled) {
- ci.cancel();
+ @Inject(method = "post", at = @At(value = "HEAD"), remap = false)
+ private void post(Event e, CallbackInfoReturnable<Boolean> cir) {
+ if(!(e instanceof ClientChatReceivedEvent)) return;
+ ClientChatReceivedEvent event = (ClientChatReceivedEvent) e;
+ if (event.getType() == ChatType.CHAT) {
+ ChatReceiveEvent customEvent = new ChatReceiveEvent(event.getMessage());
+ EventManager.INSTANCE.post(customEvent);
+ if (customEvent.isCancelled) {
+ e.setCanceled(true);
}
}
}
-} \ No newline at end of file
+}
+
+//#endif \ No newline at end of file