From 07736e71ce2496fca516abf35127817a15792870 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:21:45 +0100 Subject: [PATCH 01/31] update gradle stuff --- gradle/wrapper/gradle-wrapper.jar | Bin 59536 -> 43583 bytes gradle/wrapper/gradle-wrapper.properties | 7 +- gradlew | 54 ++++--- gradlew.bat | 183 ++++++++++++----------- 4 files changed, 134 insertions(+), 110 deletions(-) mode change 100755 => 100644 gradle/wrapper/gradle-wrapper.jar mode change 100755 => 100644 gradlew.bat diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar old mode 100755 new mode 100644 index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 59536 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 QuEJmfE|#`Dqx|px0L@K;Y5)KL diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5e7606e..ccc1a9b 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ -#Tue May 07 15:32:39 CEST 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists +zipStorePath=wrapper/dists \ No newline at end of file diff --git a/gradlew b/gradlew index c53aefa..f5feea6 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -32,10 +34,10 @@ # Busybox and similar reduced shells will NOT work, because this script # requires all of these POSIX shell features: # * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». # # Important for patching: # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +82,12 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# 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 # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,22 +134,29 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -193,11 +201,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +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, +# 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. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ @@ -205,6 +217,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/gradlew.bat b/gradlew.bat old mode 100755 new mode 100644 index 107acd3..9b42019 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,89 +1,94 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega From 752ead8ce21db3169e4657dcb8a2a6acc56e075f Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:22:04 +0100 Subject: [PATCH 02/31] fix auto gui scaling looking broken with weird window sizes --- CHANGES.md | 3 +-- .../java/net/notcoded/wayfix/mixin/MinecraftClientMixin.java | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index c5359db..6fbb53a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,2 @@ changes: -- fix icon not properly refreshing on kde plasma and gnome -- fix GNOME not having an app icon ([#3](https://github.com/not-coded/WayFix/issues/3)) \ No newline at end of file +- fix auto gui scaling looking broken with weird window sizes \ No newline at end of file diff --git a/src/main/java/net/notcoded/wayfix/mixin/MinecraftClientMixin.java b/src/main/java/net/notcoded/wayfix/mixin/MinecraftClientMixin.java index 4239b8c..8af0c4b 100644 --- a/src/main/java/net/notcoded/wayfix/mixin/MinecraftClientMixin.java +++ b/src/main/java/net/notcoded/wayfix/mixin/MinecraftClientMixin.java @@ -18,6 +18,8 @@ public abstract class MinecraftClientMixin { @Shadow @Final public GameOptions options; + @Shadow public abstract boolean forcesUnicodeFont(); + @ModifyArg(method = "onResolutionChanged", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/Window;setScaleFactor(D)V")) private double fixHiDPIScaling(double d) { int guiScale; @@ -28,7 +30,7 @@ private double fixHiDPIScaling(double d) { *///?} // "Auto" or Gui Scale 0 already auto-scales it - return guiScale != 0 && WayFix.config.autoScaleGUI ? d * getScaleFactor() : d; + return guiScale != 0 && WayFix.config.autoScaleGUI ? window.calculateScaleFactor(Math.round(guiScale * getScaleFactor()), this.forcesUnicodeFont()) : d; } @Unique From 3b4cdde2691239f03f84b7680c835140a4696e77 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:22:17 +0100 Subject: [PATCH 03/31] change default version to 1.20.6 --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 08149d2..e129fda 100755 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -17,7 +17,7 @@ stonecutter { shared { versions("1.16.5", "1.19", "1.19.3", "1.20.6") - vcsVersion = "1.19.3" + vcsVersion = "1.20.6" } create(rootProject) From 82569e62223602ab3e5b906524060f89ccf6bb42 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:22:26 +0100 Subject: [PATCH 04/31] make readme look nicer and clear up stuff --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 907437d..4d6ec0d 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Fixes multiple issues regarding Wayland compatibility for Minecraft. ## Features - Auto Scale GUI - - Auto-scales the GUI scale depending on your display's scaling. ***[may look weird when windowed]*** (e.g. 2 GUI Scale on 1920x1080 at 100% -> 4 GUI Scale on 3840x2160 at 200%) + - Auto-scales the GUI scale depending on your display's scaling. (e.g. 2 GUI Scale on 1920x1080 at 100% → 4 GUI Scale on 3840x2160 at 200%) - Inject Minecraft Icon at Startup - Injects the Minecraft Icon at Startup instead of defaulting to the normal Wayland icon. @@ -26,10 +26,13 @@ Fixes multiple issues regarding Wayland compatibility for Minecraft. - Fixes issues where keyboard combinations like 'CTRL + A' or 'CTRL + C' are sent as characters in chat instead of being recognized as key combinations. - **Fullscreen** - - Specify Monitor *(looks different in-game)* ***(by default Minecraft sometimes full-screens on the wrong monitor due to Wayland window limitations)*** - - Specify which monitor you want to fullscreen Minecraft to. (primary monitor by default) (must turn on in seperate config option) + - Select Monitor + - Select which monitor you want to fullscreen Minecraft to. (primary monitor by default) (must turn on in seperate config option) + +> [!NOTE] +> By default Minecraft sometimes full-screens on the wrong monitor due to Wayland window limitations (unable to get X and Y position). ## Building - Clone the repository - `git clone https://github.com/not-coded/WayFix` -- Run `./gradlew chiseledBuild` +- Run `./gradlew chiseledBuild` \ No newline at end of file From 7834b93db751d70f74a5c716a76a6c4566f7072a Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Sat, 9 Nov 2024 20:00:53 +0100 Subject: [PATCH 05/31] remove the May look weird when windowed thing --- src/main/resources/assets/wayfix/lang/en_us.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/assets/wayfix/lang/en_us.json b/src/main/resources/assets/wayfix/lang/en_us.json index 7c91fb9..d55f8fd 100755 --- a/src/main/resources/assets/wayfix/lang/en_us.json +++ b/src/main/resources/assets/wayfix/lang/en_us.json @@ -2,7 +2,7 @@ "text.autoconfig.wayfix.title": "WayFix Options", "text.autoconfig.wayfix.option.autoScaleGUI": "Auto Scale GUI", - "text.autoconfig.wayfix.option.autoScaleGUI.@Tooltip": "Auto-scales the GUI scale depending on your display's scaling. [may look weird when windowed] (e.g. 2 GUI Scale on 1920x1080 at 100% -> 4 GUI Scale on 3840x2160 at 200%)", + "text.autoconfig.wayfix.option.autoScaleGUI.@Tooltip": "Auto-scales the GUI scale depending on your display's scaling. (e.g. 2 GUI Scale on 1920x1080 at 100% -> 4 GUI Scale on 3840x2160 at 200%)", "text.autoconfig.wayfix.option.injectIcon": "Inject Minecraft Icon at Startup", "text.autoconfig.wayfix.option.injectIcon.@Tooltip": "Injects the Minecraft Icon at Startup instead of defaulting to the normal Wayland icon (requires restart).", @@ -28,4 +28,4 @@ "text.autoconfig.wayfix.option.Monitors.monitorName": "Monitor Name", "text.autoconfig.wayfix.option.Monitors.primary.@PrefixText": "↑↑ Copy me to the \"Select Monitor\" field! (if you want to choose this monitor as the fullscreen one) ↑↑", "text.autoconfig.wayfix.option.Monitors.primary": "Is Primary Monitor" -} \ No newline at end of file +} From 51c6459faeec77fa63f0a7d71701539091c6f424 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Sat, 9 Nov 2024 20:06:18 +0100 Subject: [PATCH 06/31] oh yeah its compatible with sinytra connector btw --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4d6ec0d..6476b1e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,9 @@ # WayFix -[![Supports minecraft versions from 1.16](https://notcoded.needs.rest/r/badge_minecraft_1.16plus.svg)](https://minecraft.net) [![Cloth Config API](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/cozy/requires/cloth-config-api_vector.svg)](https://www.modrinth.com/mod/cloth-config) ![Won't support forge](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/cozy/unsupported/forge_vector.svg) +[![Supports minecraft versions from 1.16](https://notcoded.needs.rest/r/badge_minecraft_1.16plus.svg)](https://minecraft.net) [![Cloth Config API](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/cozy/requires/cloth-config-api_vector.svg)](https://www.modrinth.com/mod/cloth-config) ![Won't support forge](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/cozy/unsupported/forge_vector.svg) ...natively + +**Compatible with Forge and NeoForge, using [Sinytra Connector](https://modrinth.com/mod/connector) and [Connector Extras](https://modrinth.com/mod/connector-extras).** Fixes multiple issues regarding Wayland compatibility for Minecraft. @@ -35,4 +37,4 @@ Fixes multiple issues regarding Wayland compatibility for Minecraft. ## Building - Clone the repository - `git clone https://github.com/not-coded/WayFix` -- Run `./gradlew chiseledBuild` \ No newline at end of file +- Run `./gradlew chiseledBuild` From 414104b3e54855db957e0bc8b6e9c65cb9c44d76 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Sat, 9 Nov 2024 20:16:15 +0100 Subject: [PATCH 07/31] make it look better --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6476b1e..abfef24 100644 --- a/README.md +++ b/README.md @@ -7,10 +7,10 @@ [![Supports minecraft versions from 1.16](https://notcoded.needs.rest/r/badge_minecraft_1.16plus.svg)](https://minecraft.net) [![Cloth Config API](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/cozy/requires/cloth-config-api_vector.svg)](https://www.modrinth.com/mod/cloth-config) ![Won't support forge](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/cozy/unsupported/forge_vector.svg) ...natively -**Compatible with Forge and NeoForge, using [Sinytra Connector](https://modrinth.com/mod/connector) and [Connector Extras](https://modrinth.com/mod/connector-extras).** - Fixes multiple issues regarding Wayland compatibility for Minecraft. +**Compatible with Forge and NeoForge, using [Sinytra Connector](https://modrinth.com/mod/connector) and [Connector Extras](https://modrinth.com/mod/connector-extras).** Requires disabling the early loading progress window though! + **Recommended to be used with [glfw-wayland](https://github.com/BoyOrigin/glfw-wayland).**
**With the [Cursor Fix](https://www.reddit.com/r/kde/comments/13ddktm/mouse_cursor_changing_when_over_some_apps_when/).** From 75a7652b8728ff420e1f0d7130d30972556a2ed0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 13:07:31 +0000 Subject: [PATCH 08/31] Add renovate.json --- renovate.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..5db72dd --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ] +} From 95b007d664611bbe7850ab4ae180a8facd8bfb79 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 13:10:02 +0000 Subject: [PATCH 09/31] Update plugin fabric-loom to v1.8.12 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 7b52281..38fa8c6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("fabric-loom") version "1.8-SNAPSHOT" + id("fabric-loom") version "1.8.12" id("com.modrinth.minotaur") version "2.+" } From 587f207727c657a587192d5af26ce83d89bea565 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 17:26:39 +0000 Subject: [PATCH 10/31] Update dependency gradle to v8.11.1 --- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ccc1a9b..e2847c8 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists \ No newline at end of file +zipStorePath=wrapper/dists From 456b3726ba185e3af1b69ace6a9000e21eb9be17 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 17:26:43 +0000 Subject: [PATCH 11/31] Update actions/checkout action to v4 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 12cdc82..097bae8 100755 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,7 +19,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: validate gradle wrapper uses: gradle/wrapper-validation-action@v1 - name: setup jdk ${{ matrix.java }} From 9f6b890c16b1ebeca578a3e780bce6a055283c3d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 19:16:42 +0000 Subject: [PATCH 12/31] Update actions/setup-java action to v4 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 097bae8..637c109 100755 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: - name: validate gradle wrapper uses: gradle/wrapper-validation-action@v1 - name: setup jdk ${{ matrix.java }} - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.java }} - name: make gradle wrapper executable From 093fda55e70fef9e8dfa6f949def002eddfbf958 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 19:16:46 +0000 Subject: [PATCH 13/31] Update gradle/wrapper-validation-action action to v3 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 097bae8..9607d03 100755 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: - name: checkout repository uses: actions/checkout@v4 - name: validate gradle wrapper - uses: gradle/wrapper-validation-action@v1 + uses: gradle/wrapper-validation-action@v3 - name: setup jdk ${{ matrix.java }} uses: actions/setup-java@v1 with: From fe6773aff2096abd0266e9dbfafb5933deccd8d4 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Fri, 22 Nov 2024 21:54:59 +0100 Subject: [PATCH 14/31] specify distribution --- .github/workflows/build.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 637c109..2a84d39 100755 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,12 +10,16 @@ jobs: build: strategy: matrix: - # Use these Java versions java: [ 21, ] - # and run on both Linux and Windows + + distribution: [ + "temurin", + ] + os: [ubuntu-20.04, windows-2022] + runs-on: ${{ matrix.os }} steps: - name: checkout repository @@ -26,6 +30,7 @@ jobs: uses: actions/setup-java@v4 with: java-version: ${{ matrix.java }} + distribution: ${{ matrix.distribution }} - name: make gradle wrapper executable if: ${{ runner.os != 'Windows' }} run: chmod +x ./gradlew From 60fbee576ca718583cf2a7404145f7404fc8e6a7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 13:31:42 +0000 Subject: [PATCH 15/31] Update plugin fabric-loom to v1.8.13 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 38fa8c6..52578d3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("fabric-loom") version "1.8.12" + id("fabric-loom") version "1.8.13" id("com.modrinth.minotaur") version "2.+" } From 4c2b9a6266bd35a3d56fb11ec1ffec2f8164865b Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Sat, 30 Nov 2024 16:54:11 +0100 Subject: [PATCH 16/31] Update renovate.json --- renovate.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/renovate.json b/renovate.json index 5db72dd..32994dc 100644 --- a/renovate.json +++ b/renovate.json @@ -3,4 +3,6 @@ "extends": [ "config:recommended" ] + "dependencyDashboard": false, + "ignoreDeps": ["dev.kikugie.stonecutter"] } From 75454d52b25de8eee0fedec89b141e9b65a6ae8f Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Sat, 30 Nov 2024 16:55:43 +0100 Subject: [PATCH 17/31] bruh --- renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 32994dc..9fabd3d 100644 --- a/renovate.json +++ b/renovate.json @@ -2,7 +2,7 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:recommended" - ] + ], "dependencyDashboard": false, "ignoreDeps": ["dev.kikugie.stonecutter"] } From e8d42cdc610375f5b2f0b172f0f93dded40f12d9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 30 Nov 2024 15:55:57 +0000 Subject: [PATCH 18/31] Update plugin fabric-loom to v1.9.1 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 52578d3..2e7f8f4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("fabric-loom") version "1.8.13" + id("fabric-loom") version "1.9.1" id("com.modrinth.minotaur") version "2.+" } From 7cbbc776f14827b0d2bb50e942326db1bcb86918 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Sat, 30 Nov 2024 16:59:47 +0100 Subject: [PATCH 19/31] Update renovate.json --- renovate.json | 1 + 1 file changed, 1 insertion(+) diff --git a/renovate.json b/renovate.json index 9fabd3d..7c153a3 100644 --- a/renovate.json +++ b/renovate.json @@ -4,5 +4,6 @@ "config:recommended" ], "dependencyDashboard": false, + "platformAutomerge": true, "ignoreDeps": ["dev.kikugie.stonecutter"] } From c230899435fb6a69c95fe439bafab5c6a528dfad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 18:40:33 +0000 Subject: [PATCH 20/31] Update plugin fabric-loom to v1.9.2 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 2e7f8f4..98282a4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("fabric-loom") version "1.9.1" + id("fabric-loom") version "1.9.2" id("com.modrinth.minotaur") version "2.+" } From 8a34be4bf21ca50c8d5b6643d3581232a3c8e941 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Fri, 6 Dec 2024 21:18:22 +0100 Subject: [PATCH 21/31] add 1.21.4 --- versions/1.20.6/gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/1.20.6/gradle.properties b/versions/1.20.6/gradle.properties index 5597a19..a2ca26a 100644 --- a/versions/1.20.6/gradle.properties +++ b/versions/1.20.6/gradle.properties @@ -10,4 +10,4 @@ mod.version_name=1.20+ mod.min_target=1.20 mod.max_target=1.22 -publishing.supported_versions=1.20,1.20.1,1.20.2,1.20.3,1.20.4,1.20.5,1.20.6,1.21,1.21.1,1.21.2,1.21.3 +publishing.supported_versions=1.20,1.20.1,1.20.2,1.20.3,1.20.4,1.20.5,1.20.6,1.21,1.21.1,1.21.2,1.21.3,1.21.4 From 2d88832d1db4d5438f6adf383fdd276fa4bb93cd Mon Sep 17 00:00:00 2001 From: Eggmanplant <126160675+Eggmanplant@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:24:50 +0100 Subject: [PATCH 22/31] Add NoDisplay tag to not show up in applications menu --- .../assets/wayfix/com.mojang.minecraft.java-edition.desktop | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/resources/assets/wayfix/com.mojang.minecraft.java-edition.desktop b/src/main/resources/assets/wayfix/com.mojang.minecraft.java-edition.desktop index c3c3cf6..78de0a1 100644 --- a/src/main/resources/assets/wayfix/com.mojang.minecraft.java-edition.desktop +++ b/src/main/resources/assets/wayfix/com.mojang.minecraft.java-edition.desktop @@ -2,8 +2,7 @@ Name=Minecraft %s Comment=Explore your own unique world, survive the night, and create anything you can imagine! Icon=%s -Exec=true -Terminal=false Type=Application +NoDisplay=true Categories=Game; -%s \ No newline at end of file +%s From fd79b46340f2ce4e4df88933b2ecd114337178a0 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Tue, 17 Dec 2024 19:03:39 +0100 Subject: [PATCH 23/31] bump version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index ecb9228..2d41b80 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true # Mod Information -mod.version=1.0.2 +mod.version=1.0.3 mod.name=wayfix mod.maven_group=net.notcoded From 1c125271f7d2cd0c00ce012511b8adb594f712fb Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Tue, 17 Dec 2024 19:12:09 +0100 Subject: [PATCH 24/31] add change to changelog :+1: --- CHANGES.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 6fbb53a..9a69244 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,2 +1,4 @@ changes: -- fix auto gui scaling looking broken with weird window sizes \ No newline at end of file +- fix auto gui scaling looking broken with weird window sizes +- make the .desktop file not show up in the applications menu (specifically on GNOME) + - [Pull Request by Eggmanplant](https://github.com/not-coded/WayFix/pull/18) \ No newline at end of file From c5553571502665cd40fffd154859c2792b04997a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 17:24:23 +0000 Subject: [PATCH 25/31] Update dependency gradle to v8.12 --- gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e2847c8..cea7a79 100755 --- 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.11.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6..f3b75f3 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 From f68488367093fcd321b33a9cc30cf7633340ffcd Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Sat, 11 Jan 2025 20:32:00 +0100 Subject: [PATCH 26/31] kdotool is very cool --- CHANGES.md | 5 +- README.md | 3 + gradle.properties | 2 +- src/main/java/net/notcoded/wayfix/WayFix.java | 9 +++ .../wayfix/mixin/MonitorTrackerMixin.java | 3 +- .../notcoded/wayfix/mixin/WindowMixin.java | 26 +++++-- .../notcoded/wayfix/util/WindowHelper.java | 69 +++++++++++++++++++ 7 files changed, 108 insertions(+), 9 deletions(-) create mode 100644 src/main/java/net/notcoded/wayfix/util/WindowHelper.java diff --git a/CHANGES.md b/CHANGES.md index 9a69244..777fc0d 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,3 @@ changes: -- fix auto gui scaling looking broken with weird window sizes -- make the .desktop file not show up in the applications menu (specifically on GNOME) - - [Pull Request by Eggmanplant](https://github.com/not-coded/WayFix/pull/18) \ No newline at end of file +- if you're on kde plasma, minecraft will fullscreen correctly without using the fullscreen config options (basically like x11) + - only if **[kdotool](https://github.com/jinliu/kdotool)** is installed!!!!! \ No newline at end of file diff --git a/README.md b/README.md index abfef24..3fd1485 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ Fixes multiple issues regarding Wayland compatibility for Minecraft. **Recommended to be used with [glfw-wayland](https://github.com/BoyOrigin/glfw-wayland).**
**With the [Cursor Fix](https://www.reddit.com/r/kde/comments/13ddktm/mouse_cursor_changing_when_over_some_apps_when/).** +
+**And [kdotool](https://github.com/jinliu/kdotool)** ***(only if on KDE Plasma)***. @@ -33,6 +35,7 @@ Fixes multiple issues regarding Wayland compatibility for Minecraft. > [!NOTE] > By default Minecraft sometimes full-screens on the wrong monitor due to Wayland window limitations (unable to get X and Y position). +> This is automatically **fixed only on KDE Plasma** without specifying the monitor by installing **[kdotool](https://github.com/jinliu/kdotool)**. ## Building - Clone the repository diff --git a/gradle.properties b/gradle.properties index 2d41b80..1061fce 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true # Mod Information -mod.version=1.0.3 +mod.version=1.0.4 mod.name=wayfix mod.maven_group=net.notcoded diff --git a/src/main/java/net/notcoded/wayfix/WayFix.java b/src/main/java/net/notcoded/wayfix/WayFix.java index ef5549b..fd08cdc 100644 --- a/src/main/java/net/notcoded/wayfix/WayFix.java +++ b/src/main/java/net/notcoded/wayfix/WayFix.java @@ -4,6 +4,7 @@ import me.shedaniel.autoconfig.serializer.GsonConfigSerializer; import net.fabricmc.api.ClientModInitializer; import net.notcoded.wayfix.config.ModConfig; +import net.notcoded.wayfix.util.WindowHelper; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.lwjgl.glfw.GLFW; @@ -16,6 +17,14 @@ public class WayFix implements ClientModInitializer { public void onInitializeClient() { AutoConfig.register(ModConfig.class, GsonConfigSerializer::new); WayFix.config = AutoConfig.getConfigHolder(ModConfig.class).getConfig(); + + WindowHelper.checkIfCanUseWindowHelper(); + if(WindowHelper.canUseWindowHelper) { + WayFix.config.fullscreen.monitorName = ""; + WayFix.config.fullscreen.useMonitorName = false; + WayFix.config.fullscreen.monitorSelector.monitors.clear(); + WayFix.config.fullscreen.monitorSelector.monitors.add(new ModConfig.Monitors("You do not need to use this as it is automatically fixed.", 0)); // most users probably won't understand this, but I'll include it anyway + } } public static boolean isWayland() { diff --git a/src/main/java/net/notcoded/wayfix/mixin/MonitorTrackerMixin.java b/src/main/java/net/notcoded/wayfix/mixin/MonitorTrackerMixin.java index 128bc09..6bd3dc8 100644 --- a/src/main/java/net/notcoded/wayfix/mixin/MonitorTrackerMixin.java +++ b/src/main/java/net/notcoded/wayfix/mixin/MonitorTrackerMixin.java @@ -5,6 +5,7 @@ import net.minecraft.client.util.MonitorTracker; import net.notcoded.wayfix.WayFix; import net.notcoded.wayfix.config.ModConfig; +import net.notcoded.wayfix.util.WindowHelper; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -21,7 +22,7 @@ public class MonitorTrackerMixin { @Inject(method = {"handleMonitorEvent", ""}, at = @At("TAIL")) private void handleConfigAdditions(CallbackInfo ci) { - this.refreshMonitors(); + if(!WindowHelper.canUseWindowHelper) this.refreshMonitors(); } @Unique diff --git a/src/main/java/net/notcoded/wayfix/mixin/WindowMixin.java b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin.java index f799f7f..1f84cc8 100644 --- a/src/main/java/net/notcoded/wayfix/mixin/WindowMixin.java +++ b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin.java @@ -8,8 +8,11 @@ import net.notcoded.wayfix.WayFix; import net.notcoded.wayfix.config.ModConfig; import net.notcoded.wayfix.util.DesktopFileInjector; +import net.notcoded.wayfix.util.WindowHelper; import org.lwjgl.glfw.GLFW; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -39,21 +42,24 @@ */ @Mixin(Window.class) -public class WindowMixin { +public abstract class WindowMixin { + @Shadow protected abstract void onWindowPosChanged(long window, int x, int y); + + @Shadow @Final private long handle; + @Inject(method = "", at = @At(value = "INVOKE", target = "Lorg/lwjgl/glfw/GLFW;glfwDefaultWindowHints()V", shift = At.Shift.AFTER, remap = false)) private void onWindowHints(WindowEventHandler windowEventHandler, MonitorTracker monitorTracker, WindowSettings windowSettings, String string, String string2, CallbackInfo ci) { if (isWayland()) { GLFW.glfwWindowHint(GLFW.GLFW_FOCUS_ON_SHOW, GLFW.GLFW_FALSE); - if(!WayFix.config.injectIcon) return; // assuming that user wants wayland icon and not broken icon (mc launcher) - DesktopFileInjector.inject(); + if(WayFix.config.injectIcon) DesktopFileInjector.inject(); GLFW.glfwWindowHintString(GLFW.GLFW_WAYLAND_APP_ID, DesktopFileInjector.APP_ID); } } @Redirect(method = "updateWindowRegion", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/MonitorTracker;getMonitor(Lnet/minecraft/client/util/Window;)Lnet/minecraft/client/util/Monitor;")) private Monitor fixWrongMonitor(MonitorTracker instance, Window window) { - return WayFix.config.fullscreen.useMonitorName ? getMonitor(instance) : instance.getMonitor(window); + return WayFix.config.fullscreen.useMonitorName && !WindowHelper.canUseWindowHelper ? getMonitor(instance) : instance.getMonitor(window); } @Unique @@ -69,6 +75,18 @@ private Monitor getMonitor(MonitorTracker instance) { return instance.getMonitor(monitorID); } + + + // KDE Plasma ONLY + @Inject(method = "updateWindowRegion", at = @At("HEAD")) + private void fixWrongMonitor(CallbackInfo ci) { + if(!WindowHelper.canUseWindowHelper) return; + + int[] pos = WindowHelper.getWindowPos(); + if(pos == null) return; + + onWindowPosChanged(this.handle, pos[0], pos[1]); + } @Inject(method = "setIcon", at = @At("HEAD"), cancellable = true) //? if >=1.20 { diff --git a/src/main/java/net/notcoded/wayfix/util/WindowHelper.java b/src/main/java/net/notcoded/wayfix/util/WindowHelper.java new file mode 100644 index 0000000..9fc430c --- /dev/null +++ b/src/main/java/net/notcoded/wayfix/util/WindowHelper.java @@ -0,0 +1,69 @@ +package net.notcoded.wayfix.util; + +import net.minecraft.client.MinecraftClient; +import net.notcoded.wayfix.WayFix; + +import java.io.IOException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class WindowHelper { + + public static boolean canUseWindowHelper = false; + + public static void checkIfCanUseWindowHelper() { + if(!System.getenv("XDG_CURRENT_DESKTOP").contains("KDE")) return; // kdotool only works with KDE and I haven't found an alternative. + + try { + new ProcessBuilder("kdotool").start(); + canUseWindowHelper = true; + } catch (IOException ignored) { + WayFix.LOGGER.warn("WayFix recommends installing 'kdotool' to properly fix the minecraft full-screening functionality."); + } + } + + private static String windowID = ""; + + public static int[] getWindowPos() { + if(windowID.trim().isEmpty() && !setWindowID()) return null; + + String[] command = new String[]{"kdotool", "getwindowgeometry", windowID}; + + ProcessBuilder builder = new ProcessBuilder(command); + + try { + Process process = builder.start(); + String result = new String(process.getInputStream().readAllBytes()); + Pattern pattern = Pattern.compile("Position:\\s*(\\d+),(\\d+)"); + Matcher matcher = pattern.matcher(result); + if (matcher.find()) { + return new int[]{Integer.parseInt(matcher.group(1)), Integer.parseInt(matcher.group(2))}; + } else { + return null; + } + } catch (IOException ignored) { + return null; + } + } + + public static boolean setWindowID() { + if(!MinecraftClient.getInstance().isWindowFocused()) return false; + String[] command = new String[]{"kdotool", "getactivewindow", "getwindowgeometry"}; + + ProcessBuilder builder = new ProcessBuilder(command); + + try { + Process process = builder.start(); + String result = new String(process.getInputStream().readAllBytes()); + Pattern pattern = Pattern.compile("Window \\{(\\w+-\\w+-\\w+-\\w+-\\w+)}"); + Matcher matcher = pattern.matcher(result); + if (matcher.find()) { + windowID = "{" + matcher.group(1) + "}"; // let's just hope this is the minecraft window 🙠+ return true; + } + return false; + } catch (IOException ignored) { + return false; + } + } +} From 593082856177d0b58df3a878fd09fe4b86d1ad51 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Sat, 11 Jan 2025 21:50:59 +0100 Subject: [PATCH 27/31] Use IOUtils.toByteArray() instead of InputStream.readAllBytes() for Java 8 Support --- CHANGES.md | 3 ++- build.gradle.kts | 5 ++--- .../net/notcoded/wayfix/util/DesktopFileInjector.java | 5 +++++ .../java/net/notcoded/wayfix/util/WindowHelper.java | 11 +++++++++++ versions/1.16.5/gradle.properties | 2 +- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 777fc0d..951f374 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,4 @@ changes: - if you're on kde plasma, minecraft will fullscreen correctly without using the fullscreen config options (basically like x11) - - only if **[kdotool](https://github.com/jinliu/kdotool)** is installed!!!!! \ No newline at end of file + - only if **[kdotool](https://github.com/jinliu/kdotool)** is installed!!!!! +- java 8 support for 1.16.5-1.18.2 version \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 98282a4..3caf047 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -61,7 +61,7 @@ tasks.processResources { java { withSourcesJar() - val javaVersion = if (project.property("deps.java") == "9") JavaVersion.VERSION_1_9 else JavaVersion.VERSION_17 + val javaVersion = if (project.property("deps.java") == "8") JavaVersion.VERSION_1_8 else JavaVersion.VERSION_17 sourceCompatibility = javaVersion targetCompatibility = javaVersion @@ -91,6 +91,5 @@ modrinth { optional.project("modmenu") } - val changes = rootProject.file("CHANGES.md").readText() - changelog = if (project.property("deps.java") == "9") "# Requires Java 9+\n\n$changes" else changes + changelog = rootProject.file("CHANGES.md").readText() } \ No newline at end of file diff --git a/src/main/java/net/notcoded/wayfix/util/DesktopFileInjector.java b/src/main/java/net/notcoded/wayfix/util/DesktopFileInjector.java index b1e25d8..9a8bcc7 100644 --- a/src/main/java/net/notcoded/wayfix/util/DesktopFileInjector.java +++ b/src/main/java/net/notcoded/wayfix/util/DesktopFileInjector.java @@ -73,8 +73,13 @@ public static void setIcon(List> icons) { try { // https://stackoverflow.com/questions/58534138/does-files-readallbytes-closes-the-inputstream-after-reading-the-file + //? if >=1.19 { icon16Byte = icon16.readAllBytes(); icon32Byte = icon32.readAllBytes(); + //?} elif <1.19 { + /^icon16Byte = IOUtils.toByteArray(icon16); + icon32Byte = IOUtils.toByteArray(icon32); + ^///?} } catch (IOException e) { e.printStackTrace(); return; diff --git a/src/main/java/net/notcoded/wayfix/util/WindowHelper.java b/src/main/java/net/notcoded/wayfix/util/WindowHelper.java index 9fc430c..4b98693 100644 --- a/src/main/java/net/notcoded/wayfix/util/WindowHelper.java +++ b/src/main/java/net/notcoded/wayfix/util/WindowHelper.java @@ -2,6 +2,9 @@ import net.minecraft.client.MinecraftClient; import net.notcoded.wayfix.WayFix; +//? if <1.19 { +/*import org.apache.commons.io.IOUtils; +*///?} import java.io.IOException; import java.util.regex.Matcher; @@ -33,7 +36,11 @@ public static int[] getWindowPos() { try { Process process = builder.start(); + //? if >=1.19 { String result = new String(process.getInputStream().readAllBytes()); + //?} elif <1.19 { + /*String result = new String(IOUtils.toByteArray(process.getInputStream())); + *///?} Pattern pattern = Pattern.compile("Position:\\s*(\\d+),(\\d+)"); Matcher matcher = pattern.matcher(result); if (matcher.find()) { @@ -54,7 +61,11 @@ public static boolean setWindowID() { try { Process process = builder.start(); + //? if >=1.19 { String result = new String(process.getInputStream().readAllBytes()); + //?} elif <1.19 { + /*String result = new String(IOUtils.toByteArray(process.getInputStream())); + *///?} Pattern pattern = Pattern.compile("Window \\{(\\w+-\\w+-\\w+-\\w+-\\w+)}"); Matcher matcher = pattern.matcher(result); if (matcher.find()) { diff --git a/versions/1.16.5/gradle.properties b/versions/1.16.5/gradle.properties index b961f90..059827e 100644 --- a/versions/1.16.5/gradle.properties +++ b/versions/1.16.5/gradle.properties @@ -3,7 +3,7 @@ deps.minecraft=1.16.5 deps.yarn_mappings=1.16.5+build.10 deps.cloth_config_version=4.10.11 deps.mod_menu_version=1.16.23 -deps.java=9 +deps.java=8 mod.version_name=1.16-1.18.2 From 3c643cb6f3cd0af4850e2a6f8adabc7245c69d14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 16:46:03 +0000 Subject: [PATCH 28/31] Update dependency gradle to v8.12.1 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index cea7a79..e18bc25 100755 --- 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.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 3032aef893e423eb303eb3ac04760388a47395d7 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Thu, 30 Jan 2025 20:55:20 +0100 Subject: [PATCH 29/31] unstonecutterify --- .github/workflows/build.yml | 2 +- build.gradle.kts | 135 +++++++++++++----- gradle.properties | 27 ++-- libraries/codelib-2.0.0+1.21.jar | Bin 0 -> 146263 bytes settings.gradle.kts | 18 --- .../wayfix/mixin/MinecraftClientMixin.java | 28 ++-- .../notcoded/wayfix/mixin/WindowMixin.java | 41 ------ .../wayfix/mixin/WindowMixin1165to1192.java | 27 ++++ .../wayfix/mixin/WindowMixin1193to1194.java | 30 ++++ .../notcoded/wayfix/mixin/WindowMixin120.java | 31 ++++ .../wayfix/util/DesktopFileInjector.java | 25 ++-- .../notcoded/wayfix/util/WindowHelper.java | 16 +-- src/main/resources/fabric.mod.json | 5 +- src/main/resources/wayfix.mixins.json | 8 +- stonecutter.gradle.kts | 14 -- 15 files changed, 230 insertions(+), 177 deletions(-) create mode 100644 libraries/codelib-2.0.0+1.21.jar create mode 100644 src/main/java/net/notcoded/wayfix/mixin/WindowMixin1165to1192.java create mode 100644 src/main/java/net/notcoded/wayfix/mixin/WindowMixin1193to1194.java create mode 100644 src/main/java/net/notcoded/wayfix/mixin/WindowMixin120.java delete mode 100644 stonecutter.gradle.kts diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e0c9b79..e7a3cca 100755 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,7 +35,7 @@ jobs: if: ${{ runner.os != 'Windows' }} run: chmod +x ./gradlew - name: build - run: ./gradlew chiseledBuild + run: ./gradlew build - name: capture build artifacts if: ${{ runner.os == 'Linux' && matrix.java == '21' }} # Only upload artifacts built from latest java on one OS uses: actions/upload-artifact@v4 diff --git a/build.gradle.kts b/build.gradle.kts index 3caf047..41beb0f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,54 +1,46 @@ +import java.net.URI +import java.nio.charset.StandardCharsets +import java.nio.file.FileSystems +import java.nio.file.Files +import java.nio.file.StandardOpenOption +import kotlin.io.path.readText + plugins { id("fabric-loom") version "1.9.2" id("com.modrinth.minotaur") version "2.+" } -val modName = property("mod.name").toString() -version = "${property("mod.version")}" + "+" + "${property("mod.version_name")}" -group = property("mod.maven_group").toString() +version = property("mod_version")!! +group = property("maven_group")!! base { - archivesName.set(modName) + archivesName.set(property("archives_base_name").toString()) } repositories { + flatDir { dirs("libraries") } + maven("https://maven.shedaniel.me/") maven("https://maven.terraformersmc.com/releases/") } dependencies { - minecraft("com.mojang:minecraft:${property("deps.minecraft")}") - mappings("net.fabricmc:yarn:${property("deps.yarn_mappings")}:v2") - modImplementation("net.fabricmc:fabric-loader:${property("deps.fabric_loader")}") + minecraft("com.mojang:minecraft:${property("minecraft_version")}") + mappings("net.fabricmc:yarn:${property("yarn_mappings")}:v2") + modImplementation("net.fabricmc:fabric-loader:${property("loader_version")}") - modImplementation("me.shedaniel.cloth:cloth-config-fabric:${property("deps.cloth_config_version")}") - modImplementation("com.terraformersmc:modmenu:${property("deps.mod_menu_version")}") - - implementation("org.lwjgl:lwjgl-glfw:3.3.2") -} + modImplementation("me.shedaniel.cloth:cloth-config-fabric:${property("cloth_config_version")}") + modImplementation("com.terraformersmc:modmenu:${property("mod_menu_version")}") -loom { - decompilers { - get("vineflower").apply { // Adds names to lambdas - useful for mixins - options.put("mark-corresponding-synthetics", "1") - } - } + modImplementation("net.notcoded:codelib:${property("codelib_version")}") - runConfigs.all { - ideConfigGenerated(true) - vmArgs("-Dmixin.debug.export=true") - runDir = "../../run" - } + implementation("org.lwjgl:lwjgl-glfw:3.3.2") } -val target = ">=${property("mod.min_target")}- <=${property("mod.max_target")}" - tasks.processResources { val expandProps = mapOf( "version" to project.version, - "minecraftVersion" to target, - "javaVersion" to project.property("deps.java") ) filesMatching("fabric.mod.json") { @@ -58,21 +50,90 @@ tasks.processResources { inputs.properties(expandProps) } +tasks.withType { + options.encoding = "UTF-8" + options.release.set(8) +} + java { withSourcesJar() - val javaVersion = if (project.property("deps.java") == "8") JavaVersion.VERSION_1_8 else JavaVersion.VERSION_17 - - sourceCompatibility = javaVersion - targetCompatibility = javaVersion + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 } -tasks.register("buildAndCollect") { - group = "build" - from(tasks.remapJar.get().archiveFile) - into(rootProject.layout.buildDirectory.file("libs")) - dependsOn("build") -} +project.gradle.addBuildListener(object : BuildListener { + override fun settingsEvaluated(settings: Settings) { } + + override fun projectsLoaded(gradle: Gradle) { } + + override fun projectsEvaluated(gradle: Gradle) { } + + override fun buildFinished(result: BuildResult) { + if (result.failure != null) return + println("Fixing RefMaps") + + var jarFile = file(layout.buildDirectory.file("libs/wayfix-${project.version}.jar")) + + val env: MutableMap = HashMap() + env.put("create", "true") + + val path: java.nio.file.Path = jarFile.toPath() + val uri: URI? = URI.create("jar:" + path.toUri()) + + FileSystems.newFileSystem(uri, env).use { fs -> + val refMap: java.nio.file.Path? = fs.getPath("wayfix-refmap.json") + if(refMap == null) return + var refMapText = refMap.readText() + + // Fix refmap for the mixin WindowMixin1165to1192: + // Lnet/minecraft/class_1041;method_4491(Ljava/io/InputStream;Ljava/io/InputStream;)V + + refMapText = refMapText.replace( + " \"net/notcoded/wayfix/mixin/WindowMixin1165to1192\": {\n" + + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_3262;Lnet/minecraft/class_8518;)V\"\n" + + " },", + " \"net/notcoded/wayfix/mixin/WindowMixin1165to1192\": {\n" + + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Ljava/io/InputStream;Ljava/io/InputStream;)V\"\n" + + " }," + ) + + refMapText = refMapText.replace( + " \"net/notcoded/wayfix/mixin/WindowMixin1165to1192\": {\n" + + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_3262;Lnet/minecraft/class_8518;)V\"\n" + + " },", + " \"net/notcoded/wayfix/mixin/WindowMixin1165to1192\": {\n" + + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_1041;method_4491(Ljava/io/InputStream;Ljava/io/InputStream;)V\"\n" + + " }," + ) + + // Fix refmap for the mixin WindowMixin1193to1194: + // Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_7367;Lnet/minecraft/class_7367;)V + + refMapText = refMapText.replace( + " \"net/notcoded/wayfix/mixin/WindowMixin1193to1194\": {\n" + + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_3262;Lnet/minecraft/class_8518;)V\"\n" + + " },", + " \"net/notcoded/wayfix/mixin/WindowMixin1193to1194\": {\n" + + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_7367;Lnet/minecraft/class_7367;)V\"\n" + + " }," + ) + + refMapText = refMapText.replace( + " \"net/notcoded/wayfix/mixin/WindowMixin1193to1194\": {\n" + + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_3262;Lnet/minecraft/class_8518;)V\"\n" + + " },", + " \"net/notcoded/wayfix/mixin/WindowMixin1193to1194\": {\n" + + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_7367;Lnet/minecraft/class_7367;)V\"\n" + + " }," + ) + + Files.newBufferedWriter(refMap, StandardCharsets.UTF_8, StandardOpenOption.WRITE).use { writer -> + writer.write(refMapText) + } + } + } +}) modrinth { diff --git a/gradle.properties b/gradle.properties index 1061fce..a388ac0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,22 +3,19 @@ org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true # Mod Information -mod.version=1.0.4 -mod.name=wayfix -mod.maven_group=net.notcoded +mod_version=1.0.4 +archives_base_name=wayfix +maven_group=net.notcoded -mod.version_name=[VERSIONED] - -mod.min_target=[VERSIONED] -mod.max_target=[VERSIONED] - -publishing.supported_versions=[VERSIONED] +publishing.supported_versions=1.16,1.16.1,1.16.2,1.16.3,1.16.4,1.16.5,1.17,1.17.1,1.18,1.18.1,1.18.2,1.19,1.19.1,1.19.2,1.19.3,1.19.4,1.20,1.20.1,1.20.2,1.20.3,1.20.4,1.20.5,1.20.6,1.21,1.21.1,1.21.2,1.21.3,1.21.4 # Dependencies # https://fabricmc.net/develop -deps.yarn=[VERSIONED] -deps.fabric_loader=0.14.20 -deps.cloth_config_version=[VERSIONED] -deps.mod_menu_version=[VERSIONED] -deps.fabric_api=[VERSIONED] -deps.java=[VERSIONED] + +minecraft_version=1.21 +yarn_mappings=1.21+build.9 +loader_version=0.15.11 + +mod_menu_version=11.0.3 +cloth_config_version=15.0.140 +codelib_version=2.0.0+1.21 diff --git a/libraries/codelib-2.0.0+1.21.jar b/libraries/codelib-2.0.0+1.21.jar new file mode 100644 index 0000000000000000000000000000000000000000..125a56bbf2a53d6049fe026ea30bfa6dc62b0e6a GIT binary patch literal 146263 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

}glxjXbK?)tr&@l+n>(&BM2}@vKO=%r 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 Uyt#rx!Mh~M!4FZLk|^T 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.19 { - guiScale = this.options.getGuiScale().getValue(); - //?} elif <1.19 { - /*guiScale = this.options.guiScale; - *///?} + @Redirect(method = "onResolutionChanged", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/Window;calculateScaleFactor(IZ)I")) + private int fixHiDPIScaling(Window instance, int guiScale, boolean forceUnicodeFont) { + int fixedGuiScale = guiScale; // "Auto" or Gui Scale 0 already auto-scales it - return guiScale != 0 && WayFix.config.autoScaleGUI ? window.calculateScaleFactor(Math.round(guiScale * getScaleFactor()), this.forcesUnicodeFont()) : d; + if (guiScale != 0 && WayFix.config.autoScaleGUI) { + fixedGuiScale = Math.round(guiScale * getScaleFactor(instance)); + } + + return instance.calculateScaleFactor(fixedGuiScale, forceUnicodeFont); } @Unique - private float getScaleFactor() { + private float getScaleFactor(Window instance) { float[] pos = new float[1]; - GLFW.glfwGetWindowContentScale(this.window.getHandle(), pos, pos); + GLFW.glfwGetWindowContentScale(instance.getHandle(), pos, pos); return pos[0]; // using x or y doesn't matter } diff --git a/src/main/java/net/notcoded/wayfix/mixin/WindowMixin.java b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin.java index 1f84cc8..1ab4bf5 100644 --- a/src/main/java/net/notcoded/wayfix/mixin/WindowMixin.java +++ b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin.java @@ -21,21 +21,6 @@ import static net.notcoded.wayfix.WayFix.isWayland; -//? if >=1.20 { - -import net.minecraft.client.util.Icons; -import net.minecraft.resource.ResourcePack; -import java.io.IOException; -//?} elif 1.19.3 { -/*import java.util.ArrayList; -import java.util.Arrays; -import net.minecraft.resource.InputSupplier; -*///?} - -//? if <1.20 { -/*import java.io.InputStream; -*///?} - /* - Credits to moehreag for most of the code - https://github.com/moehreag/wayland-fixes @@ -87,30 +72,4 @@ private void fixWrongMonitor(CallbackInfo ci) { onWindowPosChanged(this.handle, pos[0], pos[1]); } - - @Inject(method = "setIcon", at = @At("HEAD"), cancellable = true) - //? if >=1.20 { - - private void injectIcon(ResourcePack resourcePack, Icons icons, CallbackInfo ci) { - //?} elif 1.19.3 { - /*private void injectIcon(InputSupplier smallIconSupplier, InputSupplier bigIconSupplier, CallbackInfo ci) { - *///?} elif <1.19.3 { - - /*private void injectIcon(InputStream icon16, InputStream icon32, CallbackInfo ci) { - *///?} - if (isWayland()) { - //? if >=1.20 { - try { - DesktopFileInjector.setIcon(icons.getIcons(resourcePack)); - } catch (IOException ignored) { } - //?} elif 1.19.3 { - /*DesktopFileInjector.setIcon(new ArrayList<>(Arrays.asList(smallIconSupplier, bigIconSupplier))); - *///?} elif <1.19.3 { - - /*DesktopFileInjector.setIcon(icon16, icon32); - *///?} - - ci.cancel(); - } - } } \ No newline at end of file diff --git a/src/main/java/net/notcoded/wayfix/mixin/WindowMixin1165to1192.java b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin1165to1192.java new file mode 100644 index 0000000..c0deea2 --- /dev/null +++ b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin1165to1192.java @@ -0,0 +1,27 @@ +package net.notcoded.wayfix.mixin; + +import net.minecraft.client.util.Window; +import net.notcoded.codelib.common.mixinhelper.annotation.MinecraftVersion; +import net.notcoded.wayfix.util.DesktopFileInjector; +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; + +import java.io.InputStream; + +import static net.notcoded.wayfix.WayFix.isWayland; + +@MinecraftVersion(minecraft = {">=1.16.5", "<=1.19.2"}) +@Mixin(Window.class) +public class WindowMixin1165to1192 { + + // Ignore error + @Inject(method = "setIcon", at = @At("HEAD"), cancellable = true) + private void injectIcon(InputStream icon16, InputStream icon32, CallbackInfo ci) { + if (isWayland()) { + DesktopFileInjector.setIcon(icon16, icon32); + ci.cancel(); + } + } +} diff --git a/src/main/java/net/notcoded/wayfix/mixin/WindowMixin1193to1194.java b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin1193to1194.java new file mode 100644 index 0000000..1839199 --- /dev/null +++ b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin1193to1194.java @@ -0,0 +1,30 @@ +package net.notcoded.wayfix.mixin; + +import net.minecraft.client.util.Window; +import net.minecraft.resource.InputSupplier; +import net.notcoded.codelib.common.mixinhelper.annotation.MinecraftVersion; +import net.notcoded.wayfix.util.DesktopFileInjector; +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; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; + +import static net.notcoded.wayfix.WayFix.isWayland; + +@MinecraftVersion(minecraft = {"1.19.3", "1.19.4"}) +@Mixin(Window.class) +public class WindowMixin1193to1194 { + + // Ignore error + @Inject(method = "setIcon", at = @At("HEAD"), cancellable = true) + private void injectIcon(InputSupplier smallIconSupplier, InputSupplier bigIconSupplier, CallbackInfo ci) { + if (isWayland()) { + DesktopFileInjector.setIcon(new ArrayList<>(Arrays.asList(smallIconSupplier, bigIconSupplier))); + ci.cancel(); + } + } +} diff --git a/src/main/java/net/notcoded/wayfix/mixin/WindowMixin120.java b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin120.java new file mode 100644 index 0000000..9bf9f47 --- /dev/null +++ b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin120.java @@ -0,0 +1,31 @@ +package net.notcoded.wayfix.mixin; + +import net.minecraft.client.util.Icons; +import net.minecraft.client.util.Window; +import net.minecraft.resource.ResourcePack; +import net.notcoded.codelib.common.mixinhelper.annotation.MinecraftVersion; +import net.notcoded.wayfix.util.DesktopFileInjector; +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; + +import java.io.IOException; + +import static net.notcoded.wayfix.WayFix.isWayland; + +@MinecraftVersion(minecraft = ">=1.20") +@Mixin(Window.class) +public class WindowMixin120 { + + // Ignore error + @Inject(method = "setIcon", at = @At("HEAD"), cancellable = true) + private void injectIcon(ResourcePack resourcePack, Icons icons, CallbackInfo ci) { + if (isWayland()) { + try { + DesktopFileInjector.setIcon(icons.getIcons(resourcePack)); + } catch (IOException ignored) { } + ci.cancel(); + } + } +} diff --git a/src/main/java/net/notcoded/wayfix/util/DesktopFileInjector.java b/src/main/java/net/notcoded/wayfix/util/DesktopFileInjector.java index 9a8bcc7..b7fa32d 100644 --- a/src/main/java/net/notcoded/wayfix/util/DesktopFileInjector.java +++ b/src/main/java/net/notcoded/wayfix/util/DesktopFileInjector.java @@ -1,14 +1,11 @@ package net.notcoded.wayfix.util; import net.minecraft.client.MinecraftClient; -//? if >=1.19.3 { import net.minecraft.resource.InputSupplier; -import java.util.List; -//?} elif <1.19.3 { -/*import java.util.ArrayList; -import java.util.Arrays; import java.io.ByteArrayInputStream; -*///?} +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import net.notcoded.wayfix.WayFix; import org.apache.commons.io.IOUtils; import javax.imageio.ImageIO; @@ -49,7 +46,7 @@ public static void inject() { } - //? if >=1.19.3 { + // >=1.19.3 public static void setIcon(List> icons) { if(!WayFix.config.injectIcon) return; for (InputSupplier supplier : icons) { @@ -64,22 +61,17 @@ public static void setIcon(List> icons) { } updateIconSystem(); } - //?} elif <1.19.3 { - - /*public static void setIcon(InputStream icon16, InputStream icon32) { + + // <1.19.3 + public static void setIcon(InputStream icon16, InputStream icon32) { if(!WayFix.config.injectIcon) return; byte[] icon16Byte; byte[] icon32Byte; try { // https://stackoverflow.com/questions/58534138/does-files-readallbytes-closes-the-inputstream-after-reading-the-file - //? if >=1.19 { - icon16Byte = icon16.readAllBytes(); - icon32Byte = icon32.readAllBytes(); - //?} elif <1.19 { - /^icon16Byte = IOUtils.toByteArray(icon16); + icon16Byte = IOUtils.toByteArray(icon16); icon32Byte = IOUtils.toByteArray(icon32); - ^///?} } catch (IOException e) { e.printStackTrace(); return; @@ -99,7 +91,6 @@ public static void setIcon(List> icons) { updateIconSystem(); } - *///?} private static void injectFile(Path target, byte[] data) { try { diff --git a/src/main/java/net/notcoded/wayfix/util/WindowHelper.java b/src/main/java/net/notcoded/wayfix/util/WindowHelper.java index 4b98693..5d8cd5b 100644 --- a/src/main/java/net/notcoded/wayfix/util/WindowHelper.java +++ b/src/main/java/net/notcoded/wayfix/util/WindowHelper.java @@ -2,9 +2,7 @@ import net.minecraft.client.MinecraftClient; import net.notcoded.wayfix.WayFix; -//? if <1.19 { -/*import org.apache.commons.io.IOUtils; -*///?} +import org.apache.commons.compress.utils.IOUtils; import java.io.IOException; import java.util.regex.Matcher; @@ -36,11 +34,7 @@ public static int[] getWindowPos() { try { Process process = builder.start(); - //? if >=1.19 { - String result = new String(process.getInputStream().readAllBytes()); - //?} elif <1.19 { - /*String result = new String(IOUtils.toByteArray(process.getInputStream())); - *///?} + String result = new String(IOUtils.toByteArray(process.getInputStream())); Pattern pattern = Pattern.compile("Position:\\s*(\\d+),(\\d+)"); Matcher matcher = pattern.matcher(result); if (matcher.find()) { @@ -61,11 +55,7 @@ public static boolean setWindowID() { try { Process process = builder.start(); - //? if >=1.19 { - String result = new String(process.getInputStream().readAllBytes()); - //?} elif <1.19 { - /*String result = new String(IOUtils.toByteArray(process.getInputStream())); - *///?} + String result = new String(IOUtils.toByteArray(process.getInputStream())); Pattern pattern = Pattern.compile("Window \\{(\\w+-\\w+-\\w+-\\w+-\\w+)}"); Matcher matcher = pattern.matcher(result); if (matcher.find()) { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 6599de5..457a967 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -33,8 +33,9 @@ "depends": { "fabricloader": ">=0.14.20", "cloth-config2": ">=4.9.0", - "minecraft": "${minecraftVersion}", - "java": ">=${javaVersion}" + "minecraft": ">=1.16", + "codelib": ">=2.0.0", + "java": ">=8" }, "recommends": { "modmenu": "*" diff --git a/src/main/resources/wayfix.mixins.json b/src/main/resources/wayfix.mixins.json index 406761f..1fa337a 100644 --- a/src/main/resources/wayfix.mixins.json +++ b/src/main/resources/wayfix.mixins.json @@ -8,9 +8,13 @@ "MinecraftClientMixin", "MonitorTrackerMixin", "TextFieldWidgetMixin", - "WindowMixin" + "WindowMixin", + "WindowMixin1165to1192", + "WindowMixin1193to1194", + "WindowMixin120" ], "injectors": { "defaultRequire": 1 - } + }, + "plugin": "net.notcoded.codelib.common.mixinhelper.MixinPlugin" } \ No newline at end of file diff --git a/stonecutter.gradle.kts b/stonecutter.gradle.kts deleted file mode 100644 index 8ac44d1..0000000 --- a/stonecutter.gradle.kts +++ /dev/null @@ -1,14 +0,0 @@ -plugins { - id("dev.kikugie.stonecutter") -} -stonecutter active "1.20.6" /* [SC] DO NOT EDIT */ - -stonecutter registerChiseled tasks.register("chiseledBuild", stonecutter.chiseled) { - group = "project" - ofTask("buildAndCollect") -} - -stonecutter registerChiseled tasks.register("chiseledModrinth", stonecutter.chiseled) { - group = "project" - ofTask("modrinth") -} From 61c3c4726da2bd5d0710d7e83a76a6458fff4fee Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Thu, 30 Jan 2025 20:55:29 +0100 Subject: [PATCH 30/31] bump version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index a388ac0..2e6abde 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true # Mod Information -mod_version=1.0.4 +mod_version=1.0.5 archives_base_name=wayfix maven_group=net.notcoded From 7f0b06e07b77371ed96608fb849de6482c6a0143 Mon Sep 17 00:00:00 2001 From: NotCoded <66999075+not-coded@users.noreply.github.com> Date: Fri, 31 Jan 2025 14:57:07 +0100 Subject: [PATCH 31/31] 1.16.5 -> 1.16 --- build.gradle.kts | 10 +++++----- ...wMixin1165to1192.java => WindowMixin116to1192.java} | 4 ++-- src/main/resources/wayfix.mixins.json | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) rename src/main/java/net/notcoded/wayfix/mixin/{WindowMixin1165to1192.java => WindowMixin116to1192.java} (89%) diff --git a/build.gradle.kts b/build.gradle.kts index 41beb0f..a470843 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -86,23 +86,23 @@ project.gradle.addBuildListener(object : BuildListener { if(refMap == null) return var refMapText = refMap.readText() - // Fix refmap for the mixin WindowMixin1165to1192: + // Fix refmap for the mixin WindowMixin116to1192: // Lnet/minecraft/class_1041;method_4491(Ljava/io/InputStream;Ljava/io/InputStream;)V refMapText = refMapText.replace( - " \"net/notcoded/wayfix/mixin/WindowMixin1165to1192\": {\n" + + " \"net/notcoded/wayfix/mixin/WindowMixin116to1192\": {\n" + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_3262;Lnet/minecraft/class_8518;)V\"\n" + " },", - " \"net/notcoded/wayfix/mixin/WindowMixin1165to1192\": {\n" + + " \"net/notcoded/wayfix/mixin/WindowMixin116to1192\": {\n" + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Ljava/io/InputStream;Ljava/io/InputStream;)V\"\n" + " }," ) refMapText = refMapText.replace( - " \"net/notcoded/wayfix/mixin/WindowMixin1165to1192\": {\n" + + " \"net/notcoded/wayfix/mixin/WindowMixin116to1192\": {\n" + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_3262;Lnet/minecraft/class_8518;)V\"\n" + " },", - " \"net/notcoded/wayfix/mixin/WindowMixin1165to1192\": {\n" + + " \"net/notcoded/wayfix/mixin/WindowMixin116to1192\": {\n" + " \"setIcon\": \"Lnet/minecraft/class_1041;method_4491(Lnet/minecraft/class_1041;method_4491(Ljava/io/InputStream;Ljava/io/InputStream;)V\"\n" + " }," ) diff --git a/src/main/java/net/notcoded/wayfix/mixin/WindowMixin1165to1192.java b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin116to1192.java similarity index 89% rename from src/main/java/net/notcoded/wayfix/mixin/WindowMixin1165to1192.java rename to src/main/java/net/notcoded/wayfix/mixin/WindowMixin116to1192.java index c0deea2..e97348f 100644 --- a/src/main/java/net/notcoded/wayfix/mixin/WindowMixin1165to1192.java +++ b/src/main/java/net/notcoded/wayfix/mixin/WindowMixin116to1192.java @@ -12,9 +12,9 @@ import static net.notcoded.wayfix.WayFix.isWayland; -@MinecraftVersion(minecraft = {">=1.16.5", "<=1.19.2"}) +@MinecraftVersion(minecraft = {">=1.16", "<=1.19.2"}) @Mixin(Window.class) -public class WindowMixin1165to1192 { +public class WindowMixin116to1192 { // Ignore error @Inject(method = "setIcon", at = @At("HEAD"), cancellable = true) diff --git a/src/main/resources/wayfix.mixins.json b/src/main/resources/wayfix.mixins.json index 1fa337a..61d00af 100644 --- a/src/main/resources/wayfix.mixins.json +++ b/src/main/resources/wayfix.mixins.json @@ -9,7 +9,7 @@ "MonitorTrackerMixin", "TextFieldWidgetMixin", "WindowMixin", - "WindowMixin1165to1192", + "WindowMixin116to1192", "WindowMixin1193to1194", "WindowMixin120" ],