Repository: P3pp3rF1y/SophisticatedBackpacks Branch: 1.21.x Commit: 48574034ac2a Files: 9 Total size: 24.4 KB Directory structure: gitextract_42b63lvc/ ├── .editorconfig ├── .gitignore ├── LICENSE.md ├── README.md ├── build.gradle ├── gradle.properties ├── gradlew ├── gradlew.bat └── settings.gradle ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ root = true [*] charset = utf-8 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true [*.java] indent_style = tab indent_size = 4 tab_width = 4 [*.gradle] indent_style = space indent_size = 4 [*.{json,toml,yml,yaml,xml}] indent_style = space indent_size = 2 ================================================ FILE: .gitignore ================================================ # exclude all /* # include important folders # need gradle !gradle/ !bintray/ !gradlew !gradlew.bat !build.gradle !build.properties !gradle.properties !settings.gradle !.github/ # include markdowns !README.md !LICENSE !LICENSE.md !COPYING.txt # include sourcecode !src/ src/generated/resources/.cache # include git important files !.gitmodules !.gitignore !.editorconfig # code format to reduce noise in git commits !codeformat/ # include web files !web/ ================================================ FILE: LICENSE.md ================================================ # All Rights Reserved License Copyright (c) 2025 P3pp3rF1y This project is licensed under **All Rights Reserved (ARR).** ## 1. License Scope - All **source code, assets, and other project files** are licensed under **All Rights Reserved (ARR)**. - **Translations** are freely available with **no license restrictions** and may be used, shared, modified, or distributed without limitation. ## 2. No Redistribution You may **not** copy, distribute, rehost, sublicense, or share this software in any form, including modified or unmodified versions. ## 3. No Unauthorized Modification for Public Use You **may modify** the software **only for personal, non-commercial use**. You **may not** share, distribute, or publish modifications. ## 4. No Commercial Use You may **not** use this software, in whole or in part, for any commercial purpose without explicit written permission from the author. ## 5. No Unauthorized Forks or Derivative Works - You **may not** create forks, derivative projects, or adaptations of this software without explicit permission from the author. - **Exception:** You **may fork this repository on GitHub** **solely for the purpose of submitting pull requests (PRs) to this project.** - Any other use of forks outside of PR contributions requires explicit permission. ## 6. Limited Code Reuse for Inspiration - You **may reference** or **be inspired by** this code for your own work. - You **may reuse small snippets** (less than **20 lines**) in your own projects **as long as proper attribution is given**. - You **may not copy large portions, entire files, or substantial code structures** without explicit permission from the author. - If you are unsure whether your use qualifies as "small reuse," please contact the author. ## 7. Disclaimer of Liability This software is provided **"as is"**, without any express or implied warranties. The author **is not responsible for any damages**, including but not limited to: - Software crashes, bugs, or data corruption. - Security vulnerabilities or unauthorized modifications. - Performance issues, overheating, or hardware damage. - Legal issues arising from misuse of the software. Use at your own risk. --- ## **Contact** For licensing inquiries, please contact me via GitHub: 🔗 **[GitHub Profile](https://github.com/P3pp3rF1y)** ================================================ FILE: README.md ================================================ # SophisticatedBackpacks Any feature requests / suggestions are welcome in [Discussions](https://github.com/P3pp3rF1y/SophisticatedBackpacks/discussions) ================================================ FILE: build.gradle ================================================ plugins { id 'java-library' id 'idea' id 'maven-publish' id 'net.neoforged.moddev' version '1.0.14' id "org.sonarqube" version "5.0.0.4638" id "net.darkhax.curseforgegradle" version "1.1.15" id "com.modrinth.minotaur" version "2.+" id "com.diffplug.spotless" version "7.0.4" } idea { module { downloadJavadoc = true downloadSources = true } } spotless { enforceCheck = false def spotlessFiles = findProperty("spotlessFiles") java { target spotlessFiles == null ? "src/*/java/**/*.java" : spotlessFiles.toString().split(/\s*,\s*/).findAll { it.endsWith(".java") } eclipse().configFile "$projectDir/codeformat/eclipse-java-format.xml" importOrder "", "javax", "java" removeUnusedImports() trimTrailingWhitespace() endWithNewline() } groovyGradle { target spotlessFiles == null ? "*.gradle" : spotlessFiles.toString().split(/\s*,\s*/).findAll { it.endsWith(".gradle") } trimTrailingWhitespace() endWithNewline() } } if (findProject(':SophisticatedCore') != null) { evaluationDependsOn(':SophisticatedCore') } version = "${project.minecraft_version}-${project.mod_version}.${getBuildNumber()}${getStable()}" group = mod_group_id repositories { mavenCentral() maven { url "https://minecraft.curseforge.com/api/maven/" content { includeGroup "curse.maven" } } maven { url "https://www.cursemaven.com" content { includeGroup "curse.maven" } } maven { url "https://maven.blamejared.com/" content { includeGroup "mezz.jei" } } maven { name = "GitHubPackages" url = uri("https://maven.pkg.github.com/p3pp3rf1y/sophisticatedcore") credentials { username = System.getenv("GITHUB_ACTOR") password = System.getenv("GITHUB_TOKEN") } content { includeModule("net.p3pp3rf1y", "sophisticatedcore") } } maven { name = "TerraformersMC" url = "https://maven.terraformersmc.com/" content { includeGroup "dev.emi" } } maven { url = "https://maven.shedaniel.me/" content { includeGroup "dev.architectury" includeGroup "me.shedaniel" includeGroup "me.shedaniel.cloth" } } maven { url = 'https://maven.wispforest.io/releases' content { includeGroup "io.wispforest" } } } base { archivesName = mod_id } java.toolchain.languageVersion = JavaLanguageVersion.of(21) neoForge { version = project.neo_version parchment { mappingsVersion = project.parchment_mappings_version minecraftVersion = project.parchment_minecraft_version } accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg') runs { configureEach { systemProperty 'forge.logging.markers', 'REGISTRIES' systemProperty 'forge.logging.console.level', 'debug' systemProperty 'mixin.env.disableRefMap', 'true' } client { client() } client2 { client() programArguments.addAll '--username', 'Dev2' } server { server() programArgument '--nogui' } data { data() programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() } } mods { "${mod_id}" { sourceSet(sourceSets.main) } if (findProject(':SophisticatedCore') != null) { "sophisticatedcore" { sourceSet(project(':SophisticatedCore').sourceSets.main) } } } unitTest { enable() testedMod = mods."${mod_id}" } } sourceSets.main.resources { srcDir 'src/generated/resources' } configurations { runtimeClasspath.extendsFrom localRuntime } dependencies { if (findProject(':SophisticatedCore') != null) { dependencies.implementation project(':SophisticatedCore') } else { dependencies.implementation("net.p3pp3rf1y:sophisticatedcore:${sc_version}") { transitive = false } dependencies.testImplementation("net.p3pp3rf1y:sophisticatedcore:${sc_version}") { transitive = false } } // implementation files('/libs/sophisticatedcore-1.20.4-0.6.18.-SNAPSHOT.jar') compileOnly "mezz.jei:jei-${jei_mc_version}:${jei_version}" localRuntime "mezz.jei:jei-${jei_mc_version}:${jei_version}" compileOnly "dev.emi:emi-neoforge:${emi_version}:api" localRuntime "dev.emi:emi-neoforge:${emi_version}" compileOnly "me.shedaniel:RoughlyEnoughItems-api-neoforge:${rei_version}" compileOnly "me.shedaniel:RoughlyEnoughItems-default-plugin-neoforge:${rei_version}" localRuntime "me.shedaniel:RoughlyEnoughItems-neoforge:${rei_version}" localRuntime "me.shedaniel:RoughlyEnoughItems-default-plugin-neoforge:${rei_version}" compileOnly "curse.maven:curios-309927:${curios_cf_file_id}" localRuntime "curse.maven:curios-309927:${curios_cf_file_id}" compileOnly "curse.maven:balm-531761:${balm_cf_file_id}" localRuntime "curse.maven:balm-531761:${balm_cf_file_id}" compileOnly "curse.maven:craftingtweaks-233071:${crafting_tweaks_cf_file_id}" localRuntime "curse.maven:craftingtweaks-233071:${crafting_tweaks_cf_file_id}" dependencies.compileOnly("io.wispforest:accessories-neoforge:${accessories_version}") { transitive = false } compileOnly "curse.maven:chipped-456956:${chipped_cf_file_id}" localRuntime "curse.maven:chipped-456956:${chipped_cf_file_id}" compileOnly "curse.maven:athena-841890:${athena_cf_file_id}" localRuntime "curse.maven:athena-841890:${athena_cf_file_id}" compileOnly "curse.maven:resourcefullib-570073:${resourcefullib_cf_file_id}" localRuntime "curse.maven:resourcefullib-570073:${resourcefullib_cf_file_id}" compileOnly "curse.maven:sawmill-964817:${sawmill_cf_file_id}" localRuntime "curse.maven:sawmill-964817:${sawmill_cf_file_id}" compileOnly "curse.maven:moonlightlib-499980:${moonlightlib_cf_file_id}" localRuntime "curse.maven:moonlightlib-499980:${moonlightlib_cf_file_id}" testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.+' testImplementation "org.mockito:mockito-core:5.12.+" testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.11.+' /* compileOnly "vazkii.botania:Botania:${botania_version}:api") runtimeOnly "vazkii.botania:Botania:${botania_version}") compileOnly "vazkii.patchouli:Patchouli:${patchouli_version}:api") runtimeOnly "vazkii.patchouli:Patchouli:${patchouli_version}") */ } var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) { var replaceProperties = [ minecraft_version : minecraft_version, minecraft_version_range: minecraft_version_range, neo_version : neo_version, neo_version_range: neo_version_range, loader_version_range: loader_version_range, mod_id : mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version, mod_issue_tracker_url: mod_issue_tracker_url, mod_logo_file: mod_logo_file, mod_credits: mod_credits, mod_authors : mod_authors, mod_description: mod_description, mod_display_url: mod_display_url, mod_full_version : "${project.mod_version}.${getBuildNumber()}${getStable()}", sc_version :"[" + sc_version.substring(sc_version.indexOf("-") + 1, sc_version.lastIndexOf(',')) + ",)" ] inputs.properties replaceProperties expand replaceProperties from "src/main/templates" into "build/generated/sources/modMetadata" } // Include the output of "generateModMetadata" as an input directory for the build // this works with both building through Gradle and the IDE. sourceSets.main.resources.srcDir generateModMetadata // To avoid having to run "generateModMetadata" manually, make it run on every project reload neoForge.ideSyncTask generateModMetadata def runRecipeViewerRegressionTests = gradle.startParameter.taskNames.any { it == 'recipeViewerRegressionTest' || it == "${project.path}:recipeViewerRegressionTest" } || project.hasProperty('recipeViewerRegression') test { inputs.property('recipeViewerRegressionMode', runRecipeViewerRegressionTests) useJUnitPlatform { if (runRecipeViewerRegressionTests) { includeTags 'recipeViewerRegression' } else { excludeTags 'recipeViewerRegression' } } testLogging { events "passed", "skipped", "failed" } } tasks.register('recipeViewerRegressionTest') { description = 'Runs recipe viewer regression tests.' group = 'verification' dependsOn test } tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' } jar { manifest { attributes(["Specification-Title" : project.mod_id, "Specification-Vendor" : project.mod_id, "Specification-Version" : "1", "Implementation-Title" : project.name, "Implementation-Version" : "${version}", "Implementation-Vendor" : project.mod_id, "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")],) } } static def getBuildNumber() { if (System.getenv("GITHUB_RUN_NUMBER") != null) { return System.getenv("GITHUB_RUN_NUMBER").toString() } return "" } static def getStable() { if (System.getenv("GITHUB_REF") == null || System.getenv("GITHUB_REF").endsWith("-dev")) { return "-SNAPSHOT" } return "" } publishing { repositories { maven { name = "GitHubPackages" url = uri("${github_package_url}") credentials { username = System.getenv("GITHUB_ACTOR") password = System.getenv("GITHUB_TOKEN") } } } publications { gpr(MavenPublication) { artifactId = mod_id from(components.java) } } } sonar { properties { property "sonar.organization", "p3pp3rf1y-github" property "sonar.projectKey", "${sonar_project_key}" } } def sharedChangelogScript = file('../../MultiWorkspace1.20.1/gradle/changelog.gradle') apply from: sharedChangelogScript.exists() ? sharedChangelogScript : 'https://raw.githubusercontent.com/P3pp3rF1y/MultiWorkspace/1.20.x/gradle/changelog.gradle' task curseforge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) { dependsOn 'generateChangelog' apiToken = System.getenv("CURSEFORGE_TOKEN") def mainFile = upload(project.curseforge_id, file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")) mainFile.changelogType = 'markdown' mainFile.changelog = {project.ext.changelog} mainFile.addModLoader('NeoForge') mainFile.releaseType = "${release_type}" "${release_versions}".split(',').each { mainFile.addGameVersion("${it}") } mainFile.addRequirement('sophisticated-core') mainFile.addOptional('jei') mainFile.addOptional('curios') mainFile.addOptional('crafting-tweaks') mainFile.addOptional('trashslot') mainFile.addOptional('item-borders') mainFile.addOptional('chipped') mainFile.addOptional('sawmill') onlyIf { !project.ext.changelog.isEmpty() } } modrinth { token = System.getenv("MODRINTH_TOKEN") projectId = "${modrinth_project_id}" versionType = "${release_type}" uploadFile = jar gameVersions = "${release_versions}".split(',').collect {e -> e} loaders = ["neoforge"] dependencies { required.project "sophisticated-core" optional.project "jei" optional.project "crafting-tweaks" optional.project "curios" optional.project "trashslot" optional.project "item-borders" optional.project "chipped" optional.project "universal-sawmill" } changelog = provider { project.ext.changelog } } tasks.modrinth { dependsOn(tasks.generateChangelog) onlyIf { !project.ext.changelog.isEmpty() } } task printVersionName { println "version:" + project.version } ================================================ FILE: gradle.properties ================================================ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=true org.gradle.parallel=true org.gradle.caching=true org.gradle.debug=false parchment_minecraft_version=1.21 parchment_mappings_version=2024.11.10 minecraft_version=1.21.1 minecraft_version_range=[1.21.1,1.21.2) neo_version=21.1.80 neo_version_range=[21.1.0,) loader_version_range=[4,) mod_id=sophisticatedbackpacks mod_name=Sophisticated Backpacks mod_license=All Rights Reserved mod_version=3.25.45 mod_group_id=net.p3pp3rf1y mod_authors=P3pp3rF1y, Ridanisaurus mod_description=Fancy and functional backpacks. mod_credits=Created by P3pp3rF1y and art by Ridanisaurus. mod_logo_file=logo.png mod_display_url=https://www.curseforge.com/minecraft/mc-mods/sophisticated-backpacks mod_issue_tracker_url=https://github.com/P3pp3rF1y/SophisticatedBackpacks/issues sonar_project_key=sophisticatedbackpacks:SophisticatedBackpacks github_package_url=https://maven.pkg.github.com/P3pp3rF1y/SophisticatedBackpacks jei_mc_version=1.21.1-neoforge jei_version=19.21.0.247 emi_version=1.1.22+1.21.1 rei_version=16.0.799 #botania_version=1.19.2-439-FORGE-SNAPSHOT #patchouli_version=1.19.2-78-SNAPSHOT balm_cf_file_id=5525369 crafting_tweaks_cf_file_id=5426925 accessories_version=1.1.0-beta.52+1.21.1 chipped_cf_file_id=5506938 resourcefullib_cf_file_id=5483169 athena_cf_file_id=5431579 curios_cf_file_id=6076118 sawmill_cf_file_id=6119477 moonlightlib_cf_file_id=6224057 sc_version=[1.21.1-1.4.39,1.21.2) #publish curseforge_id=422301 release_type=release release_versions=1.21.1 modrinth_project_id=TyCTlI4b ================================================ FILE: gradlew ================================================ #!/usr/bin/env bash ############################################################################## ## ## Gradle start up script for UN*X ## ############################################################################## # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS="" APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" warn ( ) { echo "$*" } die ( ) { echo echo "$*" echo exit 1 } # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false case "`uname`" in CYGWIN* ) cygwin=true ;; Darwin* ) darwin=true ;; MINGW* ) msys=true ;; esac # For Cygwin, ensure paths are in UNIX format before anything is touched. if $cygwin ; then [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` fi # Attempt to set APP_HOME # Resolve links: $0 may be a link PRG="$0" # Need this for relative symlinks. while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG=`dirname "$PRG"`"/$link" fi done SAVED="`pwd`" cd "`dirname \"$PRG\"`/" >&- APP_HOME="`pwd -P`" cd "$SAVED" >&- CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME Please set the JAVA_HOME variable in your environment to match the 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. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi # Increase the maximum file descriptors if we can. if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then MAX_FD="$MAX_FD_LIMIT" fi ulimit -n $MAX_FD if [ $? -ne 0 ] ; then warn "Could not set maximum file descriptor limit: $MAX_FD" fi else warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" fi fi # For Darwin, add options to specify how the application appears in the dock if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi # For Cygwin, switch paths to Windows format before running java if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` SEP="" for dir in $ROOTDIRSRAW ; do ROOTDIRS="$ROOTDIRS$SEP$dir" SEP="|" done OURCYGPATTERN="(^($ROOTDIRS))" # Add a user-defined pattern to the cygpath arguments if [ "$GRADLE_CYGPATTERN" != "" ] ; then OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" fi # Now convert the arguments - kludge to limit ourselves to /bin/sh i=0 for arg in "$@" ; do CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` else eval `echo args$i`="\"$arg\"" fi i=$((i+1)) done case $i in (0) set -- ;; (1) set -- "$args0" ;; (2) set -- "$args0" "$args1" ;; (3) set -- "$args0" "$args1" "$args2" ;; (4) set -- "$args0" "$args1" "$args2" "$args3" ;; (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules function splitJvmOpts() { JVM_OPTS=("$@") } eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" ================================================ FILE: gradlew.bat ================================================ @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 @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= set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @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 init 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 init 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 :init @rem Get command-line arguments, handling Windowz variants if not "%OS%" == "Windows_NT" goto win9xME_args if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. set CMD_LINE_ARGS= set _SKIP=2 :win9xME_args_slurp if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* goto execute :4NT_args @rem Get arguments from the 4NT Shell from JP Software set CMD_LINE_ARGS=%$ :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 %CMD_LINE_ARGS% :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 ================================================ FILE: settings.gradle ================================================ pluginManagement { repositories { mavenLocal() gradlePluginPortal() maven { url = 'https://maven.neoforged.net/releases' } } } plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' }