diff --git a/.gitignore b/.gitignore index 93fb327..4fa6c89 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ build/ *.log run/* -!run/launch.bat \ No newline at end of file +!run/launch.sh +.idea \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 7f753ef..31f4c85 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ version = '1.0.0' group = "com.elitemastereric" archivesBaseName = "helloworld" -sourceCompatibility = JavaVersion.VERSION_16 -targetCompatibility = JavaVersion.VERSION_16 +sourceCompatibility = JavaVersion.VERSION_17 +targetCompatibility = JavaVersion.VERSION_17 dependencies { implementation "com.google.guava:guava:21.0" diff --git a/exampleMod/build.gradle b/exampleMod/build.gradle index de069c5..9156d2e 100644 --- a/exampleMod/build.gradle +++ b/exampleMod/build.gradle @@ -3,8 +3,8 @@ plugins { id 'maven-publish' } -sourceCompatibility = JavaVersion.VERSION_16 -targetCompatibility = JavaVersion.VERSION_16 +sourceCompatibility = JavaVersion.VERSION_17 +targetCompatibility = JavaVersion.VERSION_17 version = "1.2.0" group = "com.elitemastereric" @@ -44,7 +44,7 @@ tasks.withType(JavaCompile).configureEach { // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html // If Javadoc is generated, this must be specified in that task too. it.options.encoding = "UTF-8" - it.options.release = 16 + it.options.release = 17 } task buildAndCopy(type: Copy) { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index ccebba7..e644113 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 bdc9a83..a441313 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 index 79a61d4..b740cf1 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/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/. @@ -83,10 +83,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# 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 "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,10 +131,13 @@ 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. @@ -144,7 +145,7 @@ 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=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -197,11 +198,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" \ diff --git a/gradlew.bat b/gradlew.bat index 93e3f59..25da30d 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 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. +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 @@ -57,11 +57,11 @@ 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. +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 diff --git a/modLoader/build.gradle b/modLoader/build.gradle index b14b6fc..72478ab 100644 --- a/modLoader/build.gradle +++ b/modLoader/build.gradle @@ -21,8 +21,8 @@ repositories { } } -sourceCompatibility = JavaVersion.VERSION_16 -targetCompatibility = JavaVersion.VERSION_16 +sourceCompatibility = JavaVersion.VERSION_17 +targetCompatibility = JavaVersion.VERSION_17 version = '1.0.0' group = "com.elitemastereric" @@ -33,18 +33,16 @@ dependencies { api "com.google.code.gson:gson:2.8.7" // Fabric dependencies - api "net.fabricmc:fabric-loader:0.13.3" - api "net.fabricmc:tiny-mappings-parser:0.2.2.14" + api "net.fabricmc:fabric-loader:0.16.9" api "net.fabricmc:access-widener:2.1.0" // Mixin dependencies - api "org.ow2.asm:asm:9.2" - api "org.ow2.asm:asm-analysis:9.2" - api "org.ow2.asm:asm-commons:9.2" - api "org.ow2.asm:asm-tree:9.2" - api "org.ow2.asm:asm-util:9.2" - api 'org.spongepowered:mixin:0.8.5' - + api "org.ow2.asm:asm:9.6" + api "org.ow2.asm:asm-analysis:9.6" + api "org.ow2.asm:asm-commons:9.6" + api "org.ow2.asm:asm-tree:9.6" + api "org.ow2.asm:asm-util:9.6" + api "net.fabricmc:sponge-mixin:0.15.5+mixin.0.8.7" } sourceSets { diff --git a/modLoader/src/main/java/com/elitemastereric/modloader/AppGameProvider.java b/modLoader/src/main/java/com/elitemastereric/modloader/AppGameProvider.java index 0487594..bd3bd41 100644 --- a/modLoader/src/main/java/com/elitemastereric/modloader/AppGameProvider.java +++ b/modLoader/src/main/java/com/elitemastereric/modloader/AppGameProvider.java @@ -37,6 +37,7 @@ public class AppGameProvider implements GameProvider { private Arguments arguments; private Path appJar; + private final List appJarList = new ArrayList<>(); /* * Display an identifier for the app. @@ -166,6 +167,7 @@ public class AppGameProvider implements GameProvider { } this.appJar = result.path; + this.appJarList.add(this.appJar); return true; } @@ -176,7 +178,7 @@ public class AppGameProvider implements GameProvider { */ @Override public void initialize(FabricLauncher launcher) { - TRANSFORMER.locateEntrypoints(launcher, appJar); + TRANSFORMER.locateEntrypoints(launcher, appJarList); } /* diff --git a/run/launch.bat b/run/launch.bat deleted file mode 100644 index 08efa5f..0000000 --- a/run/launch.bat +++ /dev/null @@ -1 +0,0 @@ -java -Dfabric.skipMcProvider=true -classpath "helloworld-1.0.0.jar;modloader-1.0.0.jar;deps/*" net.fabricmc.loader.launch.knot.KnotClient \ No newline at end of file diff --git a/run/launch.sh b/run/launch.sh new file mode 100644 index 0000000..2537833 --- /dev/null +++ b/run/launch.sh @@ -0,0 +1,2 @@ +#!/bin/bash +java -Dfabric.skipMcProvider=true -classpath "helloworld-1.0.0.jar:modloader-1.0.0.jar:deps/*" net.fabricmc.loader.launch.knot.KnotClient \ No newline at end of file