diff --git a/README.md b/README.md index 649c3f2..bdc8d87 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# AutoReconnect [1.20.1][Fabric][Client] +# AutoReconnect [1.20.4][Fabric][Client] ## Description diff --git a/build.gradle b/build.gradle index d87ce57..785556f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,12 @@ plugins { - id 'fabric-loom' version '1.3-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' } -// Minecraft 1.18 (1.18-pre2) upwards uses Java 17. -var java_version = 17 +// Minecraft 1.20.5 upwards uses Java 21. +var java_version = 21 version = project.mod_version +//noinspection GroovyUnusedAssignment archivesBaseName = project.mod_id repositories { @@ -65,8 +66,8 @@ java { // If you remove this line, sources will not be generated. withSourcesJar() - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } jar { diff --git a/gradle.properties b/gradle.properties index 172df15..63cc7d2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,16 +3,16 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.20.1 -yarn_mappings=1.20.1+build.9 -loader_version=0.14.21 +minecraft_version=1.20.5 +yarn_mappings=1.20.5+build.1 +loader_version=0.15.10 # Mod Properties mod_id = autoreconnect mod_name = AutoReconnect -mod_version = 2.3.0-dev +mod_version = 2.4.0-dev # Dependencies -fabric_version=0.85.0+1.20.1 -modmenu_version=7.0.1 -clothconfig_version=11.0.99 \ No newline at end of file +fabric_version=0.97.5+1.20.5 +modmenu_version=10.0.0-beta.1 +clothconfig_version=14.0.126 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1ea29f6..fbe7868 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Thu Feb 02 15:26:43 IST 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/autoreconnect/mixin/ConnectScreenMixin.java b/src/main/java/autoreconnect/mixin/ConnectScreenMixin.java index 2aca4cc..59bc8ef 100644 --- a/src/main/java/autoreconnect/mixin/ConnectScreenMixin.java +++ b/src/main/java/autoreconnect/mixin/ConnectScreenMixin.java @@ -3,7 +3,8 @@ import autoreconnect.AutoReconnect; import autoreconnect.reconnect.MultiplayerReconnectStrategy; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ConnectScreen; +import net.minecraft.client.gui.screen.multiplayer.ConnectScreen; +import net.minecraft.client.network.CookieStorage; import net.minecraft.client.network.ServerAddress; import net.minecraft.client.network.ServerInfo; import org.spongepowered.asm.mixin.Mixin; @@ -13,8 +14,8 @@ @Mixin(ConnectScreen.class) public class ConnectScreenMixin { - @Inject(at = @At("HEAD"), method = "connect(Lnet/minecraft/client/MinecraftClient;Lnet/minecraft/client/network/ServerAddress;Lnet/minecraft/client/network/ServerInfo;)V") - private void connect(MinecraftClient client, ServerAddress address, ServerInfo serverInfo, CallbackInfo info) { + @Inject(at = @At("HEAD"), method = "connect(Lnet/minecraft/client/MinecraftClient;Lnet/minecraft/client/network/ServerAddress;Lnet/minecraft/client/network/ServerInfo;Lnet/minecraft/client/network/CookieStorage;)V") + private void connect(MinecraftClient client, ServerAddress address, ServerInfo serverInfo, CookieStorage cookieStorage, CallbackInfo info) { if (serverInfo == null) return; AutoReconnect.getInstance().setReconnectHandler(new MultiplayerReconnectStrategy(serverInfo)); } diff --git a/src/main/java/autoreconnect/mixin/MinecraftClientMixin.java b/src/main/java/autoreconnect/mixin/MinecraftClientMixin.java index ab8c590..5355ad9 100644 --- a/src/main/java/autoreconnect/mixin/MinecraftClientMixin.java +++ b/src/main/java/autoreconnect/mixin/MinecraftClientMixin.java @@ -21,7 +21,8 @@ public class MinecraftClientMixin { public Screen currentScreen; @Inject(method = "startIntegratedServer", at = @At("HEAD")) - private void startIntegratedServer(String levelName, LevelStorage.Session session, ResourcePackManager dataPackManager, SaveLoader saveLoader, boolean newWorld, CallbackInfo info) { + private void startIntegratedServer(LevelStorage.Session session, ResourcePackManager dataPackManager, SaveLoader saveLoader, boolean newWorld, CallbackInfo ci) { + var levelName = saveLoader.saveProperties().getLevelName(); AutoReconnect.getInstance().setReconnectHandler(new SingleplayerReconnectStrategy(levelName)); } diff --git a/src/main/java/autoreconnect/reconnect/MultiplayerReconnectStrategy.java b/src/main/java/autoreconnect/reconnect/MultiplayerReconnectStrategy.java index d7ba854..2151437 100644 --- a/src/main/java/autoreconnect/reconnect/MultiplayerReconnectStrategy.java +++ b/src/main/java/autoreconnect/reconnect/MultiplayerReconnectStrategy.java @@ -1,7 +1,7 @@ package autoreconnect.reconnect; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ConnectScreen; +import net.minecraft.client.gui.screen.multiplayer.ConnectScreen; import net.minecraft.client.gui.screen.TitleScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import net.minecraft.client.network.ServerAddress; @@ -29,6 +29,7 @@ public void reconnect() { MinecraftClient.getInstance(), ServerAddress.parse(serverInfo.address), serverInfo, - false); + false, + null); } } diff --git a/src/main/java/autoreconnect/reconnect/RealmsReconnectStrategy.java b/src/main/java/autoreconnect/reconnect/RealmsReconnectStrategy.java index 86b8c01..399dc68 100644 --- a/src/main/java/autoreconnect/reconnect/RealmsReconnectStrategy.java +++ b/src/main/java/autoreconnect/reconnect/RealmsReconnectStrategy.java @@ -5,10 +5,7 @@ import net.minecraft.client.realms.RealmsClient; import net.minecraft.client.realms.dto.RealmsServer; import net.minecraft.client.realms.gui.screen.RealmsLongRunningMcoTaskScreen; -import net.minecraft.client.realms.gui.screen.RealmsMainScreen; -import net.minecraft.client.realms.task.RealmsGetServerDetailsTask; - -import java.util.concurrent.locks.ReentrantLock; +import net.minecraft.client.realms.task.RealmsPrepareConnectionTask; public class RealmsReconnectStrategy extends ReconnectStrategy { private final RealmsServer realmsServer; @@ -28,7 +25,7 @@ public String getName() { @Override public void reconnect() { TitleScreen titleScreen = new TitleScreen(); - RealmsGetServerDetailsTask realmsGetServerDetailsTask = new RealmsGetServerDetailsTask(new RealmsMainScreen(titleScreen), titleScreen, realmsServer, new ReentrantLock()); - MinecraftClient.getInstance().setScreen(new RealmsLongRunningMcoTaskScreen(titleScreen, realmsGetServerDetailsTask)); + RealmsPrepareConnectionTask realmsPrepareConnectionTask = new RealmsPrepareConnectionTask(titleScreen, realmsServer); + MinecraftClient.getInstance().setScreen(new RealmsLongRunningMcoTaskScreen(titleScreen, realmsPrepareConnectionTask)); } } diff --git a/src/main/java/autoreconnect/reconnect/SingleplayerReconnectStrategy.java b/src/main/java/autoreconnect/reconnect/SingleplayerReconnectStrategy.java index d07b5c5..6233be2 100644 --- a/src/main/java/autoreconnect/reconnect/SingleplayerReconnectStrategy.java +++ b/src/main/java/autoreconnect/reconnect/SingleplayerReconnectStrategy.java @@ -25,6 +25,6 @@ public void reconnect() { MinecraftClient client = MinecraftClient.getInstance(); if (!client.getLevelStorage().levelExists(getName())) return; client.setScreenAndRender(new MessageScreen(Text.translatable("selectWorld.data_read"))); - client.createIntegratedServerLoader().start(new TitleScreen(), getName()); + client.createIntegratedServerLoader().start(getName(), () -> client.setScreen(new TitleScreen())); } }