summaryrefslogtreecommitdiff
path: root/src/main/java/club/eviltransgenders/autoreconnect/mixin
diff options
context:
space:
mode:
authorRosa <rosaontheweb@proton.me>2026-05-19 17:40:02 -0400
committerRosa <rosaontheweb@proton.me>2026-05-19 17:40:02 -0400
commitcdb7b6faffa3d708a936b36197996d0beb5be82c (patch)
tree6e75255a3cb2e4f742e345f2da56d7464070bf70 /src/main/java/club/eviltransgenders/autoreconnect/mixin
the mod works
Diffstat (limited to 'src/main/java/club/eviltransgenders/autoreconnect/mixin')
-rw-r--r--src/main/java/club/eviltransgenders/autoreconnect/mixin/ConnectScreenMixin.java20
-rw-r--r--src/main/java/club/eviltransgenders/autoreconnect/mixin/DisconnectedScreenMixin.java26
2 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/club/eviltransgenders/autoreconnect/mixin/ConnectScreenMixin.java b/src/main/java/club/eviltransgenders/autoreconnect/mixin/ConnectScreenMixin.java
new file mode 100644
index 0000000..dd2e4a1
--- /dev/null
+++ b/src/main/java/club/eviltransgenders/autoreconnect/mixin/ConnectScreenMixin.java
@@ -0,0 +1,20 @@
+package club.eviltransgenders.autoreconnect.mixin;
+
+import club.eviltransgenders.autoreconnect.AutoReconnect;
+import net.minecraft.client.gui.screens.ConnectScreen;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.multiplayer.resolver.ServerAddress;
+import net.minecraft.client.multiplayer.ServerData;
+import net.minecraft.client.multiplayer.TransferState;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.Mixin;
+
+@Mixin(ConnectScreen.class)
+public abstract class ConnectScreenMixin {
+ @Inject(at = @At("HEAD"), method = "connect")
+ private void updateLastServerData(Minecraft client, ServerAddress hostAndPort, ServerData serverData, TransferState transferState, CallbackInfo ci) {
+ AutoReconnect.getInstance().lastServerData = serverData;
+ }
+}
diff --git a/src/main/java/club/eviltransgenders/autoreconnect/mixin/DisconnectedScreenMixin.java b/src/main/java/club/eviltransgenders/autoreconnect/mixin/DisconnectedScreenMixin.java
new file mode 100644
index 0000000..99a59f9
--- /dev/null
+++ b/src/main/java/club/eviltransgenders/autoreconnect/mixin/DisconnectedScreenMixin.java
@@ -0,0 +1,26 @@
+package club.eviltransgenders.autoreconnect.mixin;
+
+import net.minecraft.client.gui.components.Button;
+import net.minecraft.client.gui.layouts.LinearLayout;
+import net.minecraft.client.gui.screens.DisconnectedScreen;
+import net.minecraft.network.chat.Component;
+import org.spongepowered.asm.mixin.Final;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+
+@Mixin(DisconnectedScreen.class)
+public abstract class DisconnectedScreenMixin {
+ @Shadow
+ @Final
+ private LinearLayout layout;
+
+ @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/layouts/LinearLayout;visitWidgets(Ljava/util/function/Consumer;)V"), method = "init")
+ private void addAutoReconnectButtons(CallbackInfo ci) {
+ Button reconnectButton = Button.builder(Component.translatable("gui.autoreconnect.reconnect"), btn -> {}).width(200).build();
+ this.layout.addChild(reconnectButton);
+ this.layout.arrangeElements();
+ }
+}