]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Handle unexpected disconnects
authorIrtimaled <irtimaled@gmail.com>
Fri, 15 Mar 2019 05:42:02 +0000 (22:42 -0700)
committerIrtimaled <irtimaled@gmail.com>
Fri, 15 Mar 2019 06:03:20 +0000 (23:03 -0700)
src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerLoginClient.java
src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerPlayClient.java [new file with mode: 0644]
src/main/resources/mixins.bbor.json

index 4206574c38df51c6a8b785932bd59868cd1016fd..b7f58c63d78442bb37b1ff217a74aa7ac8e86b02 100644 (file)
@@ -1,10 +1,12 @@
 package com.irtimaled.bbor.mixin.client.network;
 
 import com.irtimaled.bbor.client.events.ConnectedToRemoteServer;
+import com.irtimaled.bbor.client.events.DisconnectedFromRemoteServer;
 import com.irtimaled.bbor.common.EventBus;
 import net.minecraft.client.network.NetHandlerLoginClient;
 import net.minecraft.network.NetworkManager;
 import net.minecraft.network.login.server.SPacketLoginSuccess;
+import net.minecraft.util.text.ITextComponent;
 import org.spongepowered.asm.mixin.Final;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -19,7 +21,12 @@ public abstract class MixinNetHandlerLoginClient {
     private NetworkManager networkManager;
 
     @Inject(method = "handleLoginSuccess", at = @At(value = "RETURN"))
-    private void handleLoginSuccess(SPacketLoginSuccess packet, CallbackInfo ci) {
+    private void handleLoginSuccess(CallbackInfo ci) {
         EventBus.publish(new ConnectedToRemoteServer(this.networkManager));
     }
+
+    @Inject(method = "onDisconnect", at=@At("HEAD"))
+    private void onDisconnect(CallbackInfo ci) {
+        EventBus.publish(new 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
new file mode 100644 (file)
index 0000000..70c91e8
--- /dev/null
@@ -0,0 +1,18 @@
+package com.irtimaled.bbor.mixin.client.network;
+
+import com.irtimaled.bbor.client.events.DisconnectedFromRemoteServer;
+import com.irtimaled.bbor.common.EventBus;
+import net.minecraft.client.network.NetHandlerPlayClient;
+import net.minecraft.util.text.ITextComponent;
+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(NetHandlerPlayClient.class)
+public class MixinNetHandlerPlayClient {
+    @Inject(method = "onDisconnect", at=@At("HEAD"))
+    private void onDisconnect(CallbackInfo ci) {
+        EventBus.publish(new DisconnectedFromRemoteServer());
+    }
+}
index acde93506d879ee99ec302226f379e00cf827c0f..3206923ed1acf46ca9f626877dec12b1e1f420db 100644 (file)
@@ -20,6 +20,7 @@
     "network.play.server.MixinSPacketCustomPayload",
     "client.multiplayer.MixinWorldClient",
     "client.network.MixinNetHandlerLoginClient",
+    "client.network.MixinNetHandlerPlayClient",
     "client.settings.MixinKeyBinding",
     "client.settings.MixinGameSettings"
   ],