diff --git a/build.gradle b/build.gradle index 36f20ad..b092859 100644 --- a/build.gradle +++ b/build.gradle @@ -2,14 +2,14 @@ plugins { // see https://fabricmc.net/develop/ for new versions id 'fabric-loom' version '1.10-SNAPSHOT' apply false // see https://projects.neoforged.net/neoforged/moddevgradle for new versions - id 'net.neoforged.moddev' version '2.0.80' apply false + id 'net.neoforged.moddev' version '2.0.+' apply false // see https://files.minecraftforge.net/net/minecraftforge/gradle/ForgeGradle/ for new versions - id 'net.minecraftforge.gradle' version '6.0.35' apply false + id 'net.minecraftforge.gradle' version '6.0.+' apply false id 'org.parchmentmc.librarian.forgegradle' version '1.+' apply false id 'org.spongepowered.mixin' version '0.7-SNAPSHOT' apply false - id 'me.modmuss50.mod-publish-plugin' version '0.8.4' apply false + id 'me.modmuss50.mod-publish-plugin' version '0.8.+' apply false } allprojects { diff --git a/buildSrc/src/main/groovy/multiloader-common.gradle b/buildSrc/src/main/groovy/multiloader-common.gradle index 26834e4..0e81577 100644 --- a/buildSrc/src/main/groovy/multiloader-common.gradle +++ b/buildSrc/src/main/groovy/multiloader-common.gradle @@ -83,7 +83,6 @@ processResources { 'group' : project.group, //Else we target the task's group. 'minecraft_version' : minecraft_version, 'minecraft_version_range' : minecraft_version_range, - 'fabric_loader_version' : fabric_loader_version, 'mod_name' : mod_name, 'mod_author' : mod_author, 'mod_id' : mod_id, @@ -92,16 +91,20 @@ processResources { 'mod_issues' : mod_issues, 'license' : license, 'description' : project.description, - 'forge_version' : forge_version, - 'forge_loader_version_range' : forge_loader_version_range, - 'neoforge_version' : neoforge_version, - 'neoforge_loader_version_range': neoforge_loader_version_range, 'credits' : credits, - 'java_version' : java_version + 'java_version' : java_version, + + // Loader specific properties + 'fabric_loader_version' : project.hasProperty('fabric_loader_version') ? fabric_loader_version : '', + 'forge_version' : project.hasProperty('forge_version') ? forge_version : '', + 'forge_loader_version_range' : project.hasProperty('forge_loader_version_range') ? forge_loader_version_range : '', + 'neoforge_version' : project.hasProperty('neoforge_version') ? neoforge_version : '', + 'neoforge_loader_version_range': project.hasProperty('neoforge_loader_version_range') ? neoforge_loader_version_range : '' ] filesMatching(['pack.mcmeta', 'fabric.mod.json', 'META-INF/mods.toml', 'META-INF/neoforge.mods.toml', '*.mixins.json']) { expand expandProps } + inputs.properties(expandProps) } diff --git a/buildSrc/src/main/groovy/multiloader-publish.gradle b/buildSrc/src/main/groovy/multiloader-publish.gradle index 8058a7a..25eda0a 100644 --- a/buildSrc/src/main/groovy/multiloader-publish.gradle +++ b/buildSrc/src/main/groovy/multiloader-publish.gradle @@ -25,8 +25,8 @@ publishMods { minecraftVersions.addAll(minecraft_version_list.split(',')) serverRequired = true - if (project.name == 'fabric') - optional(fabric_optional_dependencies.split(',')) + if (project.hasProperty('optional_dependencies') && !optional_dependencies.isEmpty()) + optional(optional_dependencies.split(',')) } modrinth { @@ -37,7 +37,7 @@ publishMods { minecraftVersions.addAll(minecraft_version_list.split(',')) - if (project.name == 'fabric') - optional(fabric_optional_dependencies.split(',')) + if (project.hasProperty('optional_dependencies') && !optional_dependencies.isEmpty()) + optional(optional_dependencies.split(',')) } } diff --git a/common/src/main/java/net/lionarius/skinrestorer/skin/provider/MojangSkinProvider.java b/common/src/main/java/net/lionarius/skinrestorer/skin/provider/MojangSkinProvider.java index 04c347b..5c75776 100644 --- a/common/src/main/java/net/lionarius/skinrestorer/skin/provider/MojangSkinProvider.java +++ b/common/src/main/java/net/lionarius/skinrestorer/skin/provider/MojangSkinProvider.java @@ -4,8 +4,9 @@ import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.util.concurrent.UncheckedExecutionException; -import com.mojang.authlib.GameProfile; +import com.mojang.authlib.*; import com.mojang.authlib.properties.Property; +import com.mojang.authlib.yggdrasil.YggdrasilEnvironment; import com.mojang.authlib.yggdrasil.response.MinecraftProfilePropertiesResponse; import net.lionarius.skinrestorer.SkinRestorer; import net.lionarius.skinrestorer.skin.SkinVariant; @@ -25,7 +26,8 @@ public final class MojangSkinProvider implements SkinProvider { public static final String PROVIDER_NAME = "mojang"; - private static final URI API_URI; + private static final Environment ENVIRONMENT; + private static final URI SERVICES_SERVER_URI; private static final URI SESSION_SERVER_URI; public static final String PROFILE_CACHE_FILENAME = "mojang_profile_cache.json"; @@ -35,8 +37,10 @@ public final class MojangSkinProvider implements SkinProvider { static { try { - API_URI = new URI("https://api.mojang.com"); - SESSION_SERVER_URI = new URI("https://sessionserver.mojang.com"); + ENVIRONMENT = EnvironmentParser.getEnvironmentFromProperties().orElse(YggdrasilEnvironment.PROD.getEnvironment()); + + SERVICES_SERVER_URI = new URI(ENVIRONMENT.getServicesHost()); + SESSION_SERVER_URI = new URI(ENVIRONMENT.getSessionHost()); } catch (URISyntaxException e) { throw new IllegalArgumentException(e); } @@ -112,8 +116,8 @@ public final class MojangSkinProvider implements SkinProvider { private static GameProfile getProfile(final String name) throws IOException { var request = HttpRequest.newBuilder() - .uri(MojangSkinProvider.API_URI - .resolve("/users/profiles/minecraft/") + .uri(MojangSkinProvider.SERVICES_SERVER_URI + .resolve("/minecraft/profile/lookup/name/") .resolve(name) ) .GET() diff --git a/fabric/gradle.properties b/fabric/gradle.properties new file mode 100644 index 0000000..630d699 --- /dev/null +++ b/fabric/gradle.properties @@ -0,0 +1,5 @@ +# Fabric, see https://fabricmc.net/develop/ for new versions +fabric_loader_version=0.15.0 +fabric_api_version=0.83.0+1.20 + +optional_dependencies=fabric-api diff --git a/forge/gradle.properties b/forge/gradle.properties new file mode 100644 index 0000000..613a3c8 --- /dev/null +++ b/forge/gradle.properties @@ -0,0 +1,5 @@ +# Forge, see https://files.minecraftforge.net/net/minecraftforge/forge/ for new versions +forge_version=46.0.1 +forge_loader_version_range=[46,) +# Forge sometimes skips minor minecraft versions (like 1.20.5) +forge_minecraft_version=1.20 diff --git a/gradle.properties b/gradle.properties index 69fdec9..79678df 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,20 +24,6 @@ mineskin_client_version=3.0.1-SNAPSHOT parchment_minecraft=1.19.4 parchment_version=2023.06.26 -# Fabric, see https://fabricmc.net/develop/ for new versions -fabric_loader_version=0.15.0 -fabric_optional_dependencies= - -# Forge, see https://files.minecraftforge.net/net/minecraftforge/forge/ for new versions -forge_version=45.0.0 -forge_loader_version_range=[45,) -# Forge sometimes skips minor minecraft versions (like 1.20.5) -forge_minecraft_version=1.19.4 - -# NeoForge, see https://projects.neoforged.net/neoforged/neoforge for new versions -neoforge_version=20.2.3-beta -neoforge_loader_version_range=[1,) - # Publishing curseforge_id=443823 modrinth_id=ghrZDhGW @@ -45,3 +31,5 @@ modrinth_id=ghrZDhGW # Gradle org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false +org.gradle.parallel=true +org.gradle.caching=true 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 e18bc25..ca025c8 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.12.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f3b75f3..23d15a9 100644 --- a/gradlew +++ b/gradlew @@ -114,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. @@ -205,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. @@ -213,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 9d21a21..db3a6ac 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/neoforge/gradle.properties b/neoforge/gradle.properties new file mode 100644 index 0000000..0acd4fd --- /dev/null +++ b/neoforge/gradle.properties @@ -0,0 +1,3 @@ +# NeoForge, see https://projects.neoforged.net/neoforged/neoforge for new versions +neoforge_version=20.2.3-beta +neoforge_loader_version_range=[1,)