]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Tidy up Mixins
authorIrtimaled <irtimaled@gmail.com>
Mon, 25 May 2020 23:45:04 +0000 (16:45 -0700)
committerIrtimaled <irtimaled@gmail.com>
Tue, 26 May 2020 05:23:37 +0000 (22:23 -0700)
28 files changed:
src/main/java/com/irtimaled/bbor/mixin/client/MixinGameSettings.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/client/entity/MixinEntityPlayerSP.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/entity/player/MixinClientPlayerEntity.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/client/gui/MixinGuiChat.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/gui/MixinGuiOptions.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/gui/screen/MixinChatScreen.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/client/gui/screen/MixinOptionsScreen.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/client/multiplayer/MixinWorldClient.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerLoginClient.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerPlayClient.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/network/login/MixinClientLoginNetHandler.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/client/network/play/MixinClientPlayNetHandler.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/client/renderer/MixinEntityRenderer.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/renderer/MixinGameRenderer.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/client/settings/MixinGameSettings.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/world/MixinClientWorld.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/network/play/client/MixinCCustomPayloadPacket.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/network/play/client/MixinCPacketCustomPayload.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSChatPacket.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSChunkDataPacket.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSCommandListPacket.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSCustomPayloadPlayPacket.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketChat.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCommandList.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketSpawnPosition.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSSpawnPositionPacket.java [new file with mode: 0644]
src/main/resources/mixins.bbor.json

diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/MixinGameSettings.java b/src/main/java/com/irtimaled/bbor/mixin/client/MixinGameSettings.java
new file mode 100644 (file)
index 0000000..678a16b
--- /dev/null
@@ -0,0 +1,36 @@
+package com.irtimaled.bbor.mixin.client;
+
+import com.irtimaled.bbor.client.ClientProxy;
+import com.irtimaled.bbor.client.keyboard.KeyListener;
+import net.minecraft.client.GameSettings;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.settings.KeyBinding;
+import org.apache.commons.lang3.ArrayUtils;
+import org.spongepowered.asm.mixin.Final;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Mutable;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+import java.io.File;
+
+@Mixin(GameSettings.class)
+public abstract class MixinGameSettings {
+    @Mutable
+    @Final
+    @Shadow
+    public KeyBinding[] keyBindings;
+
+    @Shadow
+    public abstract void loadOptions();
+
+    @Inject(method = "<init>", at = @At("RETURN"))
+    private void init(Minecraft minecraft, File file, CallbackInfo ci) {
+        ClientProxy.registerKeyBindings();
+        keyBindings = ArrayUtils.addAll(keyBindings, KeyListener.keyBindings());
+        this.loadOptions();
+    }
+
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/entity/MixinEntityPlayerSP.java b/src/main/java/com/irtimaled/bbor/mixin/client/entity/MixinEntityPlayerSP.java
deleted file mode 100644 (file)
index eb155b7..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.irtimaled.bbor.mixin.client.entity;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.client.entity.player.ClientPlayerEntity;
-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;
-
-@Mixin(ClientPlayerEntity.class)
-public abstract class MixinEntityPlayerSP {
-    @Inject(method = "sendChatMessage", at = @At("HEAD"), cancellable = true)
-    private void sendChatMessage(String message, CallbackInfo ci) {
-        if (ClientInterop.interceptChatMessage(message))
-            ci.cancel();
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/entity/player/MixinClientPlayerEntity.java b/src/main/java/com/irtimaled/bbor/mixin/client/entity/player/MixinClientPlayerEntity.java
new file mode 100644 (file)
index 0000000..ad0aa28
--- /dev/null
@@ -0,0 +1,17 @@
+package com.irtimaled.bbor.mixin.client.entity.player;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import net.minecraft.client.entity.player.ClientPlayerEntity;
+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;
+
+@Mixin(ClientPlayerEntity.class)
+public class MixinClientPlayerEntity {
+    @Inject(method = "sendChatMessage", at = @At("HEAD"), cancellable = true)
+    private void sendChatMessage(String message, CallbackInfo ci) {
+        if (ClientInterop.interceptChatMessage(message))
+            ci.cancel();
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/gui/MixinGuiChat.java b/src/main/java/com/irtimaled/bbor/mixin/client/gui/MixinGuiChat.java
deleted file mode 100644 (file)
index 2b11c83..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.irtimaled.bbor.mixin.client.gui;
-
-import com.irtimaled.bbor.client.gui.ListScreen;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.screen.ChatScreen;
-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.CallbackInfoReturnable;
-
-@Mixin(ChatScreen.class)
-public class MixinGuiChat {
-    @Inject(method = "keyPressed", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;displayGuiScreen(Lnet/minecraft/client/gui/screen/Screen;)V", shift = At.Shift.BEFORE), cancellable = true)
-    private void keyPressed(CallbackInfoReturnable<Boolean> cir) {
-        if (Minecraft.getInstance().currentScreen instanceof ListScreen) {
-            cir.setReturnValue(true);
-            cir.cancel();
-        }
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/gui/MixinGuiOptions.java b/src/main/java/com/irtimaled/bbor/mixin/client/gui/MixinGuiOptions.java
deleted file mode 100644 (file)
index 5ba8d56..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.irtimaled.bbor.mixin.client.gui;
-
-import com.irtimaled.bbor.client.gui.SettingsScreenButton;
-import net.minecraft.client.gui.screen.OptionsScreen;
-import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.gui.widget.Widget;
-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;
-
-@Mixin(OptionsScreen.class)
-public class MixinGuiOptions extends Screen {
-    private MixinGuiOptions() {
-        super(null);
-    }
-
-    @Inject(method = "init", at = @At("RETURN"))
-    private void initGui(CallbackInfo ci) {
-        //shuffle middle buttons up by 12 px to make space
-        int top = this.height / 6 + 42;
-        int bottom = this.height / 6 + 168;
-
-        for (Widget button : buttons) {
-            if (button.y >= top && button.y < bottom)
-                button.y -= 12;
-        }
-        SettingsScreenButton button = new SettingsScreenButton(this.width / 2 - 155, top + 84, 150, "BBOR", this);
-        this.buttons.add(this.buttons.size() - 1, button);
-        this.children.add(this.children.size() - 1, button);
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/gui/screen/MixinChatScreen.java b/src/main/java/com/irtimaled/bbor/mixin/client/gui/screen/MixinChatScreen.java
new file mode 100644 (file)
index 0000000..a348566
--- /dev/null
@@ -0,0 +1,20 @@
+package com.irtimaled.bbor.mixin.client.gui.screen;
+
+import com.irtimaled.bbor.client.gui.ListScreen;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.screen.ChatScreen;
+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.CallbackInfoReturnable;
+
+@Mixin(ChatScreen.class)
+public class MixinChatScreen {
+    @Inject(method = "keyPressed", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;displayGuiScreen(Lnet/minecraft/client/gui/screen/Screen;)V", shift = At.Shift.BEFORE), cancellable = true)
+    private void keyPressed(CallbackInfoReturnable<Boolean> cir) {
+        if (Minecraft.getInstance().currentScreen instanceof ListScreen) {
+            cir.setReturnValue(true);
+            cir.cancel();
+        }
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/gui/screen/MixinOptionsScreen.java b/src/main/java/com/irtimaled/bbor/mixin/client/gui/screen/MixinOptionsScreen.java
new file mode 100644 (file)
index 0000000..39e07f2
--- /dev/null
@@ -0,0 +1,32 @@
+package com.irtimaled.bbor.mixin.client.gui.screen;
+
+import com.irtimaled.bbor.client.gui.SettingsScreenButton;
+import net.minecraft.client.gui.screen.OptionsScreen;
+import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.client.gui.widget.Widget;
+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;
+
+@Mixin(OptionsScreen.class)
+public class MixinOptionsScreen extends Screen {
+    private MixinOptionsScreen() {
+        super(null);
+    }
+
+    @Inject(method = "init", at = @At("RETURN"))
+    private void initGui(CallbackInfo ci) {
+        //shuffle middle buttons up by 12 px to make space
+        int top = this.height / 6 + 42;
+        int bottom = this.height / 6 + 168;
+
+        for (Widget button : buttons) {
+            if (button.y >= top && button.y < bottom)
+                button.y -= 12;
+        }
+        SettingsScreenButton button = new SettingsScreenButton(this.width / 2 - 155, top + 84, 150, "BBOR", this);
+        this.buttons.add(this.buttons.size() - 1, button);
+        this.children.add(this.children.size() - 1, button);
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/multiplayer/MixinWorldClient.java b/src/main/java/com/irtimaled/bbor/mixin/client/multiplayer/MixinWorldClient.java
deleted file mode 100644 (file)
index 7796ba7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.irtimaled.bbor.mixin.client.multiplayer;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.client.world.ClientWorld;
-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;
-
-@Mixin(ClientWorld.class)
-public class MixinWorldClient {
-    @Inject(method = "sendQuittingDisconnectingPacket", at = @At("RETURN"))
-    private void sendQuittingDisconnectingPacket(CallbackInfo ci) {
-        ClientInterop.disconnectedFromRemoteServer();
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerLoginClient.java b/src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerLoginClient.java
deleted file mode 100644 (file)
index e85bde1..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.irtimaled.bbor.mixin.client.network;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.client.network.login.ClientLoginNetHandler;
-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;
-
-@Mixin(ClientLoginNetHandler.class)
-public abstract class MixinNetHandlerLoginClient {
-    @Inject(method = "onDisconnect", at = @At("HEAD"))
-    private void onDisconnect(CallbackInfo ci) {
-        ClientInterop.disconnectedFromRemoteServer();
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerPlayClient.java b/src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerPlayClient.java
deleted file mode 100644 (file)
index d76ee62..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.irtimaled.bbor.mixin.client.network;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.client.network.play.ClientPlayNetHandler;
-import net.minecraft.network.play.server.SChunkDataPacket;
-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;
-
-@Mixin(ClientPlayNetHandler.class)
-public class MixinNetHandlerPlayClient {
-    @Inject(method = "onDisconnect", at = @At("HEAD"))
-    private void onDisconnect(CallbackInfo ci) {
-        ClientInterop.disconnectedFromRemoteServer();
-    }
-
-    @Inject(method = "handleChunkData", at = @At("RETURN"))
-    private void onChunkData(SChunkDataPacket packet, CallbackInfo ci) {
-        ClientInterop.receivedChunk(packet.getChunkX(), packet.getChunkZ());
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/network/login/MixinClientLoginNetHandler.java b/src/main/java/com/irtimaled/bbor/mixin/client/network/login/MixinClientLoginNetHandler.java
new file mode 100644 (file)
index 0000000..69fc156
--- /dev/null
@@ -0,0 +1,16 @@
+package com.irtimaled.bbor.mixin.client.network.login;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import net.minecraft.client.network.login.ClientLoginNetHandler;
+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;
+
+@Mixin(ClientLoginNetHandler.class)
+public class MixinClientLoginNetHandler {
+    @Inject(method = "onDisconnect", at = @At("HEAD"))
+    private void onDisconnect(CallbackInfo ci) {
+        ClientInterop.disconnectedFromRemoteServer();
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/network/play/MixinClientPlayNetHandler.java b/src/main/java/com/irtimaled/bbor/mixin/client/network/play/MixinClientPlayNetHandler.java
new file mode 100644 (file)
index 0000000..64232ba
--- /dev/null
@@ -0,0 +1,16 @@
+package com.irtimaled.bbor.mixin.client.network.play;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import net.minecraft.client.network.play.ClientPlayNetHandler;
+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;
+
+@Mixin(ClientPlayNetHandler.class)
+public class MixinClientPlayNetHandler {
+    @Inject(method = "onDisconnect", at = @At("HEAD"))
+    private void onDisconnect(CallbackInfo ci) {
+        ClientInterop.disconnectedFromRemoteServer();
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/renderer/MixinEntityRenderer.java b/src/main/java/com/irtimaled/bbor/mixin/client/renderer/MixinEntityRenderer.java
deleted file mode 100644 (file)
index f7ab468..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.irtimaled.bbor.mixin.client.renderer;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.renderer.GameRenderer;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(GameRenderer.class)
-public class MixinEntityRenderer {
-    @Shadow
-    @Final
-    private Minecraft mc;
-
-    @Inject(method = "updateCameraAndRender(FJ)V", at = @At(value = "INVOKE_STRING", target = "Lnet/minecraft/profiler/IProfiler;endStartSection(Ljava/lang/String;)V", args = "ldc=hand", shift = At.Shift.BEFORE))
-    private void render(float partialTicks, long ignored, CallbackInfo ci) {
-        ClientInterop.render(partialTicks, this.mc.player);
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/renderer/MixinGameRenderer.java b/src/main/java/com/irtimaled/bbor/mixin/client/renderer/MixinGameRenderer.java
new file mode 100644 (file)
index 0000000..815bfe4
--- /dev/null
@@ -0,0 +1,23 @@
+package com.irtimaled.bbor.mixin.client.renderer;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.GameRenderer;
+import org.spongepowered.asm.mixin.Final;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(GameRenderer.class)
+public class MixinGameRenderer {
+    @Shadow
+    @Final
+    private Minecraft mc;
+
+    @Inject(method = "updateCameraAndRender(FJ)V", at = @At(value = "INVOKE_STRING", target = "Lnet/minecraft/profiler/IProfiler;endStartSection(Ljava/lang/String;)V", args = "ldc=hand", shift = At.Shift.BEFORE))
+    private void render(float partialTicks, long ignored, CallbackInfo ci) {
+        ClientInterop.render(partialTicks, this.mc.player);
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/settings/MixinGameSettings.java b/src/main/java/com/irtimaled/bbor/mixin/client/settings/MixinGameSettings.java
deleted file mode 100644 (file)
index a69e3d6..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.irtimaled.bbor.mixin.client.settings;
-
-import com.irtimaled.bbor.client.ClientProxy;
-import com.irtimaled.bbor.client.keyboard.KeyListener;
-import net.minecraft.client.GameSettings;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.settings.KeyBinding;
-import org.apache.commons.lang3.ArrayUtils;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Mutable;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-import java.io.File;
-
-@Mixin(GameSettings.class)
-public abstract class MixinGameSettings {
-    @Mutable
-    @Final
-    @Shadow
-    public KeyBinding[] keyBindings;
-
-    @Shadow
-    public abstract void loadOptions();
-
-    @Inject(method = "<init>", at = @At("RETURN"))
-    private void init(Minecraft minecraft, File file, CallbackInfo ci) {
-        ClientProxy.registerKeyBindings();
-        keyBindings = ArrayUtils.addAll(keyBindings, KeyListener.keyBindings());
-        this.loadOptions();
-    }
-
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/world/MixinClientWorld.java b/src/main/java/com/irtimaled/bbor/mixin/client/world/MixinClientWorld.java
new file mode 100644 (file)
index 0000000..caa8be7
--- /dev/null
@@ -0,0 +1,16 @@
+package com.irtimaled.bbor.mixin.client.world;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import net.minecraft.client.world.ClientWorld;
+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;
+
+@Mixin(ClientWorld.class)
+public class MixinClientWorld {
+    @Inject(method = "sendQuittingDisconnectingPacket", at = @At("RETURN"))
+    private void sendQuittingDisconnectingPacket(CallbackInfo ci) {
+        ClientInterop.disconnectedFromRemoteServer();
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/client/MixinCCustomPayloadPacket.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/client/MixinCCustomPayloadPacket.java
new file mode 100644 (file)
index 0000000..ab8bf76
--- /dev/null
@@ -0,0 +1,27 @@
+package com.irtimaled.bbor.mixin.network.play.client;
+
+import com.irtimaled.bbor.common.interop.CommonInterop;
+import com.irtimaled.bbor.common.messages.SubscribeToServer;
+import net.minecraft.network.play.IServerPlayNetHandler;
+import net.minecraft.network.play.ServerPlayNetHandler;
+import net.minecraft.network.play.client.CCustomPayloadPacket;
+import net.minecraft.util.ResourceLocation;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Redirect;
+
+@Mixin(CCustomPayloadPacket.class)
+public class MixinCCustomPayloadPacket {
+    @Shadow
+    private ResourceLocation channel;
+
+    @Redirect(method = "processPacket", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/play/IServerPlayNetHandler;processCustomPayload(Lnet/minecraft/network/play/client/CCustomPayloadPacket;)V"))
+    private void processPacket(IServerPlayNetHandler netHandlerPlayServer, CCustomPayloadPacket packet) {
+        if (this.channel.toString().equals(SubscribeToServer.NAME)) {
+            CommonInterop.playerSubscribed(((ServerPlayNetHandler) netHandlerPlayServer).player);
+        } else {
+            netHandlerPlayServer.processCustomPayload(packet);
+        }
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/client/MixinCPacketCustomPayload.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/client/MixinCPacketCustomPayload.java
deleted file mode 100644 (file)
index 2bcbd71..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.irtimaled.bbor.mixin.network.play.client;
-
-import com.irtimaled.bbor.common.interop.CommonInterop;
-import com.irtimaled.bbor.common.messages.SubscribeToServer;
-import net.minecraft.network.play.IServerPlayNetHandler;
-import net.minecraft.network.play.ServerPlayNetHandler;
-import net.minecraft.network.play.client.CCustomPayloadPacket;
-import net.minecraft.util.ResourceLocation;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Redirect;
-
-@Mixin(CCustomPayloadPacket.class)
-public class MixinCPacketCustomPayload {
-    @Shadow
-    private ResourceLocation channel;
-
-    @Redirect(method = "processPacket", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/play/IServerPlayNetHandler;processCustomPayload(Lnet/minecraft/network/play/client/CCustomPayloadPacket;)V"))
-    private void processPacket(IServerPlayNetHandler netHandlerPlayServer, CCustomPayloadPacket packet) {
-        if (this.channel.toString().equals(SubscribeToServer.NAME)) {
-            CommonInterop.playerSubscribed(((ServerPlayNetHandler) netHandlerPlayServer).player);
-        } else {
-            netHandlerPlayServer.processCustomPayload(packet);
-        }
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSChatPacket.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSChatPacket.java
new file mode 100644 (file)
index 0000000..70b279e
--- /dev/null
@@ -0,0 +1,21 @@
+package com.irtimaled.bbor.mixin.network.play.server;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import net.minecraft.network.play.server.SChatPacket;
+import net.minecraft.util.text.ITextComponent;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(SChatPacket.class)
+public class MixinSChatPacket {
+    @Shadow
+    private ITextComponent chatComponent;
+
+    @Inject(method = "processPacket", at = @At("RETURN"))
+    private void processPacket(CallbackInfo ci) {
+        ClientInterop.handleSeedMessage(this.chatComponent);
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSChunkDataPacket.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSChunkDataPacket.java
new file mode 100644 (file)
index 0000000..ef2525f
--- /dev/null
@@ -0,0 +1,24 @@
+package com.irtimaled.bbor.mixin.network.play.server;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import net.minecraft.client.network.play.IClientPlayNetHandler;
+import net.minecraft.network.play.server.SChunkDataPacket;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(SChunkDataPacket.class)
+public class MixinSChunkDataPacket {
+    @Shadow
+    private int chunkX;
+
+    @Shadow
+    private int chunkZ;
+
+    @Inject(method = "processPacket", at = @At("RETURN"))
+    private void processPacket(IClientPlayNetHandler netHandlerPlayClient, CallbackInfo ci) {
+        ClientInterop.receivedChunk(this.chunkX, this.chunkZ);
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSCommandListPacket.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSCommandListPacket.java
new file mode 100644 (file)
index 0000000..7263509
--- /dev/null
@@ -0,0 +1,20 @@
+package com.irtimaled.bbor.mixin.network.play.server;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import com.irtimaled.bbor.common.TypeHelper;
+import net.minecraft.client.network.play.ClientPlayNetHandler;
+import net.minecraft.client.network.play.IClientPlayNetHandler;
+import net.minecraft.network.play.server.SCommandListPacket;
+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;
+
+@Mixin(SCommandListPacket.class)
+public class MixinSCommandListPacket {
+    @Inject(method = "processPacket", at = @At("RETURN"))
+    private void processPacket(IClientPlayNetHandler netHandlerPlayClient, CallbackInfo ci) {
+        TypeHelper.doIfType(netHandlerPlayClient, ClientPlayNetHandler.class, handler ->
+                ClientInterop.registerClientCommands(handler.func_195515_i()));
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSCustomPayloadPlayPacket.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSCustomPayloadPlayPacket.java
new file mode 100644 (file)
index 0000000..137dba1
--- /dev/null
@@ -0,0 +1,51 @@
+package com.irtimaled.bbor.mixin.network.play.server;
+
+import com.irtimaled.bbor.common.EventBus;
+import com.irtimaled.bbor.common.messages.AddBoundingBox;
+import com.irtimaled.bbor.common.messages.InitializeClient;
+import com.irtimaled.bbor.common.messages.PayloadReader;
+import com.irtimaled.bbor.common.messages.SubscribeToServer;
+import net.minecraft.client.network.play.ClientPlayNetHandler;
+import net.minecraft.client.network.play.IClientPlayNetHandler;
+import net.minecraft.network.PacketBuffer;
+import net.minecraft.network.play.server.SCustomPayloadPlayPacket;
+import net.minecraft.util.ResourceLocation;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Redirect;
+
+@Mixin(SCustomPayloadPlayPacket.class)
+public abstract class MixinSCustomPayloadPlayPacket {
+    @Shadow
+    private ResourceLocation channel;
+
+    @Redirect(method = "processPacket", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/play/IClientPlayNetHandler;handleCustomPayload(Lnet/minecraft/network/play/server/SCustomPayloadPlayPacket;)V"))
+    private void processPacket(IClientPlayNetHandler netHandlerPlayClient, SCustomPayloadPlayPacket packet) {
+        String channelName = channel.toString();
+        if (channelName.startsWith("bbor:")) {
+            PacketBuffer data = null;
+            try {
+                data = packet.getBufferData();
+                PayloadReader reader = new PayloadReader(data);
+                switch (channelName) {
+                    case InitializeClient.NAME: {
+                        EventBus.publish(InitializeClient.getEvent(reader));
+                        ((ClientPlayNetHandler) netHandlerPlayClient).sendPacket(SubscribeToServer.getPayload().build());
+                        break;
+                    }
+                    case AddBoundingBox.NAME:
+                    case AddBoundingBox.LEGACY: {
+                        EventBus.publish(AddBoundingBox.getEvent(reader, channelName));
+                        break;
+                    }
+                }
+            } finally {
+                if (data != null)
+                    data.release();
+            }
+        } else {
+            netHandlerPlayClient.handleCustomPayload(packet);
+        }
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketChat.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketChat.java
deleted file mode 100644 (file)
index 06198c2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.irtimaled.bbor.mixin.network.play.server;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.network.play.server.SChatPacket;
-import net.minecraft.util.text.ITextComponent;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(SChatPacket.class)
-public class MixinSPacketChat {
-    @Shadow
-    private ITextComponent chatComponent;
-
-    @Inject(method = "processPacket", at = @At("RETURN"))
-    private void processPacket(CallbackInfo ci) {
-        ClientInterop.handleSeedMessage(this.chatComponent);
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCommandList.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCommandList.java
deleted file mode 100644 (file)
index 1550151..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.irtimaled.bbor.mixin.network.play.server;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import com.irtimaled.bbor.common.TypeHelper;
-import net.minecraft.client.network.play.ClientPlayNetHandler;
-import net.minecraft.client.network.play.IClientPlayNetHandler;
-import net.minecraft.network.play.server.SCommandListPacket;
-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;
-
-@Mixin(SCommandListPacket.class)
-public class MixinSPacketCommandList {
-    @Inject(method = "processPacket", at = @At("RETURN"))
-    private void processPacket(IClientPlayNetHandler netHandlerPlayClient, CallbackInfo ci) {
-        TypeHelper.doIfType(netHandlerPlayClient, ClientPlayNetHandler.class, handler ->
-                ClientInterop.registerClientCommands(handler.func_195515_i()));
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java
deleted file mode 100644 (file)
index 719d14a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.irtimaled.bbor.mixin.network.play.server;
-
-import com.irtimaled.bbor.common.EventBus;
-import com.irtimaled.bbor.common.messages.AddBoundingBox;
-import com.irtimaled.bbor.common.messages.InitializeClient;
-import com.irtimaled.bbor.common.messages.PayloadReader;
-import com.irtimaled.bbor.common.messages.SubscribeToServer;
-import net.minecraft.client.network.play.ClientPlayNetHandler;
-import net.minecraft.client.network.play.IClientPlayNetHandler;
-import net.minecraft.network.PacketBuffer;
-import net.minecraft.network.play.server.SCustomPayloadPlayPacket;
-import net.minecraft.util.ResourceLocation;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Redirect;
-
-@Mixin(SCustomPayloadPlayPacket.class)
-public abstract class MixinSPacketCustomPayload {
-    @Shadow
-    private ResourceLocation channel;
-
-    @Redirect(method = "processPacket", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/play/IClientPlayNetHandler;handleCustomPayload(Lnet/minecraft/network/play/server/SCustomPayloadPlayPacket;)V"))
-    private void processPacket(IClientPlayNetHandler netHandlerPlayClient, SCustomPayloadPlayPacket packet) {
-        String channelName = channel.toString();
-        if (channelName.startsWith("bbor:")) {
-            PacketBuffer data = null;
-            try {
-                data = packet.getBufferData();
-                PayloadReader reader = new PayloadReader(data);
-                switch (channelName) {
-                    case InitializeClient.NAME: {
-                        EventBus.publish(InitializeClient.getEvent(reader));
-                        ((ClientPlayNetHandler) netHandlerPlayClient).sendPacket(SubscribeToServer.getPayload().build());
-                        break;
-                    }
-                    case AddBoundingBox.NAME:
-                    case AddBoundingBox.LEGACY: {
-                        EventBus.publish(AddBoundingBox.getEvent(reader, channelName));
-                        break;
-                    }
-                }
-            } finally {
-                if (data != null)
-                    data.release();
-            }
-        } else {
-            netHandlerPlayClient.handleCustomPayload(packet);
-        }
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketSpawnPosition.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketSpawnPosition.java
deleted file mode 100644 (file)
index 36123c3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.irtimaled.bbor.mixin.network.play.server;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.network.play.server.SSpawnPositionPacket;
-import net.minecraft.util.math.BlockPos;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(SSpawnPositionPacket.class)
-public abstract class MixinSPacketSpawnPosition {
-    @Shadow
-    private BlockPos spawnBlockPos;
-
-    @Inject(method = "processPacket", at = @At("RETURN"))
-    private void afterProcessPacket(CallbackInfo ci) {
-        ClientInterop.updateWorldSpawnReceived(spawnBlockPos);
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSSpawnPositionPacket.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSSpawnPositionPacket.java
new file mode 100644 (file)
index 0000000..fb8ae64
--- /dev/null
@@ -0,0 +1,21 @@
+package com.irtimaled.bbor.mixin.network.play.server;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import net.minecraft.network.play.server.SSpawnPositionPacket;
+import net.minecraft.util.math.BlockPos;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(SSpawnPositionPacket.class)
+public abstract class MixinSSpawnPositionPacket {
+    @Shadow
+    private BlockPos spawnBlockPos;
+
+    @Inject(method = "processPacket", at = @At("RETURN"))
+    private void afterProcessPacket(CallbackInfo ci) {
+        ClientInterop.updateWorldSpawnReceived(spawnBlockPos);
+    }
+}
index 657649e3d395ecf64025e6e98076ceef71358932..4a469cbb9f638d7df8c37919f59f97d8b5071672 100644 (file)
@@ -6,26 +6,27 @@
   "package": "com.irtimaled.bbor.mixin",
   "refmap": "mixins.bbor.refmap.json",
   "mixins": [
-    "network.play.client.MixinCPacketCustomPayload",
+    "network.play.client.MixinCCustomPayloadPacket",
     "server.MixinMinecraftServer",
     "server.management.MixinPlayerList",
     "world.chunk.MixinChunk"
   ],
   "client": [
+    "client.MixinGameSettings",
     "client.MixinMinecraft",
-    "client.entity.MixinEntityPlayerSP",
-    "client.gui.MixinGuiChat",
-    "client.gui.MixinGuiOptions",
-    "client.multiplayer.MixinWorldClient",
-    "client.network.MixinNetHandlerLoginClient",
-    "client.network.MixinNetHandlerPlayClient",
-    "client.renderer.MixinEntityRenderer",
-    "client.settings.MixinGameSettings",
+    "client.entity.player.MixinClientPlayerEntity",
+    "client.gui.screen.MixinChatScreen",
+    "client.gui.screen.MixinOptionsScreen",
+    "client.network.login.MixinClientLoginNetHandler",
+    "client.network.play.MixinClientPlayNetHandler",
+    "client.renderer.MixinGameRenderer",
+    "client.world.MixinClientWorld",
     "client.settings.MixinKeyBinding",
-    "network.play.server.MixinSPacketChat",
-    "network.play.server.MixinSPacketCommandList",
-    "network.play.server.MixinSPacketCustomPayload",
-    "network.play.server.MixinSPacketSpawnPosition"
+    "network.play.server.MixinSChatPacket",
+    "network.play.server.MixinSChunkDataPacket",
+    "network.play.server.MixinSCommandListPacket",
+    "network.play.server.MixinSCustomPayloadPlayPacket",
+    "network.play.server.MixinSSpawnPositionPacket"
   ],
   "server": [
     "server.dedicated.MixinDedicatedServer"