diff --git a/build.gradle b/build.gradle index 305bc30..2eff076 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.10-SNAPSHOT' + id 'fabric-loom' version '1.13-SNAPSHOT' id 'maven-publish' id "io.github.p03w.machete" version "2.0.1" } diff --git a/gradle.properties b/gradle.properties index 18e3e52..19572ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,17 +3,17 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.21.6 -yarn_mappings=1.21.6+build.1 -loader_version=0.16.14 +minecraft_version=1.21.10 +yarn_mappings=1.21.10+build.2 +loader_version=0.17.3 # Mod Properties mod_version=3.1.1 -target_version=1.21.6 +target_version=1.21.10 maven_group=me.contaria archives_base_name=fastquit # Dependencies -fabric_api_version=0.127.1+1.21.6 -modmenu_version=15.0.0-beta.2 -cloth_config_version=19.0.147 +fabric_api_version=0.138.3+1.21.10 +modmenu_version=16.0.0-rc.1 +cloth_config_version=20.0.149 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b9..1b33c55 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ca025c8..d4081da 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6..23d15a9 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9b42019..5eed7ee 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/src/main/java/me/contaria/fastquit/mixin/MinecraftClientMixin.java b/src/main/java/me/contaria/fastquit/mixin/MinecraftClientMixin.java index 2102a6c..be0d8cf 100644 --- a/src/main/java/me/contaria/fastquit/mixin/MinecraftClientMixin.java +++ b/src/main/java/me/contaria/fastquit/mixin/MinecraftClientMixin.java @@ -36,13 +36,13 @@ private boolean fastquit(IntegratedServer server) { } @WrapWithCondition( - method = "reset", + method = { "disconnect(Lnet/minecraft/client/gui/screen/Screen;Z)V", "enterReconfiguration" }, at = @At( value = "INVOKE", - target = "Lnet/minecraft/client/MinecraftClient;render(Z)V" + target = "Lnet/minecraft/client/MinecraftClient;setScreenAndRender(Lnet/minecraft/client/gui/screen/Screen;)V" ) ) - private boolean fastquit$doNotOpenSaveScreen(MinecraftClient client, boolean tick, Screen screen) { + private boolean fastquit$skipSavingScreen(MinecraftClient client, Screen screen) { return FastQuit.CONFIG.renderSavingScreen || !(screen instanceof MessageScreen && screen.getTitle().equals(TextHelper.translatable("menu.savingLevel"))); } diff --git a/src/main/java/me/contaria/fastquit/mixin/WorldListWidgetWorldEntryMixin.java b/src/main/java/me/contaria/fastquit/mixin/WorldListWidgetWorldEntryMixin.java index a8169a6..f016f86 100644 --- a/src/main/java/me/contaria/fastquit/mixin/WorldListWidgetWorldEntryMixin.java +++ b/src/main/java/me/contaria/fastquit/mixin/WorldListWidgetWorldEntryMixin.java @@ -7,7 +7,7 @@ import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.world.SelectWorldScreen; +import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.world.WorldListWidget; import net.minecraft.world.level.storage.LevelStorage; import net.minecraft.world.level.storage.LevelSummary; @@ -19,11 +19,11 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(WorldListWidget.WorldEntry.class) -public abstract class WorldListWidgetWorldEntryMixin { +public abstract class WorldListWidgetWorldEntryMixin extends WorldListWidget.Entry { @Shadow @Final - private SelectWorldScreen screen; + private Screen screen; @Shadow @Final private MinecraftClient client; @@ -31,6 +31,9 @@ public abstract class WorldListWidgetWorldEntryMixin { @Final LevelSummary level; + @Shadow + protected abstract int getTextX(); + @WrapOperation( method = { "edit", @@ -69,24 +72,18 @@ public abstract class WorldListWidgetWorldEntryMixin { this.client.setScreen(this.screen); } - @Inject( - method = "render", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/client/gui/DrawContext;drawTextWithShadow(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/text/Text;III)V", - ordinal = 0, - shift = At.Shift.AFTER - ) - ) - private void fastquit$renderSavingTimeOnWorldList(DrawContext context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta, CallbackInfo ci) { + @Inject(method = "render", at = @At("TAIL")) + private void fastquit$renderSavingTimeOnWorldList(DrawContext context, int mouseX, int mouseY, boolean hovered, float tickDelta, CallbackInfo ci) { if (FastQuit.CONFIG.showSavingTime == FastQuitConfig.ShowSavingTime.TRUE) { FastQuit.getSavingWorld(this.client.getLevelStorage().getSavesDirectory().resolve(this.level.getName())).ifPresent(server -> { - WorldInfo info = FastQuit.savingWorlds.get(server); - if (info != null) { - String time = info.getTimeSaving() + " ⌛"; - context.drawText(this.client.textRenderer, time, x + entryWidth - this.client.textRenderer.getWidth(time) - 4, y + 1, -6939106, false); - } - }); + WorldInfo info = FastQuit.savingWorlds.get(server); + if (info != null) { + String time = info.getTimeSaving() + " ⌛"; + int x = this.getTextX(); + int y = this.getContentY() + 1; + context.drawText(this.client.textRenderer, time, x + 200 - this.client.textRenderer.getWidth(time) - 4, y, -6939106, false); + } + }); } } } \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 70a7833..a14a95c 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -28,7 +28,7 @@ ], "depends": { "fabricloader": ">=0.16.9", - "minecraft": ">=1.21.6", + "minecraft": ">=1.21.9", "fabric-resource-loader-v0": "*", "cloth-config": "*", "java": ">=21"