From 0480586663a21794cff4c09463d4c178fb91d9e2 Mon Sep 17 00:00:00 2001 From: sillyangel Date: Mon, 30 Dec 2024 18:57:02 -0600 Subject: [PATCH] update once more --- .github/workflows/build_jar.yml | 68 +- .vscode/settings.json | 6 +- build.gradle | 432 +++---- changelog.txt | 14 +- gradle.properties | 116 +- gradlew.bat | 184 +-- run-data/config/fml.toml | 56 +- run-data/logs/2024-12-30-1.log.gz | Bin 1152 -> 1388 bytes run-data/logs/2024-12-30-2.log.gz | Bin 1526 -> 1233 bytes run-data/logs/2024-12-30-3.log.gz | Bin 0 -> 1347 bytes run-data/logs/2024-12-30-4.log.gz | Bin 0 -> 1152 bytes run-data/logs/2024-12-30-5.log.gz | Bin 0 -> 1526 bytes run-data/logs/debug-1.log.gz | Bin 8800 -> 8986 bytes run-data/logs/debug-2.log.gz | Bin 9231 -> 8248 bytes run-data/logs/debug-3.log.gz | Bin 0 -> 8386 bytes run-data/logs/debug-4.log.gz | Bin 0 -> 8800 bytes run-data/logs/debug-5.log.gz | Bin 0 -> 9231 bytes run-data/logs/debug.log | 1050 ++++++++--------- run-data/logs/latest.log | 54 +- settings.gradle | 26 +- .../0f01e36c8c3e714f07da00bbe50a17425fd9bc5d | 4 +- .../2a6e80b4e4362196170dd4ee2a3d8e7f56f9a0a0 | 9 +- .../59eb3dbb5f86130e09b3c62d89b9525ee01cf52d | 10 +- .../670693f4e9f75e384665a60f155b7d94dfc51f73 | 11 +- .../8273965882b13bc067ed62dddc852c7100e3fe85 | 26 +- .../9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e | 52 +- .../nuggetmod/models/item/nugget_axe.json | 6 + .../nuggetmod/models/item/nugget_hoe.json | 6 + .../nuggetmod/models/item/nugget_pickaxe.json | 6 + .../nuggetmod/models/item/nugget_shovel.json | 6 + .../nuggetmod/models/item/nugget_sword.json | 6 + .../minecraft/tags/block/needs_iron_tool.json | 5 - ...iamond_tool.json => needs_stone_tool.json} | 1 + .../recipes/combat/nugget_sword.json | 32 + .../advancement/recipes/tools/nugget_axe.json | 32 + .../advancement/recipes/tools/nugget_hoe.json | 32 + .../recipes/tools/nugget_pickaxe.json | 32 + .../recipes/tools/nugget_shovel.json | 32 + .../data/nuggetmod/recipe/nugget_axe.json | 21 + .../data/nuggetmod/recipe/nugget_hoe.json | 21 + .../data/nuggetmod/recipe/nugget_pickaxe.json | 21 + .../data/nuggetmod/recipe/nugget_shovel.json | 21 + .../data/nuggetmod/recipe/nugget_sword.json | 21 + .../tags/block/incorrect_for_nugget_tool.json | 8 + .../tags/block/needs_nugget_tool.json | 6 + .../java/xyz/sillyangel/nugget/Config.java | 124 +- .../java/xyz/sillyangel/nugget/NuggetMod.java | 138 +-- .../sillyangel/nugget/block/ModBlocks.java | 102 +- .../nugget/datagen/DataGenerators.java | 76 +- .../datagen/ModBlockLootTableProvider.java | 108 +- .../nugget/datagen/ModBlockStateProvider.java | 56 +- .../nugget/datagen/ModBlockTagProvider.java | 82 +- .../nugget/datagen/ModItemModelProvider.java | 120 +- .../nugget/datagen/ModItemTagProvider.java | 60 +- .../nugget/datagen/ModRecipeProvider.java | 194 +-- .../nugget/item/ModCreativeModeTabs.java | 98 +- .../nugget/item/ModFoodProperties.java | 16 +- .../xyz/sillyangel/nugget/item/ModItems.java | 96 +- .../sillyangel/nugget/item/ModToolTiers.java | 24 +- .../xyz/sillyangel/nugget/util/ModTags.java | 54 +- .../assets/nuggetmod/lang/en_us.json | 32 +- .../nuggetmod/textures/item/nugget_axe.png | Bin 0 -> 3199 bytes .../nuggetmod/textures/item/nugget_hoe.png | Bin 0 -> 3107 bytes .../textures/item/nugget_pickaxe.png | Bin 0 -> 3166 bytes .../nuggetmod/textures/item/nugget_shovel.png | Bin 0 -> 3133 bytes .../nuggetmod/textures/item/nugget_sword.png | Bin 0 -> 3517 bytes .../data/minecraft/tags/item/axes.json | 6 + .../data/minecraft/tags/item/hoes.json | 6 + .../data/minecraft/tags/item/pickaxes.json | 6 + .../data/minecraft/tags/item/shovels.json | 6 + .../data/minecraft/tags/item/swords.json | 6 + 71 files changed, 2122 insertions(+), 1721 deletions(-) create mode 100644 run-data/logs/2024-12-30-3.log.gz create mode 100644 run-data/logs/2024-12-30-4.log.gz create mode 100644 run-data/logs/2024-12-30-5.log.gz create mode 100644 run-data/logs/debug-3.log.gz create mode 100644 run-data/logs/debug-4.log.gz create mode 100644 run-data/logs/debug-5.log.gz create mode 100644 src/generated/resources/assets/nuggetmod/models/item/nugget_axe.json create mode 100644 src/generated/resources/assets/nuggetmod/models/item/nugget_hoe.json create mode 100644 src/generated/resources/assets/nuggetmod/models/item/nugget_pickaxe.json create mode 100644 src/generated/resources/assets/nuggetmod/models/item/nugget_shovel.json create mode 100644 src/generated/resources/assets/nuggetmod/models/item/nugget_sword.json delete mode 100644 src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json rename src/generated/resources/data/minecraft/tags/block/{needs_diamond_tool.json => needs_stone_tool.json} (57%) create mode 100644 src/generated/resources/data/nuggetmod/advancement/recipes/combat/nugget_sword.json create mode 100644 src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_axe.json create mode 100644 src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_hoe.json create mode 100644 src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_pickaxe.json create mode 100644 src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_shovel.json create mode 100644 src/generated/resources/data/nuggetmod/recipe/nugget_axe.json create mode 100644 src/generated/resources/data/nuggetmod/recipe/nugget_hoe.json create mode 100644 src/generated/resources/data/nuggetmod/recipe/nugget_pickaxe.json create mode 100644 src/generated/resources/data/nuggetmod/recipe/nugget_shovel.json create mode 100644 src/generated/resources/data/nuggetmod/recipe/nugget_sword.json create mode 100644 src/generated/resources/data/nuggetmod/tags/block/incorrect_for_nugget_tool.json create mode 100644 src/generated/resources/data/nuggetmod/tags/block/needs_nugget_tool.json create mode 100644 src/main/resources/assets/nuggetmod/textures/item/nugget_axe.png create mode 100644 src/main/resources/assets/nuggetmod/textures/item/nugget_hoe.png create mode 100644 src/main/resources/assets/nuggetmod/textures/item/nugget_pickaxe.png create mode 100644 src/main/resources/assets/nuggetmod/textures/item/nugget_shovel.png create mode 100644 src/main/resources/assets/nuggetmod/textures/item/nugget_sword.png diff --git a/.github/workflows/build_jar.yml b/.github/workflows/build_jar.yml index 4058f8f..664abc9 100644 --- a/.github/workflows/build_jar.yml +++ b/.github/workflows/build_jar.yml @@ -1,35 +1,35 @@ -name: Build and Upload JAR - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Set up JDK 21 - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: '21' - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Build with Gradle - run: ./gradlew build - - - name: Upload build artifacts - uses: actions/upload-artifact@v3 - with: - name: build-artifact +name: Build and Upload JAR + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up JDK 21 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '21' + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build with Gradle + run: ./gradlew build + + - name: Upload build artifacts + uses: actions/upload-artifact@v3 + with: + name: build-artifact path: build/libs/*.jar \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index d53ecaf..b6f4778 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,4 @@ -{ - "java.compile.nullAnalysis.mode": "automatic", - "java.configuration.updateBuildConfiguration": "automatic" +{ + "java.compile.nullAnalysis.mode": "automatic", + "java.configuration.updateBuildConfiguration": "automatic" } \ No newline at end of file diff --git a/build.gradle b/build.gradle index 5dfbda4..fb872f9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,216 +1,216 @@ -plugins { - id 'eclipse' - id 'idea' - id 'maven-publish' - id 'net.minecraftforge.gradle' version '[6.0.24,6.2)' - id 'org.parchmentmc.librarian.forgegradle' version '1.+' -} - -version = mod_version -group = mod_group_id - -base { - archivesName = mod_id -} - -// Mojang ships Java 21 to end users in 1.20.5+, so your mod should target Java 21. -java.toolchain.languageVersion = JavaLanguageVersion.of(21) - -println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" -minecraft { - // The mappings can be changed at any time and must be in the following format. - // Channel: Version: - // official MCVersion Official field/method names from Mojang mapping files - // parchment YYYY.MM.DD-MCVersion Open community-sourced parameter names and javadocs layered on top of official - // - // You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. - // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md - // - // Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge - // Additional setup is needed to use their mappings: https://parchmentmc.org/docs/getting-started - // - // Use non-default mappings at your own risk. They may not always work. - // Simply re-run your setup task after changing the mappings to update your workspace. - mappings channel: mapping_channel, version: mapping_version - - // Tell FG to not automtically create the reobf tasks, as we now use Official mappings at runtime, If you don't use them at dev time then you'll have to fix your reobf yourself. - reobf = false - - // When true, this property will have all Eclipse/IntelliJ IDEA run configurations run the "prepareX" task for the given run configuration before launching the game. - // In most cases, it is not necessary to enable. - // enableEclipsePrepareRuns = true - // enableIdeaPrepareRuns = true - - // This property allows configuring Gradle's ProcessResources task(s) to run on IDE output locations before launching the game. - // It is REQUIRED to be set to true for this template to function. - // See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html - copyIdeResources = true - - // When true, this property will add the folder name of all declared run configurations to generated IDE run configurations. - // The folder name can be set on a run configuration using the "folderName" property. - // By default, the folder name of a run configuration is the name of the Gradle project containing it. - // generateRunFolders = true - - // This property enables access transformers for use in development. - // They will be applied to the Minecraft artifact. - // The access transformer file can be anywhere in the project. - // However, it must be at "META-INF/accesstransformer.cfg" in the final mod jar to be loaded by Forge. - // This default location is a best practice to automatically put the file in the right place in the final jar. - // See https://docs.minecraftforge.net/en/latest/advanced/accesstransformers/ for more information. - // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') - - // Default run configurations. - // These can be tweaked, removed, or duplicated as needed. - runs { - // applies to all the run configs below - configureEach { - workingDirectory project.file('run') - - // Recommended logging data for a userdev environment - // The markers can be added/remove as needed separated by commas. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. - property 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels - property 'forge.logging.console.level', 'debug' - } - - client { - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', mod_id - } - - server { - property 'forge.enabledGameTestNamespaces', mod_id - args '--nogui' - } - - // This run config launches GameTestServer and runs all registered gametests, then exits. - // By default, the server will crash when no gametests are provided. - // The gametest system is also enabled by default for other run configs under the /test command. - gameTestServer { - property 'forge.enabledGameTestNamespaces', mod_id - } - - data { - // example of overriding the workingDirectory set in configureEach above - workingDirectory project.file('run-data') - - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') - } - } -} - -// Include resources generated by data generators. -sourceSets.main.resources { srcDir 'src/generated/resources' } - -repositories { - // Put repositories for dependencies here - // ForgeGradle automatically adds the Forge maven and Maven Central for you - - // If you have mod jar dependencies in ./libs, you can declare them as a repository like so. - // See https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver - // flatDir { - // dir 'libs' - // } -} - -dependencies { - // Specify the version of Minecraft to use. - // Any artifact can be supplied so long as it has a "userdev" classifier artifact and is a compatible patcher artifact. - // The "userdev" classifier will be requested and setup by ForgeGradle. - // If the group id is "net.minecraft" and the artifact id is one of ["client", "server", "joined"], - // then special handling is done to allow a setup of a vanilla dependency without the use of an external repository. - minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - - // Example mod dependency with JEI - // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime - // compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}" - // compileOnly "mezz.jei:jei-${mc_version}-forge-api:${jei_version}" - // runtimeOnly "mezz.jei:jei-${mc_version}-forge:${jei_version}" - - // Example mod dependency using a mod jar from ./libs with a flat dir repository - // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar - // The group id is ignored when searching -- in this case, it is "blank" - // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") - - // For more info: - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - // http://www.gradle.org/docs/current/userguide/dependency_management.html - - // Hack fix for now, force jopt-simple to be exactly 5.0.4 because Mojang ships that version, but some transitive dependencies request 6.0+ - implementation('net.sf.jopt-simple:jopt-simple:5.0.4') { version { strictly '5.0.4' } } -} - -// This block of code expands all declared replace properties in the specified resource targets. -// A missing property will result in an error. Properties are expanded using ${} Groovy notation. -// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments. -// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html -tasks.named('processResources', ProcessResources).configure { - var replaceProperties = [ - minecraft_version: minecraft_version, minecraft_version_range: minecraft_version_range, - forge_version: forge_version, forge_version_range: forge_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_authors: mod_authors, mod_description: mod_description, - ] - inputs.properties replaceProperties - - filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { - expand replaceProperties + [project: project] - } -} - -// Example for how to get properties into the manifest for reading at runtime. -tasks.named('jar', Jar).configure { - manifest { - attributes([ - 'Specification-Title' : mod_id, - 'Specification-Vendor' : mod_authors, - 'Specification-Version' : '1', // We are version 1 of ourselves - 'Implementation-Title' : project.name, - 'Implementation-Version' : project.jar.archiveVersion, - 'Implementation-Vendor' : mod_authors - ]) - } -} - -// Example configuration to allow publishing using the maven-publish plugin -publishing { - publications { - register('mavenJava', MavenPublication) { - artifact jar - } - } - repositories { - maven { - url "file://${project.projectDir}/mcmodsrepo" - } - } -} - -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation -} - -eclipse { - // Run everytime eclipse builds the code - //autoBuildTasks genEclipseRuns - // Run when importing the project - synchronizationTasks 'genEclipseRuns' -} - -// Merge the resources and classes into the same directory. -// This is done because java expects modules to be in a single directory. -// And if we have it in multiple we have to do performance intensive hacks like having the UnionFileSystem -// This will eventually be migrated to ForgeGradle so modders don't need to manually do it. But that is later. -sourceSets.each { - def dir = layout.buildDirectory.dir("sourcesSets/$it.name") - it.output.resourcesDir = dir - it.java.destinationDirectory = dir -} +plugins { + id 'eclipse' + id 'idea' + id 'maven-publish' + id 'net.minecraftforge.gradle' version '[6.0.24,6.2)' + id 'org.parchmentmc.librarian.forgegradle' version '1.+' +} + +version = mod_version +group = mod_group_id + +base { + archivesName = mod_id +} + +// Mojang ships Java 21 to end users in 1.20.5+, so your mod should target Java 21. +java.toolchain.languageVersion = JavaLanguageVersion.of(21) + +println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" +minecraft { + // The mappings can be changed at any time and must be in the following format. + // Channel: Version: + // official MCVersion Official field/method names from Mojang mapping files + // parchment YYYY.MM.DD-MCVersion Open community-sourced parameter names and javadocs layered on top of official + // + // You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. + // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md + // + // Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge + // Additional setup is needed to use their mappings: https://parchmentmc.org/docs/getting-started + // + // Use non-default mappings at your own risk. They may not always work. + // Simply re-run your setup task after changing the mappings to update your workspace. + mappings channel: mapping_channel, version: mapping_version + + // Tell FG to not automtically create the reobf tasks, as we now use Official mappings at runtime, If you don't use them at dev time then you'll have to fix your reobf yourself. + reobf = false + + // When true, this property will have all Eclipse/IntelliJ IDEA run configurations run the "prepareX" task for the given run configuration before launching the game. + // In most cases, it is not necessary to enable. + // enableEclipsePrepareRuns = true + // enableIdeaPrepareRuns = true + + // This property allows configuring Gradle's ProcessResources task(s) to run on IDE output locations before launching the game. + // It is REQUIRED to be set to true for this template to function. + // See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html + copyIdeResources = true + + // When true, this property will add the folder name of all declared run configurations to generated IDE run configurations. + // The folder name can be set on a run configuration using the "folderName" property. + // By default, the folder name of a run configuration is the name of the Gradle project containing it. + // generateRunFolders = true + + // This property enables access transformers for use in development. + // They will be applied to the Minecraft artifact. + // The access transformer file can be anywhere in the project. + // However, it must be at "META-INF/accesstransformer.cfg" in the final mod jar to be loaded by Forge. + // This default location is a best practice to automatically put the file in the right place in the final jar. + // See https://docs.minecraftforge.net/en/latest/advanced/accesstransformers/ for more information. + // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') + + // Default run configurations. + // These can be tweaked, removed, or duplicated as needed. + runs { + // applies to all the run configs below + configureEach { + workingDirectory project.file('run') + + // Recommended logging data for a userdev environment + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + property 'forge.logging.markers', 'REGISTRIES' + + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + property 'forge.logging.console.level', 'debug' + } + + client { + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + property 'forge.enabledGameTestNamespaces', mod_id + } + + server { + property 'forge.enabledGameTestNamespaces', mod_id + args '--nogui' + } + + // This run config launches GameTestServer and runs all registered gametests, then exits. + // By default, the server will crash when no gametests are provided. + // The gametest system is also enabled by default for other run configs under the /test command. + gameTestServer { + property 'forge.enabledGameTestNamespaces', mod_id + } + + data { + // example of overriding the workingDirectory set in configureEach above + workingDirectory project.file('run-data') + + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + } + } +} + +// Include resources generated by data generators. +sourceSets.main.resources { srcDir 'src/generated/resources' } + +repositories { + // Put repositories for dependencies here + // ForgeGradle automatically adds the Forge maven and Maven Central for you + + // If you have mod jar dependencies in ./libs, you can declare them as a repository like so. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver + // flatDir { + // dir 'libs' + // } +} + +dependencies { + // Specify the version of Minecraft to use. + // Any artifact can be supplied so long as it has a "userdev" classifier artifact and is a compatible patcher artifact. + // The "userdev" classifier will be requested and setup by ForgeGradle. + // If the group id is "net.minecraft" and the artifact id is one of ["client", "server", "joined"], + // then special handling is done to allow a setup of a vanilla dependency without the use of an external repository. + minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" + + // Example mod dependency with JEI + // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime + // compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}" + // compileOnly "mezz.jei:jei-${mc_version}-forge-api:${jei_version}" + // runtimeOnly "mezz.jei:jei-${mc_version}-forge:${jei_version}" + + // Example mod dependency using a mod jar from ./libs with a flat dir repository + // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar + // The group id is ignored when searching -- in this case, it is "blank" + // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") + + // For more info: + // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html + // http://www.gradle.org/docs/current/userguide/dependency_management.html + + // Hack fix for now, force jopt-simple to be exactly 5.0.4 because Mojang ships that version, but some transitive dependencies request 6.0+ + implementation('net.sf.jopt-simple:jopt-simple:5.0.4') { version { strictly '5.0.4' } } +} + +// This block of code expands all declared replace properties in the specified resource targets. +// A missing property will result in an error. Properties are expanded using ${} Groovy notation. +// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments. +// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html +tasks.named('processResources', ProcessResources).configure { + var replaceProperties = [ + minecraft_version: minecraft_version, minecraft_version_range: minecraft_version_range, + forge_version: forge_version, forge_version_range: forge_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_authors: mod_authors, mod_description: mod_description, + ] + inputs.properties replaceProperties + + filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { + expand replaceProperties + [project: project] + } +} + +// Example for how to get properties into the manifest for reading at runtime. +tasks.named('jar', Jar).configure { + manifest { + attributes([ + 'Specification-Title' : mod_id, + 'Specification-Vendor' : mod_authors, + 'Specification-Version' : '1', // We are version 1 of ourselves + 'Implementation-Title' : project.name, + 'Implementation-Version' : project.jar.archiveVersion, + 'Implementation-Vendor' : mod_authors + ]) + } +} + +// Example configuration to allow publishing using the maven-publish plugin +publishing { + publications { + register('mavenJava', MavenPublication) { + artifact jar + } + } + repositories { + maven { + url "file://${project.projectDir}/mcmodsrepo" + } + } +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation +} + +eclipse { + // Run everytime eclipse builds the code + //autoBuildTasks genEclipseRuns + // Run when importing the project + synchronizationTasks 'genEclipseRuns' +} + +// Merge the resources and classes into the same directory. +// This is done because java expects modules to be in a single directory. +// And if we have it in multiple we have to do performance intensive hacks like having the UnionFileSystem +// This will eventually be migrated to ForgeGradle so modders don't need to manually do it. But that is later. +sourceSets.each { + def dir = layout.buildDirectory.dir("sourcesSets/$it.name") + it.output.resourcesDir = dir + it.java.destinationDirectory = dir +} diff --git a/changelog.txt b/changelog.txt index 9b59bf2..e9696a2 100644 --- a/changelog.txt +++ b/changelog.txt @@ -69,8 +69,8 @@ - 50.0.22 Add GatherComponentsEvent (#9944) - 50.0.21 Fix powered rails not propogating correctly. - 50.0.20 Remove ICustomPacket and add PayloadChannel. (#9972) - New PayloadChannel that uses the vanilla payload Type for packet distinction - Implement the minecraft:register/unregister channels using the new PayloadChannel + New PayloadChannel that uses the vanilla payload Type for packet distinction + Implement the minecraft:register/unregister channels using the new PayloadChannel New generic channel builder function allowing people to implement channels however they want. - 50.0.19 Implement entity aware armor model and texture hooks. Closes #9960 - 50.0.18 Fix finalizeSpawn's return value not being used correctly. Closes #9964 @@ -83,11 +83,11 @@ - 50.0.11 Some patch cleanup (#9951) - 50.0.10 Filter paths discovered by ServiceProvider in ClasspathLocator. Closes #9899 - 50.0.9 Update SimpleChannel to make StreamCodecs easier (#9959) - Rework networking so that RegistryFriendlyByteBuf is useable for modders - Simple support for StreamCodec in SimpleChannel - Codecify all Forge packets - Make simpler builder pattern for SimpleChannel. Will eventually deprecate the old MessageBuilder as it's verbose and poorly written. - Co-authored-by: MrCrayfish <4958241+MrCrayfish@users.noreply.github.com> + Rework networking so that RegistryFriendlyByteBuf is useable for modders + Simple support for StreamCodec in SimpleChannel + Codecify all Forge packets + Make simpler builder pattern for SimpleChannel. Will eventually deprecate the old MessageBuilder as it's verbose and poorly written. + Co-authored-by: MrCrayfish <4958241+MrCrayfish@users.noreply.github.com> Co-authored-by: Paint_Ninja - 50.0.8 Fix shields not working correctly. Fixes #9966 - 50.0.7 Fix RenderTarget stencil patch location. Fixes #9965 diff --git a/gradle.properties b/gradle.properties index 84c9a68..23b2520 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,59 +1,59 @@ -# Sets default memory used for gradle commands. Can be overridden by user or command line properties. -# This is required to provide enough memory for the Minecraft decompilation process. -org.gradle.jvmargs=-Xmx3G -org.gradle.daemon=false - - -## Environment Properties - -# The Minecraft version must agree with the Forge version to get a valid artifact -minecraft_version=1.21 -# The Minecraft version range can use any release version of Minecraft as bounds. -# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly -# as they do not follow standard versioning conventions. -minecraft_version_range=[1.21,1.22) -# The Forge version must agree with the Minecraft version to get a valid artifact -forge_version=51.0.33 -# The Forge version range can use any version of Forge as bounds or match the loader version range -forge_version_range=[0,) -# The loader version range can only use the major version of Forge/FML as bounds -loader_version_range=[0,) -# The mapping channel to use for mappings. -# The default set of supported mapping channels are ["official", "snapshot", "snapshot_nodoc", "stable", "stable_nodoc"]. -# Additional mapping channels can be registered through the "channelProviders" extension in a Gradle plugin. -# -# | Channel | Version | | -# |-----------|----------------------|--------------------------------------------------------------------------------| -# | official | MCVersion | Official field/method names from Mojang mapping files | -# | parchment | YYYY.MM.DD-MCVersion | Open community-sourced parameter names and javadocs layered on top of official | -# -# You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. -# See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md -# -# Parchment is an unofficial project maintained by ParchmentMC, separate from Minecraft Forge. -# Additional setup is needed to use their mappings, see https://parchmentmc.org/docs/getting-started -mapping_channel=parchment -# The mapping version to query from the mapping channel. -# This must match the format required by the mapping channel. -mapping_version=2024.07.28-1.21 - - -## Mod Properties - -# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63} -# Must match the String constant located in the main mod class annotated with @Mod. -mod_id=nuggetmod -# The human-readable display name for the mod. -mod_name=Nugget Mod -# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. -mod_license=MIT -# The mod version. See https://semver.org/ -mod_version=1.0.2 -# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. -# This should match the base package used for the mod sources. -# See https://maven.apache.org/guides/mini/guide-naming-conventions.html -mod_group_id=xyz.sillyangel.nugget -# The authors of the mod. This is a simple text string that is used for display purposes in the mod list. -mod_authors=sillyangel -# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. +# Sets default memory used for gradle commands. Can be overridden by user or command line properties. +# This is required to provide enough memory for the Minecraft decompilation process. +org.gradle.jvmargs=-Xmx3G +org.gradle.daemon=false + + +## Environment Properties + +# The Minecraft version must agree with the Forge version to get a valid artifact +minecraft_version=1.21 +# The Minecraft version range can use any release version of Minecraft as bounds. +# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly +# as they do not follow standard versioning conventions. +minecraft_version_range=[1.21,1.22) +# The Forge version must agree with the Minecraft version to get a valid artifact +forge_version=51.0.33 +# The Forge version range can use any version of Forge as bounds or match the loader version range +forge_version_range=[0,) +# The loader version range can only use the major version of Forge/FML as bounds +loader_version_range=[0,) +# The mapping channel to use for mappings. +# The default set of supported mapping channels are ["official", "snapshot", "snapshot_nodoc", "stable", "stable_nodoc"]. +# Additional mapping channels can be registered through the "channelProviders" extension in a Gradle plugin. +# +# | Channel | Version | | +# |-----------|----------------------|--------------------------------------------------------------------------------| +# | official | MCVersion | Official field/method names from Mojang mapping files | +# | parchment | YYYY.MM.DD-MCVersion | Open community-sourced parameter names and javadocs layered on top of official | +# +# You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. +# See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md +# +# Parchment is an unofficial project maintained by ParchmentMC, separate from Minecraft Forge. +# Additional setup is needed to use their mappings, see https://parchmentmc.org/docs/getting-started +mapping_channel=parchment +# The mapping version to query from the mapping channel. +# This must match the format required by the mapping channel. +mapping_version=2024.07.28-1.21 + + +## Mod Properties + +# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63} +# Must match the String constant located in the main mod class annotated with @Mod. +mod_id=nuggetmod +# The human-readable display name for the mod. +mod_name=Nugget Mod +# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. +mod_license=MIT +# The mod version. See https://semver.org/ +mod_version=1.0.2 +# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. +# This should match the base package used for the mod sources. +# See https://maven.apache.org/guides/mini/guide-naming-conventions.html +mod_group_id=xyz.sillyangel.nugget +# The authors of the mod. This is a simple text string that is used for display purposes in the mod list. +mod_authors=sillyangel +# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. mod_description=gedagedigedagedago \ No newline at end of file diff --git a/gradlew.bat b/gradlew.bat index 93e3f59..6689b85 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,92 +1,92 @@ -@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=. -@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. -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% 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 +@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=. +@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. +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% 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 diff --git a/run-data/config/fml.toml b/run-data/config/fml.toml index 0d5dada..2125c31 100644 --- a/run-data/config/fml.toml +++ b/run-data/config/fml.toml @@ -1,28 +1,28 @@ -#Early window height -earlyWindowHeight = 480 -#Enable forge global version checking -versionCheck = true -#Should we control the window. Disabling this disables new GL features and can be bad for mods that rely on them. -earlyWindowControl = true -#Early window framebuffer scale -earlyWindowFBScale = 1 -#Early window provider -earlyWindowProvider = "fmlearlywindow" -#Early window width -earlyWindowWidth = 854 -#Early window starts maximized -earlyWindowMaximized = false -#Default config path for servers -defaultConfigPath = "defaultconfigs" -#Disables Optimized DFU client-side - already disabled on servers -disableOptimizedDFU = true -#Skip specific GL versions, may help with buggy graphics card drivers -earlyWindowSkipGLVersions = [] -#Whether to log a help message on first attempt, to aid troubleshooting. This setting should automatically disable itself after a successful launch -earlyWindowLogHelpMessage = true -#Max threads for early initialization parallelism, -1 is based on processor count -maxThreads = -1 -#Squir? -earlyWindowSquir = false -#Whether to show CPU usage stats in early window -earlyWindowShowCPU = false +#Early window height +earlyWindowHeight = 480 +#Enable forge global version checking +versionCheck = true +#Should we control the window. Disabling this disables new GL features and can be bad for mods that rely on them. +earlyWindowControl = true +#Early window framebuffer scale +earlyWindowFBScale = 1 +#Early window provider +earlyWindowProvider = "fmlearlywindow" +#Early window width +earlyWindowWidth = 854 +#Early window starts maximized +earlyWindowMaximized = false +#Default config path for servers +defaultConfigPath = "defaultconfigs" +#Disables Optimized DFU client-side - already disabled on servers +disableOptimizedDFU = true +#Skip specific GL versions, may help with buggy graphics card drivers +earlyWindowSkipGLVersions = [] +#Whether to log a help message on first attempt, to aid troubleshooting. This setting should automatically disable itself after a successful launch +earlyWindowLogHelpMessage = true +#Max threads for early initialization parallelism, -1 is based on processor count +maxThreads = -1 +#Squir? +earlyWindowSquir = false +#Whether to show CPU usage stats in early window +earlyWindowShowCPU = false diff --git a/run-data/logs/2024-12-30-1.log.gz b/run-data/logs/2024-12-30-1.log.gz index c4580ec37dcd1c3ec8c5e7b0827b3c3d3d36c396..1a5bccc601369a1c621ca2fc58a91dde8fcd8b46 100644 GIT binary patch literal 1388 zcmV-y1(W(8iwFP!00000|Ls`cQ`zw%*-l!5LutxA+|0cYOV;jwyZh~~%z5DM@z{6$4tTxD^&-Ddf?n_y z&QmI+GZ?);!sj@flTVg29?kM<6C&PKZ*_fNh?FjQ>u2J%8mA!iZL ze5T>N-L8aBamh^!rV4*A3e9uIZ!Z`%v<2-p)tZ}uWc;oL-u7}w?}@wxyV2wf&+7>j zRLTjN<&-6S5>vFNCzZl_uadIzGn(>Jn%EWk&;nV^5JLHg`jf=|sKR6g!rF@_yNV%h zIL_5IkBy!j&|5lL%3Q>X@rlmk$&5>$Q^VOL=UNqc%u9p(PH2M)eo2=N_;)p5U%xtU z%uVk%a&z!`2!e5G#8hwwRKtFph)i?XVJb7CNZ}~s@?h^1bUW>L!oZm4x0pzj^F88{ z@K4WcAD)iafa|+2L>$j0KJh>snwye9*BCTFBw8q0LxIctNAUlGqcMCDlBu}{&qLnD zS3pzN?JR{+wc7wcaEaFsSKv!-NGc?cb2>F8xyUq4NTR4sDH)_GM;;npS^P*P@-BDK zmz6h|`&*2A4pJGYrQwpt6uA#oT)>n?0YW#FMH60+_?^{or{WG5Xn&k3IpfD_&U4K3 zaPaqF1mogT-)qBD_*{kJtxI}j8^$H!-d@u@nu>%+j^pe`PFZD6S!GULWlmLP4(75* zxNiH7J&(V{a}YAorO~W1>Qq=t6Hbp_dR~XdK`-Q8cF8CU`IJt%k1uG4O?#g2_Puag z3AIZhf`HyQB>@G(`;i^{^7if7=+o%v%cvf5)(RBNRoSUK=XmbKYJW& z0jnjxKU6U_s?6+20bA?~uED4>p_sHnG6Lfpk!7gyO%t##>3XXad!j;W*B7*USS{5N z%cGh&TaRh81#@ApZ1XKrEc&toKkS9S+gTs?>i=$c4LihlOWt56DqghbD!<`*+kJvY zu}V`V$$Ps%k~;5?PCo2ot}sXC9-z8K&9|0aD6}ms2+A1YhE_O?V6=d6iA8f;I4H5=Y7(o;9jk9Jbo$y8DW@nI1>NUF|lBTvmnbZzS z5M4-eEt#+zw)X5?sLwP(3$YcfUS=Aw*kW1sf<0Uy^K8Sxow}bdB4A*sT4^`cD;9RZF%+K2+Vi8k^(#CI?x46~YOIrs0%c;uWIVQqbGP(hq83Dx}a? z_NF^E_Ey>HLAuV^qr2;dZk_O0Wb0fCz3v89YL$=NLCx#j+00ObJEwG}s~)$IjV==v z-;`rbuuutEvxQYx!|k=cZf3T@*LNie@rB_(ceWRFHn6(J#3Q2n{#ti? z!6r4glO#(|?bS-%L=g7F^;WvisHcxqU+voAXf4=>@?+j8LlY=J9wX?wEl>%A7(bv) u1RWngANYK+4Ers}d5Rxq%>Fk3KTiP<%yVH3ml2|Q{pueP*-Hw;5&!@@jH+({ literal 1152 zcmV-`1b_P@(Eo%8#iK5EH zZZRZIWIF}s*YCBHG88&1V0c++rK*XY_}=4t&biKI&F}Fj^usy?^=_lnZ8S-%)4qbs zgbL~PhX*6PkFtA`q)gktnC3FN;ffrWH{M{>JKjAT?tR@KUv*)Svegq%xs*aKxD$wgr$wE;U^Jzpe zhn^Ne%DLiAyJkTX?p6>xLfjRQ`2y3rTZ|dU_LAl%%Z-b>momf(Cn~+=kk-WAIh`A3+m-+#N@z(?D!{Q@6H=K~Oo zOC#ojGoTvwqgZ5`!!AoRBk}}B8J9=BZ_un)zX$^pu9iq1t_uU=lg6JxP(41K{0v;< zlf)AEBqRZ7LzQu&xy7OZBGDq1B^0=Rdnjbm=}wxZV^EcTb>i0KuFIOu`ic9 zXTxv9(Zz7R8jY^+DVFWmQrU)kVQy@b%@Z`b z>$L0r?;{=bbszpuc2P%3h+1j3EG1a|LJQUVRNZk^_5VdWQJN&FBnNhY!t@SC# z?X+vtuq;7BUkW2=EWUHL8A`q0_{_T5v&NEo%kGGzi8UpY+QSt@=aSq?ChUauo9+MQ zJDZ>dq}_Rg{jEWs{NKX?D$h0xWn;g2)= zVs|`z3595Prjm?Ccbc42DdL!(;9$H`?U!7{C7@krK{y*9!*(uFQQZyA`MGJmr#!AL z%oH|f5A%ELr6|^T&N?OivxH_DXS2*6nznb$?6!#CB4OKk%zI|Hx2~xwj&x?WvHua) z{4KBODIQ6p;!dTh*#?BFA(#9iLv!ParEy;g{lC2LF0WPiuN1f5dihPUUR>uOYmCF9 zXBP+Lr2I~Uto+cyvkFtgDZR#zg-w}i#1DcGWO^1B=0Xa6W4~kP1`XQ44wigsvJKlB S^GIZNOaA~#%;+xVt}fe_yvQ8h&4dfgd!1wtGRR=QoJoZe7Af z%%t)LquoP%50iTmYi`_6#4;6LikpYMP)tOKT(hUvmr<> zl$A3nI4}b{VI&hHV2kU-$}EP%M5z7#H)uEOU!;YxNbj(CXcti8lh*H))(=j`{|30{ zWT8F@2nAzVYID-uVA24Q7^zhW1*VU$;Qs-KV>p+J>w5!~BGnupN!G9UkyK? z%UoB&l2|Gcrfg>Ol95>)kw`OFQZk5R!6lZzi1?K$$XX0i>yrLN(r2dt(W2EFW-z@yCf)b8)2aMT&JE4*ndBV4O|Oqp>1}vmzCn zKIxJUjB~68Eiq#=5#S%J$!A>}_#3n}D~#&75kU}ZUQRlRke)MQN8N3nj=qf! z&qr0+XpvxJnS6g!Jvnjb!p8$0GOP1yjx_Maz7z(m&WnhJ z$`mIszLiOW9@naXwMnDX{J1L0qc5oRQX$1Bjyok;)?ZU)9qy&Qc1<>mQRsQ6ecAt3 z>7cLs@PD_9(l$1#z?B5EUvQy*uhUzR*8O*=6Y4nDitM@t64To~Jl@;E`e0r1JwSI0 zZP%Wu zD_JDJ3tkNcVSZ-b+^lg$z2Ub+vDk@{E90RBF_|Jaic7cQ^yd11`ArqHF7X@7DyzWa z1oEW+J}!`XuF2p|*|!%NaIoA5u*WQ_6C02#pc5@RUa-EBU0p((oduNht>e)$6k_t3 zN)i^{8gj;zj3Rb~i{k}rzhp8h0d3_Hgwx{#SkDwPs#npRpNrOeij%j6s}!5Fhw;6a zsVHo`Tsmd>uVR)Yf?p+WXu95U<&H)C4hg!s#=K{8`>0Jl63u)Fj^RI(+{VVccc4N+P8fSd&n^b!xV)!9 zQeJd$R$*v3VN<*;R7dJixsG}rDPJF_Uz25mz8slh6abu2=eym_QHU literal 1526 zcmV>(`K1YuDYj8{nYjUZRVH zFz)n*2P3!+(>YE=q|8rDG9KPgiTlNcGZ=OId*{Q>(f;XW8x2IXc!FfcIpec7B66nC zMYWo5K7%FI6*Lv_f0ZdJBYJ-o5lt$nS|v(R-Qy8`s35QTbVqfWte|dtf@hLMF`a}2 zFw`U$QryemG<#+wp>_v0E8ty0JevWmy#$$YZ2m;1(@a~r9T5RnbRxwq4YisalY5d& zuX@<`jEsqr;bcZRl|<8MBB>IY45}Xbg**>pExbV_i5j)1%^=z> zr{4^M1^sV(r$e~rRO5tk8cH(N)@68_#5fkjxD+1@`W?ZiZ02-Er~9BnzRDmX4APXv zbkhKU?5LWcpM+M##K35g#E2=xg+`%}5;kLiuoob3l@iS*AG}qG9xuSq9eqR>l*sro zH|h9}rHB2mxgpghnnM5;??N<9rAQ#J;uvXxE>^^Ev$kAM-j7~i%#LWB4yaOOM%U8Q zGNb=K!SSCNlWTcRNvu{9^Zq$vH)7s7Ip3CA%lF?#t(PP;Vo*18_#?uhU`xkveE9@& z<{k=`v^h}hM%OeX&?rz|P>{AA#3ah=9#Y1)hP~EujwI{>7Jxra1)tFqF{cs?FzEf! z8=`S`tsa%82`WPWlZ#upiN>~4f4U{IZBo7MI8L|i6fMcgTap9GoyAmDeaE~5|JZYY zCRP?G&4HX8-->lwxX-9EVPu4WqcR?0Wa>!@5=7$U7>l?wZgEMUn`P56l7r z(>WNO9`1vGz%TY50&$Dnt~|Bry6N#jUlX#6<+O@ch-e-{=Id8Wv~ouY0pEMRDv7tkTmkeyI~i~~*5g5X8e zmqynv_I+>N0EU$vMsZ5QJB7az&f=Jyz~XcfwVyK<7lig~3ZnDVKHAARL{z(^I6qHX z=LyG_g)0fg*#Ug#r77|~j!m7y{Z|P|QyN{RX4*8h-*4lo(0_mApIGAvzZp;C2sv$uewK_`P z6|6+9QyQ{#l}fc&1KB1hg~(-fJh!n@o$Y{1)Hx$Fl~=aK-u87Y!aLi{SoFQYm-DE* zyIb(s81$7%nky}`9h1#0!pzLPp+UTD(q~i5WqYhK$5uQ_%+WJEphePHwSTC5P}>5u z9O0GgS0}@EuqC>Fwm}FFH2tx%&0zT>(I%)XAeOa-VQ{6o+X3&v>35;28K}fv8!C+J zuZF2_0CPmtO~*7z17R-gM=mWiiS1`2&@pILkccBVj%QrAkqd_gI$x}U-3pR4fg@OC cK9a%V)4VX3Ol!)`-VeY04R2hfN4tJ-^v&HOOw* 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 S^GIZNOaA~#%>(`K1YuDYj8{nYjUZRVH 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 Ak^lez literal 8800 zcmV-mBA?wKiwFP!00000|Lt9QbKAI*|9iJ;zXPW#TjSK)l&D*JFYm?ik@1YLwVY&k z)#C*|Wzx18F^`SAt(Hs)W{nQQv^pRI?EaZ5b)H2P6HyEr`Ee|LWH%hA=R zfpX@W@e{=h9mjH}14Z|yzVdNzk9~X%mn7I#CNBIPg+B32az8TlK;KpN_H^GT!HHv% zue*xYP44)Imba@M4sO(`r<*ppF?6WIzhQ+$_t=~G%~YQe`h|*DfO}VQ!YNcse?pnI zjep!Qn1=x^_rNs)t8(eNpNSFpH^1ulIxBroQyUtVapQZ&&6GIA(*t7Oc*J)@&mgoy z^40PKC?Ho^$mB&apZ@J%KW4N?uikt_d;I$TOtDPj1lGhNrlR}GkzreNpD6pLI}faI zrd-U4^XuVnN~g8=#tM`n@$RAV;Jb#V*46fZXxiTC^^gayT~cS!>S{yP6hF|tfOeYC zz%&Jr_?GKLP?Yh*8vMU07enQP<(TdlU(qz^YsRgj&&*CM`520>bKv(|G5o`$H}BqV z#*dt_4DyTaKxbQ}<=71!Q(<2yK6?{7{c}JyIXO=?@PoKmO;YhVrE|3t6tjS)N%wGbxvROq5hfm)pB;pJuqq<`n$e8X?>np zUx7>R7)Si**0oLGy-6mPqubW+WEW&%V9m&gIN@wWz6Jy&oVRP}bA4>tR`4(i+&kio z{BUg8AjWoe18DUFPj`Ia{0!cWN-#mr7&g%zPBV1XM!hdY{&ifq9>6GxTEfp}#G&OI zF0?$hM6mQ-(l8t_T4xoELjpDF^0Zs2lbNmBu8vYuJw7|V)Pq~Uc5rcZ1XbgO@^=61 z=0wa@t~A1LpDI60+kP@vo;_e4dyyq zh{cV`0n!sw7czlBX)Y*^?kbYgsQW|^7%zDBuSu

IcnGsQO2=gDCkE-e~S=&HQ4A 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

IcnGsQO2=gDCkE-e~S=&HQ4A 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 ACTIVE -[30Dec2024 15:05:05.890] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:fluid Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.890] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:item Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.919] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:mob_effect Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.919] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:sound_event Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:potion Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:entity_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:block_entity_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:particle_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:menu Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:painting_variant Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:recipe_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:recipe_serializer Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:attribute Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:stat_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:command_argument_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:villager_profession Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:point_of_interest_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:memory_module_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.935] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:sensor_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.951] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:schedule Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.951] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:activity Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.951] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/carver Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.951] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/feature Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.951] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:chunk_status Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.951] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/block_state_provider_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.951] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/foliage_placer_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.951] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/tree_decorator_type Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.951] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/biome Sync: VANILLA -> ACTIVE -[30Dec2024 15:05:05.967] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Vanilla freeze snapshot created -[30Dec2024 15:05:05.983] [main/DEBUG] [net.minecraftforge.fml.ModWorkManager/LOADING]: Using 4 threads for parallel mod-loading -[30Dec2024 15:05:05.999] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider/LOADING]: Loading FMLModContainer from classloader TransformingClassLoader[TRANSFORMER]@1136612247 - got SecureModuleClassLoader[LAYER PLUGIN]@1227438915 -[30Dec2024 15:05:05.999] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for net.minecraftforge.common.ForgeMod -[30Dec2024 15:05:05.999] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider/LOADING]: Loading FMLModContainer from classloader TransformingClassLoader[TRANSFORMER]@1136612247 - got SecureModuleClassLoader[LAYER PLUGIN]@1227438915 -[30Dec2024 15:05:05.999] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for xyz.sillyangel.nugget.NuggetMod -[30Dec2024 15:05:06.046] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Forge Version package package net.minecraftforge.versions.forge, Forge, version 0.0 from TransformingClassLoader[TRANSFORMER]@1136612247 -[30Dec2024 15:05:06.046] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge version 51.0.33 -[30Dec2024 15:05:06.046] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge spec 0.0 -[30Dec2024 15:05:06.046] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge group net.minecraftforge -[30Dec2024 15:05:06.046] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.mcp.MCPVersion/CORE]: MCP Version package package net.minecraftforge.versions.mcp, Minecraft, version 1.21 from TransformingClassLoader[TRANSFORMER]@1136612247 -[30Dec2024 15:05:06.046] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.mcp.MCPVersion/CORE]: Found MC version information 1.21 -[30Dec2024 15:05:06.046] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.mcp.MCPVersion/CORE]: Found MCP version information 20240613.102039 -[30Dec2024 15:05:06.046] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 51.0.33, for MC 1.21 with MCP 20240613.102039 -[30Dec2024 15:05:06.046] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v51.0.33 Initialized -[30Dec2024 15:05:06.090] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Opening jdk.naming.dns/com.sun.jndi.dns to java.naming -[30Dec2024 15:05:06.144] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file nuggetmod-common.toml for nuggetmod tracking -[30Dec2024 15:05:06.144] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for nuggetmod -[30Dec2024 15:05:06.144] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing xyz.sillyangel.nugget.Config to MOD -[30Dec2024 15:05:06.181] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing xyz.sillyangel.nugget.datagen.DataGenerators to MOD -[30Dec2024 15:05:06.181] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: -Dio.netty.noUnsafe: false -[30Dec2024 15:05:06.182] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: Java version: 21 -[30Dec2024 15:05:06.183] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: sun.misc.Unsafe.theUnsafe: available -[30Dec2024 15:05:06.185] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: sun.misc.Unsafe.copyMemory: available -[30Dec2024 15:05:06.195] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: sun.misc.Unsafe.storeFence: available -[30Dec2024 15:05:06.195] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: java.nio.Buffer.address: available -[30Dec2024 15:05:06.211] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing xyz.sillyangel.nugget.NuggetMod$ClientModEvents to MOD -[30Dec2024 15:05:06.195] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: direct buffer constructor: unavailable -java.lang.UnsupportedOperationException: Reflective setAccessible(true) disabled - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.ReflectionUtil.trySetAccessible(ReflectionUtil.java:31) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent0$5.run(PlatformDependent0.java:289) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) ~[?:?] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent0.(PlatformDependent0.java:282) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:333) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent.(PlatformDependent.java:88) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.ConstantPool.(ConstantPool.java:34) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.AttributeKey$1.(AttributeKey.java:27) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.AttributeKey.(AttributeKey.java:27) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at TRANSFORMER/forge@51.0.33/net.minecraftforge.network.NetworkInitialization.(NetworkInitialization.java:27) ~[forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21-recomp.jar:?] - at TRANSFORMER/forge@51.0.33/net.minecraftforge.common.ForgeMod.(ForgeMod.java:385) ~[forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21-recomp.jar:?] - at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?] - at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?] - at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?] - at LAYER PLUGIN/net.minecraftforge.javafmlmod@1.21-51.0.33/net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:66) ~[javafmllanguage-1.21-51.0.33.jar!/:51.0.33] - at LAYER PLUGIN/net.minecraftforge.fmlcore@1.21-51.0.33/net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$5(ModContainer.java:125) ~[fmlcore-1.21-51.0.33.jar!/:1.0] - at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) [?:?] - at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) [?:?] - at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) [?:?] - at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) [?:?] - at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) [?:?] - at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) [?:?] - at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) [?:?] -[30Dec2024 15:05:06.243] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: java.nio.Bits.unaligned: available, true -[30Dec2024 15:05:06.243] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable -java.lang.IllegalAccessException: class io.netty.util.internal.PlatformDependent0$7 (in module io.netty.common) cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to module io.netty.common - at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:394) ~[?:?] - at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:714) ~[?:?] - at java.base/java.lang.reflect.Method.invoke(Method.java:571) ~[?:?] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent0$7.run(PlatformDependent0.java:411) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) ~[?:?] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent0.(PlatformDependent0.java:402) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:333) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent.(PlatformDependent.java:88) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.ConstantPool.(ConstantPool.java:34) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.AttributeKey$1.(AttributeKey.java:27) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.AttributeKey.(AttributeKey.java:27) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] - at TRANSFORMER/forge@51.0.33/net.minecraftforge.network.NetworkInitialization.(NetworkInitialization.java:27) ~[forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21-recomp.jar:?] - at TRANSFORMER/forge@51.0.33/net.minecraftforge.common.ForgeMod.(ForgeMod.java:385) ~[forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21-recomp.jar:?] - at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?] - at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?] - at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?] - at LAYER PLUGIN/net.minecraftforge.javafmlmod@1.21-51.0.33/net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:66) ~[javafmllanguage-1.21-51.0.33.jar!/:51.0.33] - at LAYER PLUGIN/net.minecraftforge.fmlcore@1.21-51.0.33/net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$5(ModContainer.java:125) ~[fmlcore-1.21-51.0.33.jar!/:1.0] - at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) [?:?] - at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) [?:?] - at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) [?:?] - at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) [?:?] - at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) [?:?] - at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) [?:?] - at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) [?:?] -[30Dec2024 15:05:06.243] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: java.nio.DirectByteBuffer.(long, {int,long}): unavailable -[30Dec2024 15:05:06.243] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: sun.misc.Unsafe: available -[30Dec2024 15:05:06.243] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: maxDirectMemory: 2051014656 bytes (maybe) -[30Dec2024 15:05:06.243] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: -Dio.netty.tmpdir: C:\Users\diann\AppData\Local\Temp (java.io.tmpdir) -[30Dec2024 15:05:06.243] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: -Dio.netty.bitMode: 64 (sun.arch.data.model) -[30Dec2024 15:05:06.258] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: Platform: Windows -[30Dec2024 15:05:06.258] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: -Dio.netty.maxDirectMemory: -1 bytes -[30Dec2024 15:05:06.258] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: -Dio.netty.uninitializedArrayAllocationThreshold: -1 -[30Dec2024 15:05:06.258] [modloading-worker-0/DEBUG] [io.netty.util.internal.CleanerJava9/]: java.nio.ByteBuffer.cleaner(): available -[30Dec2024 15:05:06.258] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: -Dio.netty.noPreferDirect: false -[30Dec2024 15:05:06.414] [modloading-worker-0/DEBUG] [net.minecraftforge.network.NetworkInitialization/FORGE_NETWORK]: Registering Network forge:login v0 -[30Dec2024 15:05:06.414] [modloading-worker-0/DEBUG] [net.minecraftforge.network.NetworkInitialization/FORGE_NETWORK]: Registering Network forge:handshake v0 -[30Dec2024 15:05:06.414] [modloading-worker-0/DEBUG] [net.minecraftforge.network.NetworkInitialization/FORGE_NETWORK]: Registering Network forge:handshake v0 -[30Dec2024 15:05:06.414] [modloading-worker-0/DEBUG] [net.minecraftforge.network.NetworkInitialization/FORGE_NETWORK]: Registering Network forge:channel_registration v0 -[30Dec2024 15:05:06.483] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file forge-client.toml for forge tracking -[30Dec2024 15:05:06.483] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file forge-server.toml for forge tracking -[30Dec2024 15:05:06.483] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.ModLoadingContext/]: Attempted to register an empty config for type COMMON on mod forge -[30Dec2024 15:05:06.563] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for forge -[30Dec2024 15:05:06.563] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.common.ForgeSpawnEggItem$CommonHandler to MOD -[30Dec2024 15:05:06.563] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.common.ForgeSpawnEggItem$ColorRegisterHandler to MOD -[30Dec2024 15:05:06.563] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.client.model.data.ModelDataManager to FORGE -[30Dec2024 15:05:06.579] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.client.ForgeHooksClient$ClientEvents to MOD -[30Dec2024 15:05:06.594] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.client.ClientForgeMod to MOD -[30Dec2024 15:05:06.610] [main/DEBUG] [net.minecraftforge.registries.ObjectHolderRegistry/REGISTRIES]: Processing ObjectHolder annotations -[30Dec2024 15:05:06.873] [main/DEBUG] [net.minecraftforge.registries.ObjectHolderRegistry/REGISTRIES]: Found 4036 ObjectHolder annotations -[30Dec2024 15:05:06.873] [main/DEBUG] [net.minecraftforge.common.capabilities.CapabilityManager/CAPABILITIES]: Attempting to automatically register: Lnet/minecraftforge/energy/IEnergyStorage; -[30Dec2024 15:05:06.873] [main/DEBUG] [net.minecraftforge.common.capabilities.CapabilityManager/CAPABILITIES]: Attempting to automatically register: Lnet/minecraftforge/fluids/capability/IFluidHandler; -[30Dec2024 15:05:06.873] [main/DEBUG] [net.minecraftforge.common.capabilities.CapabilityManager/CAPABILITIES]: Attempting to automatically register: Lnet/minecraftforge/fluids/capability/IFluidHandlerItem; -[30Dec2024 15:05:06.873] [main/DEBUG] [net.minecraftforge.common.capabilities.CapabilityManager/CAPABILITIES]: Attempting to automatically register: Lnet/minecraftforge/items/IItemHandler; -[30Dec2024 15:05:06.873] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Unfreezing vanilla registries -[30Dec2024 15:05:06.889] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:sound_event -[30Dec2024 15:05:06.953] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:sound_event -[30Dec2024 15:05:06.968] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:fluid -[30Dec2024 15:05:06.968] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:fluid -[30Dec2024 15:05:06.968] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:block -[30Dec2024 15:05:07.033] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:block -[30Dec2024 15:05:07.033] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:attribute -[30Dec2024 15:05:07.048] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:attribute -[30Dec2024 15:05:07.048] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:mob_effect -[30Dec2024 15:05:07.048] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:mob_effect -[30Dec2024 15:05:07.048] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:particle_type -[30Dec2024 15:05:07.048] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:particle_type -[30Dec2024 15:05:07.048] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:data_component_type -[30Dec2024 15:05:07.048] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:data_component_type -[30Dec2024 15:05:07.048] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_effect_component_type -[30Dec2024 15:05:07.048] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_effect_component_type -[30Dec2024 15:05:07.064] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:item -[30Dec2024 15:05:07.127] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:item -[30Dec2024 15:05:07.127] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:entity_type -[30Dec2024 15:05:07.127] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:entity_type -[30Dec2024 15:05:07.143] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:armor_material -[30Dec2024 15:05:07.143] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:armor_material -[30Dec2024 15:05:07.143] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:game_event -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:game_event -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:potion -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:potion -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:block_entity_type -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:block_entity_type -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:stat_type -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:stat_type -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:custom_stat -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:custom_stat -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:chunk_status -[30Dec2024 15:05:07.159] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:chunk_status -[30Dec2024 15:05:07.174] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:rule_test -[30Dec2024 15:05:07.174] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:rule_test -[30Dec2024 15:05:07.174] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:rule_block_entity_modifier -[30Dec2024 15:05:07.174] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:rule_block_entity_modifier -[30Dec2024 15:05:07.174] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:pos_rule_test -[30Dec2024 15:05:07.200] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:pos_rule_test -[30Dec2024 15:05:07.203] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:menu -[30Dec2024 15:05:07.204] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:menu -[30Dec2024 15:05:07.206] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:recipe_type -[30Dec2024 15:05:07.208] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:recipe_type -[30Dec2024 15:05:07.213] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:recipe_serializer -[30Dec2024 15:05:07.213] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:recipe_serializer -[30Dec2024 15:05:07.213] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:position_source_type -[30Dec2024 15:05:07.213] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:position_source_type -[30Dec2024 15:05:07.213] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:command_argument_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:command_argument_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:villager_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:villager_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:villager_profession -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:villager_profession -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:point_of_interest_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:point_of_interest_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:memory_module_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:memory_module_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:sensor_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:sensor_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:schedule -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:schedule -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:activity -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:activity -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_number_provider_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_number_provider_type -[30Dec2024 15:05:07.229] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_score_provider_type -[30Dec2024 15:05:07.245] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_score_provider_type -[30Dec2024 15:05:07.245] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_function_type -[30Dec2024 15:05:07.245] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_function_type -[30Dec2024 15:05:07.245] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:map_decoration_type -[30Dec2024 15:05:07.245] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:map_decoration_type -[30Dec2024 15:05:07.245] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_nbt_provider_type -[30Dec2024 15:05:07.260] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_nbt_provider_type -[30Dec2024 15:05:07.260] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_pool_entry_type -[30Dec2024 15:05:07.260] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_pool_entry_type -[30Dec2024 15:05:07.260] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_condition_type -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_condition_type -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:float_provider_type -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:float_provider_type -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:int_provider_type -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:int_provider_type -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:height_provider_type -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:height_provider_type -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:block_predicate_type -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:block_predicate_type -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/carver -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/carver -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/feature -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/feature -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/structure_processor -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/structure_processor -[30Dec2024 15:05:07.276] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/structure_placement -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/structure_placement -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/structure_piece -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/structure_piece -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/structure_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/structure_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/placement_modifier_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/placement_modifier_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/block_state_provider_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/block_state_provider_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/foliage_placer_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/foliage_placer_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/trunk_placer_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/trunk_placer_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/root_placer_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/root_placer_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/tree_decorator_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/tree_decorator_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/feature_size_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/feature_size_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/biome_source -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/biome_source -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/chunk_generator -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/chunk_generator -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/material_condition -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/material_condition -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/material_rule -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/material_rule -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/density_function_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/density_function_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:block_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:block_type -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/structure_pool_element -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/structure_pool_element -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/pool_alias_binding -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/pool_alias_binding -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:cat_variant -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:cat_variant -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:frog_variant -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:frog_variant -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:instrument -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:instrument -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:decorated_pot_pattern -[30Dec2024 15:05:07.292] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:decorated_pot_pattern -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:creative_mode_tab -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:creative_mode_tab -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:trigger_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:trigger_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:number_format_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:number_format_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:entity_sub_predicate_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:entity_sub_predicate_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:item_sub_predicate_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:item_sub_predicate_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_level_based_value_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_level_based_value_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_entity_effect_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_entity_effect_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_location_based_effect_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_location_based_effect_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_value_effect_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_value_effect_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_provider_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_provider_type -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:biome_modifier_serializers -[30Dec2024 15:05:07.308] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:biome_modifier_serializers -[30Dec2024 15:05:07.329] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:condition_codecs -[30Dec2024 15:05:07.329] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:condition_codecs -[30Dec2024 15:05:07.344] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:display_contexts -[30Dec2024 15:05:07.344] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:display_contexts -[30Dec2024 15:05:07.344] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:entity_data_serializers -[30Dec2024 15:05:07.344] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:entity_data_serializers -[30Dec2024 15:05:07.360] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:fluid_type -[30Dec2024 15:05:07.360] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:fluid_type -[30Dec2024 15:05:07.360] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:global_loot_modifier_serializers -[30Dec2024 15:05:07.376] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:global_loot_modifier_serializers -[30Dec2024 15:05:07.376] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:holder_set_type -[30Dec2024 15:05:07.376] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:holder_set_type -[30Dec2024 15:05:07.392] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:ingredient_serializers -[30Dec2024 15:05:07.392] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:ingredient_serializers -[30Dec2024 15:05:07.392] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:structure_modifier_serializers -[30Dec2024 15:05:07.392] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:structure_modifier_serializers -[30Dec2024 15:05:07.392] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:painting_variant -[30Dec2024 15:05:07.392] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:painting_variant -[30Dec2024 15:05:07.392] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/biome -[30Dec2024 15:05:07.392] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/biome -[30Dec2024 15:05:07.454] [main/INFO] [net.minecraftforge.data.loading.DatagenModLoader/]: Initializing Data Gatherer for mods [nuggetmod] -[30Dec2024 15:05:07.550] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/D:/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.21-51.0.33_mapped_parchment_2024.07.28-1.21/forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21-recomp.jar%230!/assets/.mcassetsroot' uses unexpected schema -[30Dec2024 15:05:07.550] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/D:/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.21-51.0.33_mapped_parchment_2024.07.28-1.21/forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21-recomp.jar%230!/data/.mcassetsroot' uses unexpected schema -[30Dec2024 15:05:07.733] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Loot Tables -[30Dec2024 15:05:08.022] [main/INFO] [net.minecraft.data.DataGenerator/]: Loot Tables finished after 275 ms -[30Dec2024 15:05:08.022] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Recipes -[30Dec2024 15:05:08.062] [main/INFO] [net.minecraft.data.DataGenerator/]: Recipes finished after 43 ms -[30Dec2024 15:05:08.062] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Tags for minecraft:block mod id nuggetmod -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Tags for minecraft:block mod id nuggetmod finished after 7 ms -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Tags for minecraft:item mod id nuggetmod -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Tags for minecraft:item mod id nuggetmod finished after 2 ms -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Item Models: nuggetmod -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Item Models: nuggetmod finished after 4 ms -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Block States: nuggetmod -[30Dec2024 15:05:08.206] [main/INFO] [net.minecraft.data.DataGenerator/]: Block States: nuggetmod finished after 121 ms -[30Dec2024 15:05:08.206] [main/INFO] [net.minecraft.data.DataGenerator/]: All providers took: 467 ms -[30Dec2024 15:05:08.227] [main/INFO] [net.minecraft.data.HashCache/]: Caching: total files: 42, old count: 38, new count: 43, removed stale: 0, written: 4 +[30Dec2024 18:26:11.395] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forge_userdev_data, --assetIndex, 17, --assetsDir, C:\Users\diann\.gradle\caches\forge_gradle\assets, --gameDir, ., --mod, nuggetmod, --all, --output, D:\Coding Projects\Java\nuggetmod_code\src\generated\resources, --existing, D:\Coding Projects\Java\nuggetmod_code\src\main\resources] +[30Dec2024 18:26:11.399] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: JVM identified as Eclipse Adoptium OpenJDK 64-Bit Server VM 21.0.5+11-LTS +[30Dec2024 18:26:11.401] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.2.1 starting: java version 21.0.5 by Eclipse Adoptium; OS Windows 11 arch amd64 version 10.0 +[30Dec2024 18:26:11.425] [main/DEBUG] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Found launch services [forge_userdev_client,forge_dev_data,minecraft,forge_userdev_server_gametest,forge_dev_client,forge_userdev_data,forge_dev_server_gametest,testharness,forge_userdev_server,forge_client,forge_dev_server,forge_server] +[30Dec2024 18:26:11.438] [main/DEBUG] [cpw.mods.modlauncher.NameMappingServiceHandler/MODLAUNCHER]: Found naming services : [srgtomcp] +[30Dec2024 18:26:11.461] [main/DEBUG] [cpw.mods.modlauncher.LaunchPluginHandler/MODLAUNCHER]: Found launch plugins: [mixin,eventbus,slf4jfixer,object_holder_definalize,runtime_enum_extender,capability_token_subclass,accesstransformer,runtimedistcleaner] +[30Dec2024 18:26:11.467] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Discovering transformation services +[30Dec2024 18:26:11.470] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path GAMEDIR is D:\Coding Projects\Java\nuggetmod_code\run-data +[30Dec2024 18:26:11.471] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path MODSDIR is D:\Coding Projects\Java\nuggetmod_code\run-data\mods +[30Dec2024 18:26:11.471] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path CONFIGDIR is D:\Coding Projects\Java\nuggetmod_code\run-data\config +[30Dec2024 18:26:11.471] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path FMLCONFIG is D:\Coding Projects\Java\nuggetmod_code\run-data\config\fml.toml +[30Dec2024 18:26:11.522] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: ImmediateWindowProvider not loading because launch target is forge_userdev_data +[30Dec2024 18:26:11.572] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Found transformer service: fml: / +[30Dec2024 18:26:11.576] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Found transformer service: mixin: / +[30Dec2024 18:26:11.577] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Transformation services loading +[30Dec2024 18:26:11.578] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Loading service mixin +[30Dec2024 18:26:11.579] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Loaded service mixin +[30Dec2024 18:26:11.579] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Loading service fml +[30Dec2024 18:26:11.595] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Detected version data : VersionInfo[forgeVersion=51.0.33, mcVersion=1.21, mcpVersion=20240613.102039, forgeGroup=net.minecraftforge] +[30Dec2024 18:26:11.597] [main/DEBUG] [net.minecraftforge.fml.loading.LauncherVersion/CORE]: Found FMLLauncher version 51.0.33 +[30Dec2024 18:26:11.597] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML 51.0.33 loading +[30Dec2024 18:26:11.598] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Found ModLauncher version: 10.2.1 +[30Dec2024 18:26:11.599] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Found AccessTransformer version: 8.2.0 +[30Dec2024 18:26:11.599] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Found EventBus version: 6.2.8 +[30Dec2024 18:26:11.599] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Found RuntimeDistCleaner version: 51.0.33 +[30Dec2024 18:26:11.604] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML found CoreMod version : 5.1.6 +[30Dec2024 18:26:11.607] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Found ForgeSPI version: 7.1.4 +[30Dec2024 18:26:11.608] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Loaded service fml +[30Dec2024 18:26:11.611] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Configuring option handling for services +[30Dec2024 18:26:11.628] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Transformation services initializing +[30Dec2024 18:26:11.629] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initializing transformation service mixin +[30Dec2024 18:26:11.733] [main/DEBUG] [mixin/]: MixinService [ModLauncher] was successfully booted in SecureModuleClassLoader[SECURE-BOOTSTRAP]@494317290 +[30Dec2024 18:26:11.777] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.7 Source=jar:file:///C:/Users/diann/.gradle/caches/modules-2/files-2.1/org.spongepowered/mixin/0.8.7/8ab114ac385e6dbdad5efafe28aba4df8120915f/mixin-0.8.7.jar!/ Service=ModLauncher Env=UNKNOWN +[30Dec2024 18:26:11.784] [main/DEBUG] [mixin/]: Initialising Mixin Platform Manager +[30Dec2024 18:26:11.784] [main/DEBUG] [mixin/]: Adding mixin platform agents for container ModLauncher Root Container(ModLauncher:4f56a0a2) +[30Dec2024 18:26:11.786] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentMinecraftForge for ModLauncher Root Container(ModLauncher:4f56a0a2) +[30Dec2024 18:26:11.787] [main/DEBUG] [mixin/]: MixinPlatformAgentMinecraftForge rejected container ModLauncher Root Container(ModLauncher:4f56a0a2) +[30Dec2024 18:26:11.788] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentDefault for ModLauncher Root Container(ModLauncher:4f56a0a2) +[30Dec2024 18:26:11.789] [main/DEBUG] [mixin/]: MixinPlatformAgentDefault accepted container ModLauncher Root Container(ModLauncher:4f56a0a2) +[30Dec2024 18:26:11.792] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initialized transformation service mixin +[30Dec2024 18:26:11.792] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initializing transformation service fml +[30Dec2024 18:26:11.793] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Setting up basic FML game directories +[30Dec2024 18:26:11.793] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path GAMEDIR is D:\Coding Projects\Java\nuggetmod_code\run-data +[30Dec2024 18:26:11.794] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path MODSDIR is D:\Coding Projects\Java\nuggetmod_code\run-data\mods +[30Dec2024 18:26:11.794] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path CONFIGDIR is D:\Coding Projects\Java\nuggetmod_code\run-data\config +[30Dec2024 18:26:11.794] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path FMLCONFIG is D:\Coding Projects\Java\nuggetmod_code\run-data\config\fml.toml +[30Dec2024 18:26:11.794] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Loading configuration +[30Dec2024 18:26:11.806] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Preparing ModFile +[30Dec2024 18:26:11.810] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Preparing launch handler +[30Dec2024 18:26:11.810] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Using forge_userdev_data as launch service +[30Dec2024 18:26:11.817] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initialized transformation service fml +[30Dec2024 18:26:11.818] [main/DEBUG] [cpw.mods.modlauncher.NameMappingServiceHandler/MODLAUNCHER]: Current naming domain is 'mcp' +[30Dec2024 18:26:11.820] [main/DEBUG] [cpw.mods.modlauncher.NameMappingServiceHandler/MODLAUNCHER]: Identified name mapping providers {srg=net.minecraftforge.fml.loading.MCPNamingService@53b98ff6} +[30Dec2024 18:26:11.821] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Transformation services begin scanning +[30Dec2024 18:26:11.823] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Beginning scan trigger - transformation service mixin +[30Dec2024 18:26:11.825] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: End scan trigger - transformation service mixin +[30Dec2024 18:26:11.826] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Beginning scan trigger - transformation service fml +[30Dec2024 18:26:11.826] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Initiating mod scan +[30Dec2024 18:26:11.839] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModDiscoverer/CORE]: Found Mod Locators : (mods folder:null),(minecraft:null),(classpath:null),(forge_dev_locator:null),(forge_userdev_locator:null) +[30Dec2024 18:26:11.840] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModDiscoverer/CORE]: Found Dependency Locators : (JarInJar:null) +[30Dec2024 18:26:12.621] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileInfo/LOADING]: Found valid mod file with {minecraft} mods - versions {1.21} +[30Dec2024 18:26:13.053] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate D:\Coding Projects\Java\nuggetmod_code\build\sourcesSets\main +[30Dec2024 18:26:13.071] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileInfo/LOADING]: Found valid mod file main with {nuggetmod} mods - versions {1.0.2} +[30Dec2024 18:26:13.249] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate / +[30Dec2024 18:26:13.257] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileInfo/LOADING]: Found valid mod file with {forge} mods - versions {51.0.33} +[30Dec2024 18:26:13.280] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Failed to load resource META-INF\jarjar\metadata.json from , it does not contain dependency information. +[30Dec2024 18:26:13.281] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Failed to load resource META-INF\jarjar\metadata.json from , it does not contain dependency information. +[30Dec2024 18:26:13.281] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Failed to load resource META-INF\jarjar\metadata.json from javafmllanguage-1.21-51.0.33.jar, it does not contain dependency information. +[30Dec2024 18:26:13.282] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Failed to load resource META-INF\jarjar\metadata.json from main, it does not contain dependency information. +[30Dec2024 18:26:13.282] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Failed to load resource META-INF\jarjar\metadata.json from mclanguage-1.21-51.0.33.jar, it does not contain dependency information. +[30Dec2024 18:26:13.282] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Failed to load resource META-INF\jarjar\metadata.json from lowcodelanguage-1.21-51.0.33.jar, it does not contain dependency information. +[30Dec2024 18:26:13.283] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Failed to load resource META-INF\jarjar\metadata.json from fmlcore-1.21-51.0.33.jar, it does not contain dependency information. +[30Dec2024 18:26:13.326] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: No dependencies to load found. Skipping! +[30Dec2024 18:26:13.328] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileInfo/LOADING]: Found valid mod file with {minecraft} mods - versions {1.21} +[30Dec2024 18:26:13.329] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFile/LOADING]: Loading mod file / with languages [LanguageSpec[languageName=minecraft, acceptedVersions=1]] +[30Dec2024 18:26:13.331] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate / +[30Dec2024 18:26:13.332] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileInfo/LOADING]: Found valid mod file with {forge} mods - versions {51.0.33} +[30Dec2024 18:26:13.332] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFile/LOADING]: Loading mod file / with languages [LanguageSpec[languageName=javafml, acceptedVersions=[24,]]] +[30Dec2024 18:26:13.337] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Found coremod field_to_method with Javascript path coremods/field_to_method.js +[30Dec2024 18:26:13.340] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Found coremod method_redirector with Javascript path coremods/method_redirector.js +[30Dec2024 18:26:13.341] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFile/LOADING]: Found coremod /coremods/field_to_method.js +[30Dec2024 18:26:13.341] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFile/LOADING]: Found coremod /coremods/method_redirector.js +[30Dec2024 18:26:13.341] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate D:\Coding Projects\Java\nuggetmod_code\build\sourcesSets\main +[30Dec2024 18:26:13.344] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileInfo/LOADING]: Found valid mod file main with {nuggetmod} mods - versions {1.0.2} +[30Dec2024 18:26:13.347] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFile/LOADING]: Loading mod file D:\Coding Projects\Java\nuggetmod_code\build\sourcesSets\main with languages [LanguageSpec[languageName=javafml, acceptedVersions=[0,)]] +[30Dec2024 18:26:13.348] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: End scan trigger - transformation service fml +[30Dec2024 18:26:13.389] [main/DEBUG] [net.minecraftforge.fml.loading.LanguageLoadingProvider/CORE]: Found 3 language providers +[30Dec2024 18:26:13.391] [main/DEBUG] [net.minecraftforge.fml.loading.LanguageLoadingProvider/CORE]: Found language provider minecraft, version 1.0 +[30Dec2024 18:26:13.392] [main/DEBUG] [net.minecraftforge.fml.loading.LanguageLoadingProvider/CORE]: Found language provider lowcodefml, version 51 +[30Dec2024 18:26:13.392] [main/DEBUG] [net.minecraftforge.fml.loading.LanguageLoadingProvider/CORE]: Found language provider javafml, version 51.0.33 +[30Dec2024 18:26:13.395] [main/DEBUG] [net.minecraftforge.fml.loading.ModSorter/]: Configured system mods: [minecraft, forge] +[30Dec2024 18:26:13.395] [main/DEBUG] [net.minecraftforge.fml.loading.ModSorter/]: Found system mod: minecraft +[30Dec2024 18:26:13.395] [main/DEBUG] [net.minecraftforge.fml.loading.ModSorter/]: Found system mod: forge +[30Dec2024 18:26:13.405] [main/DEBUG] [net.minecraftforge.fml.loading.ModSorter/LOADING]: Found 2 mod requirements (2 mandatory, 0 optional) +[30Dec2024 18:26:13.406] [main/DEBUG] [net.minecraftforge.fml.loading.ModSorter/LOADING]: Found 0 mod requirements missing (0 mandatory, 0 optional) +[30Dec2024 18:26:13.818] [main/DEBUG] [net.minecraftforge.fml.loading.MCPNamingService/CORE]: Loaded 39712 method mappings from methods.csv +[30Dec2024 18:26:13.852] [main/DEBUG] [net.minecraftforge.fml.loading.MCPNamingService/CORE]: Loaded 35630 field mappings from fields.csv +[30Dec2024 18:26:13.889] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Transformation services loading transformers +[30Dec2024 18:26:13.890] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initializing transformers for transformation service mixin +[30Dec2024 18:26:13.891] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initialized transformers for transformation service mixin +[30Dec2024 18:26:13.891] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initializing transformers for transformation service fml +[30Dec2024 18:26:13.891] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Loading coremod transformers +[30Dec2024 18:26:13.892] [main/DEBUG] [net.minecraftforge.coremod.CoreModEngine/COREMOD]: Loading CoreMod from /coremods/field_to_method.js +[30Dec2024 18:26:14.198] [main/DEBUG] [net.minecraftforge.coremod.CoreModEngine/COREMOD]: CoreMod loaded successfully +[30Dec2024 18:26:14.198] [main/DEBUG] [net.minecraftforge.coremod.CoreModEngine/COREMOD]: Loading CoreMod from /coremods/method_redirector.js +[30Dec2024 18:26:14.366] [main/DEBUG] [net.minecraftforge.coremod.CoreModEngine/COREMOD]: CoreMod loaded successfully +[30Dec2024 18:26:14.379] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@68565bc7 to Target : CLASS {Lnet/minecraft/world/level/biome/Biome;} {} {V} +[30Dec2024 18:26:14.380] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@e11ecfa to Target : CLASS {Lnet/minecraft/world/effect/MobEffectInstance;} {} {V} +[30Dec2024 18:26:14.381] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@485e13d7 to Target : CLASS {Lnet/minecraft/world/level/block/LiquidBlock;} {} {V} +[30Dec2024 18:26:14.381] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@43984213 to Target : CLASS {Lnet/minecraft/world/item/BucketItem;} {} {V} +[30Dec2024 18:26:14.382] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@2ff7a73 to Target : CLASS {Lnet/minecraft/world/level/block/FlowerPotBlock;} {} {V} +[30Dec2024 18:26:14.382] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/monster/ZombieVillager;} {} {V} +[30Dec2024 18:26:14.383] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/npc/CatSpawner;} {} {V} +[30Dec2024 18:26:14.383] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/raid/Raid;} {} {V} +[30Dec2024 18:26:14.383] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/level/NaturalSpawner;} {} {V} +[30Dec2024 18:26:14.383] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/animal/horse/SkeletonTrapGoal;} {} {V} +[30Dec2024 18:26:14.384] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/monster/Evoker$EvokerSummonSpellGoal;} {} {V} +[30Dec2024 18:26:14.384] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/animal/frog/Tadpole;} {} {V} +[30Dec2024 18:26:14.384] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/server/commands/RaidCommand;} {} {V} +[30Dec2024 18:26:14.385] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/monster/Spider;} {} {V} +[30Dec2024 18:26:14.387] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/level/block/entity/trialspawner/TrialSpawner;} {} {V} +[30Dec2024 18:26:14.387] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/level/levelgen/PatrolSpawner;} {} {V} +[30Dec2024 18:26:14.387] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/server/commands/SummonCommand;} {} {V} +[30Dec2024 18:26:14.387] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate;} {} {V} +[30Dec2024 18:26:14.387] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/monster/Zombie;} {} {V} +[30Dec2024 18:26:14.388] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/level/levelgen/structure/structures/SwampHutPiece;} {} {V} +[30Dec2024 18:26:14.388] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/monster/Strider;} {} {V} +[30Dec2024 18:26:14.388] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/level/levelgen/structure/structures/WoodlandMansionPieces$WoodlandMansionPiece;} {} {V} +[30Dec2024 18:26:14.389] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/EntityType;} {} {V} +[30Dec2024 18:26:14.389] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/level/levelgen/PhantomSpawner;} {} {V} +[30Dec2024 18:26:14.389] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/ai/village/VillageSiege;} {} {V} +[30Dec2024 18:26:14.390] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/entity/npc/Villager;} {} {V} +[30Dec2024 18:26:14.390] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/level/levelgen/structure/structures/OceanMonumentPieces$OceanMonumentPiece;} {} {V} +[30Dec2024 18:26:14.391] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@38830ea to Target : CLASS {Lnet/minecraft/world/level/levelgen/structure/structures/OceanRuinPieces$OceanRuinPiece;} {} {V} +[30Dec2024 18:26:14.391] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initialized transformers for transformation service fml +[30Dec2024 18:26:14.573] [main/DEBUG] [mixin/]: Processing prepare() for PlatformAgent[MixinPlatformAgentDefault:ModLauncher Root Container(ModLauncher:4f56a0a2)] +[30Dec2024 18:26:14.575] [main/DEBUG] [mixin/]: Processing launch tasks for PlatformAgent[MixinPlatformAgentDefault:ModLauncher Root Container(ModLauncher:4f56a0a2)] +[30Dec2024 18:26:14.576] [main/DEBUG] [mixin/]: Adding mixin platform agents for container SecureJarResource(mixin.synthetic) +[30Dec2024 18:26:14.576] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentMinecraftForge for SecureJarResource(mixin.synthetic) +[30Dec2024 18:26:14.577] [main/DEBUG] [mixin/]: MixinPlatformAgentMinecraftForge rejected container SecureJarResource(mixin.synthetic) +[30Dec2024 18:26:14.577] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentDefault for SecureJarResource(mixin.synthetic) +[30Dec2024 18:26:14.577] [main/DEBUG] [mixin/]: MixinPlatformAgentDefault accepted container SecureJarResource(mixin.synthetic) +[30Dec2024 18:26:14.577] [main/DEBUG] [mixin/]: Processing prepare() for PlatformAgent[MixinPlatformAgentDefault:SecureJarResource(mixin.synthetic)] +[30Dec2024 18:26:14.578] [main/DEBUG] [mixin/]: Adding mixin platform agents for container SecureJarResource(minecraft) +[30Dec2024 18:26:14.578] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentMinecraftForge for SecureJarResource(minecraft) +[30Dec2024 18:26:14.578] [main/DEBUG] [mixin/]: MixinPlatformAgentMinecraftForge rejected container SecureJarResource(minecraft) +[30Dec2024 18:26:14.578] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentDefault for SecureJarResource(minecraft) +[30Dec2024 18:26:14.584] [main/DEBUG] [mixin/]: MixinPlatformAgentDefault accepted container SecureJarResource(minecraft) +[30Dec2024 18:26:14.587] [main/DEBUG] [mixin/]: Processing prepare() for PlatformAgent[MixinPlatformAgentDefault:SecureJarResource(minecraft)] +[30Dec2024 18:26:14.588] [main/DEBUG] [mixin/]: Adding mixin platform agents for container SecureJarResource(forge) +[30Dec2024 18:26:14.589] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentMinecraftForge for SecureJarResource(forge) +[30Dec2024 18:26:14.589] [main/DEBUG] [mixin/]: MixinPlatformAgentMinecraftForge rejected container SecureJarResource(forge) +[30Dec2024 18:26:14.589] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentDefault for SecureJarResource(forge) +[30Dec2024 18:26:14.590] [main/DEBUG] [mixin/]: MixinPlatformAgentDefault accepted container SecureJarResource(forge) +[30Dec2024 18:26:14.590] [main/DEBUG] [mixin/]: Processing prepare() for PlatformAgent[MixinPlatformAgentDefault:SecureJarResource(forge)] +[30Dec2024 18:26:14.590] [main/DEBUG] [mixin/]: Adding mixin platform agents for container SecureJarResource(nuggetmod) +[30Dec2024 18:26:14.591] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentMinecraftForge for SecureJarResource(nuggetmod) +[30Dec2024 18:26:14.591] [main/DEBUG] [mixin/]: MixinPlatformAgentMinecraftForge rejected container SecureJarResource(nuggetmod) +[30Dec2024 18:26:14.591] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentDefault for SecureJarResource(nuggetmod) +[30Dec2024 18:26:14.591] [main/DEBUG] [mixin/]: MixinPlatformAgentDefault accepted container SecureJarResource(nuggetmod) +[30Dec2024 18:26:14.591] [main/DEBUG] [mixin/]: Processing prepare() for PlatformAgent[MixinPlatformAgentDefault:SecureJarResource(nuggetmod)] +[30Dec2024 18:26:14.592] [main/DEBUG] [mixin/]: inject() running with 5 agents +[30Dec2024 18:26:14.594] [main/DEBUG] [mixin/]: Processing inject() for PlatformAgent[MixinPlatformAgentDefault:ModLauncher Root Container(ModLauncher:4f56a0a2)] +[30Dec2024 18:26:14.597] [main/DEBUG] [mixin/]: Processing inject() for PlatformAgent[MixinPlatformAgentDefault:SecureJarResource(mixin.synthetic)] +[30Dec2024 18:26:14.597] [main/DEBUG] [mixin/]: Processing inject() for PlatformAgent[MixinPlatformAgentDefault:SecureJarResource(minecraft)] +[30Dec2024 18:26:14.597] [main/DEBUG] [mixin/]: Processing inject() for PlatformAgent[MixinPlatformAgentDefault:SecureJarResource(forge)] +[30Dec2024 18:26:14.598] [main/DEBUG] [mixin/]: Processing inject() for PlatformAgent[MixinPlatformAgentDefault:SecureJarResource(nuggetmod)] +[30Dec2024 18:26:14.598] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'forge_userdev_data' with arguments [--gameDir, ., --assetsDir, C:\Users\diann\.gradle\caches\forge_gradle\assets, --assetIndex, 17, --mod, nuggetmod, --all, --output, D:\Coding Projects\Java\nuggetmod_code\src\generated\resources, --existing, D:\Coding Projects\Java\nuggetmod_code\src\main\resources] +[30Dec2024 18:26:14.639] [main/DEBUG] [mixin/]: Preparing mixins for MixinEnvironment[DEFAULT] +[30Dec2024 18:26:14.843] [main/DEBUG] [io.netty.util.internal.logging.InternalLoggerFactory/]: Using SLF4J as the default logging framework +[30Dec2024 18:26:14.847] [main/DEBUG] [io.netty.util.ResourceLeakDetector/]: -Dio.netty.leakDetection.level: simple +[30Dec2024 18:26:14.848] [main/DEBUG] [io.netty.util.ResourceLeakDetector/]: -Dio.netty.leakDetection.targetRecords: 4 +[30Dec2024 18:26:15.950] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/entity/EntityType +[30Dec2024 18:26:17.288] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/level/block/LiquidBlock +[30Dec2024 18:26:17.516] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/level/block/FlowerPotBlock +[30Dec2024 18:26:18.472] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/effect/MobEffectInstance +[30Dec2024 18:26:18.899] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/level/biome/Biome +[30Dec2024 18:26:19.457] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/entity/animal/frog/Tadpole +[30Dec2024 18:26:19.540] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/item/BucketItem +[30Dec2024 18:26:20.973] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/entity/monster/Spider +[30Dec2024 18:26:21.023] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/entity/monster/Zombie +[30Dec2024 18:26:21.084] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/entity/monster/ZombieVillager +[30Dec2024 18:26:21.151] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/entity/monster/Evoker$EvokerSummonSpellGoal +[30Dec2024 18:26:21.322] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/entity/animal/horse/SkeletonTrapGoal +[30Dec2024 18:26:21.342] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/entity/monster/Strider +[30Dec2024 18:26:21.377] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/entity/npc/Villager +[30Dec2024 18:26:22.513] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/level/levelgen/structure/structures/OceanRuinPieces$OceanRuinPiece +[30Dec2024 18:26:22.528] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/level/levelgen/structure/structures/SwampHutPiece +[30Dec2024 18:26:22.538] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/level/levelgen/structure/structures/OceanMonumentPieces$OceanMonumentPiece +[30Dec2024 18:26:22.561] [main/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/world/level/levelgen/structure/structures/WoodlandMansionPieces$WoodlandMansionPiece +[30Dec2024 18:26:22.970] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Creating vanilla freeze snapshot +[30Dec2024 18:26:22.973] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:block Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:22.988] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:fluid Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:22.989] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:item Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.003] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:mob_effect Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.004] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:sound_event Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.016] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:potion Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.016] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:entity_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.017] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:block_entity_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.018] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:particle_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.019] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:menu Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.020] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:painting_variant Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.020] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:recipe_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.021] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:recipe_serializer Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.022] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:attribute Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.022] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:stat_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.023] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:command_argument_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.023] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:villager_profession Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.024] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:point_of_interest_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.026] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:memory_module_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.027] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:sensor_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.028] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:schedule Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.028] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:activity Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.029] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/carver Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.029] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/feature Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.029] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:chunk_status Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.030] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/block_state_provider_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.030] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/foliage_placer_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.030] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/tree_decorator_type Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.030] [main/DEBUG] [net.minecraftforge.registries.ForgeRegistry/REGISTRIES]: Registry minecraft:worldgen/biome Sync: VANILLA -> ACTIVE +[30Dec2024 18:26:23.039] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Vanilla freeze snapshot created +[30Dec2024 18:26:23.041] [main/DEBUG] [net.minecraftforge.fml.ModWorkManager/LOADING]: Using 4 threads for parallel mod-loading +[30Dec2024 18:26:23.049] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider/LOADING]: Loading FMLModContainer from classloader TransformingClassLoader[TRANSFORMER]@1136612247 - got SecureModuleClassLoader[LAYER PLUGIN]@1227438915 +[30Dec2024 18:26:23.050] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for net.minecraftforge.common.ForgeMod +[30Dec2024 18:26:23.060] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider/LOADING]: Loading FMLModContainer from classloader TransformingClassLoader[TRANSFORMER]@1136612247 - got SecureModuleClassLoader[LAYER PLUGIN]@1227438915 +[30Dec2024 18:26:23.061] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for xyz.sillyangel.nugget.NuggetMod +[30Dec2024 18:26:23.141] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Forge Version package package net.minecraftforge.versions.forge, Forge, version 0.0 from TransformingClassLoader[TRANSFORMER]@1136612247 +[30Dec2024 18:26:23.143] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge version 51.0.33 +[30Dec2024 18:26:23.144] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge spec 0.0 +[30Dec2024 18:26:23.144] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge group net.minecraftforge +[30Dec2024 18:26:23.145] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.mcp.MCPVersion/CORE]: MCP Version package package net.minecraftforge.versions.mcp, Minecraft, version 1.21 from TransformingClassLoader[TRANSFORMER]@1136612247 +[30Dec2024 18:26:23.146] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.mcp.MCPVersion/CORE]: Found MC version information 1.21 +[30Dec2024 18:26:23.146] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.mcp.MCPVersion/CORE]: Found MCP version information 20240613.102039 +[30Dec2024 18:26:23.146] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 51.0.33, for MC 1.21 with MCP 20240613.102039 +[30Dec2024 18:26:23.147] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v51.0.33 Initialized +[30Dec2024 18:26:23.193] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Opening jdk.naming.dns/com.sun.jndi.dns to java.naming +[30Dec2024 18:26:23.227] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: -Dio.netty.noUnsafe: false +[30Dec2024 18:26:23.228] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: Java version: 21 +[30Dec2024 18:26:23.238] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: sun.misc.Unsafe.theUnsafe: available +[30Dec2024 18:26:23.239] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: sun.misc.Unsafe.copyMemory: available +[30Dec2024 18:26:23.240] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: sun.misc.Unsafe.storeFence: available +[30Dec2024 18:26:23.240] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: java.nio.Buffer.address: available +[30Dec2024 18:26:23.244] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file nuggetmod-common.toml for nuggetmod tracking +[30Dec2024 18:26:23.245] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for nuggetmod +[30Dec2024 18:26:23.250] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing xyz.sillyangel.nugget.Config to MOD +[30Dec2024 18:26:23.261] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing xyz.sillyangel.nugget.datagen.DataGenerators to MOD +[30Dec2024 18:26:23.280] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing xyz.sillyangel.nugget.NuggetMod$ClientModEvents to MOD +[30Dec2024 18:26:23.240] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: direct buffer constructor: unavailable +java.lang.UnsupportedOperationException: Reflective setAccessible(true) disabled + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.ReflectionUtil.trySetAccessible(ReflectionUtil.java:31) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent0$5.run(PlatformDependent0.java:289) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) ~[?:?] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent0.(PlatformDependent0.java:282) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:333) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent.(PlatformDependent.java:88) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.ConstantPool.(ConstantPool.java:34) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.AttributeKey$1.(AttributeKey.java:27) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.AttributeKey.(AttributeKey.java:27) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at TRANSFORMER/forge@51.0.33/net.minecraftforge.network.NetworkInitialization.(NetworkInitialization.java:27) ~[forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21.jar:?] + at TRANSFORMER/forge@51.0.33/net.minecraftforge.common.ForgeMod.(ForgeMod.java:385) ~[forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21.jar:?] + at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?] + at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?] + at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?] + at LAYER PLUGIN/net.minecraftforge.javafmlmod@1.21-51.0.33/net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:66) ~[javafmllanguage-1.21-51.0.33.jar!/:51.0.33] + at LAYER PLUGIN/net.minecraftforge.fmlcore@1.21-51.0.33/net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$5(ModContainer.java:125) ~[fmlcore-1.21-51.0.33.jar!/:1.0] + at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) [?:?] + at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) [?:?] + at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) [?:?] + at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) [?:?] + at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) [?:?] + at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) [?:?] + at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) [?:?] +[30Dec2024 18:26:23.329] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: java.nio.Bits.unaligned: available, true +[30Dec2024 18:26:23.330] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable +java.lang.IllegalAccessException: class io.netty.util.internal.PlatformDependent0$7 (in module io.netty.common) cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to module io.netty.common + at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:394) ~[?:?] + at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:714) ~[?:?] + at java.base/java.lang.reflect.Method.invoke(Method.java:571) ~[?:?] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent0$7.run(PlatformDependent0.java:411) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) ~[?:?] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent0.(PlatformDependent0.java:402) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:333) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.internal.PlatformDependent.(PlatformDependent.java:88) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.ConstantPool.(ConstantPool.java:34) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.AttributeKey$1.(AttributeKey.java:27) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at SECURE-BOOTSTRAP/io.netty.common@4.1.97.Final/io.netty.util.AttributeKey.(AttributeKey.java:27) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] + at TRANSFORMER/forge@51.0.33/net.minecraftforge.network.NetworkInitialization.(NetworkInitialization.java:27) ~[forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21.jar:?] + at TRANSFORMER/forge@51.0.33/net.minecraftforge.common.ForgeMod.(ForgeMod.java:385) ~[forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21.jar:?] + at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?] + at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?] + at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?] + at LAYER PLUGIN/net.minecraftforge.javafmlmod@1.21-51.0.33/net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:66) ~[javafmllanguage-1.21-51.0.33.jar!/:51.0.33] + at LAYER PLUGIN/net.minecraftforge.fmlcore@1.21-51.0.33/net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$5(ModContainer.java:125) ~[fmlcore-1.21-51.0.33.jar!/:1.0] + at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) [?:?] + at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) [?:?] + at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) [?:?] + at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) [?:?] + at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) [?:?] + at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) [?:?] + at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) [?:?] +[30Dec2024 18:26:23.354] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: java.nio.DirectByteBuffer.(long, {int,long}): unavailable +[30Dec2024 18:26:23.354] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: sun.misc.Unsafe: available +[30Dec2024 18:26:23.355] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: maxDirectMemory: 2051014656 bytes (maybe) +[30Dec2024 18:26:23.356] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: -Dio.netty.tmpdir: C:\Users\diann\AppData\Local\Temp (java.io.tmpdir) +[30Dec2024 18:26:23.358] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: -Dio.netty.bitMode: 64 (sun.arch.data.model) +[30Dec2024 18:26:23.358] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: Platform: Windows +[30Dec2024 18:26:23.359] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: -Dio.netty.maxDirectMemory: -1 bytes +[30Dec2024 18:26:23.359] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: -Dio.netty.uninitializedArrayAllocationThreshold: -1 +[30Dec2024 18:26:23.361] [modloading-worker-0/DEBUG] [io.netty.util.internal.CleanerJava9/]: java.nio.ByteBuffer.cleaner(): available +[30Dec2024 18:26:23.361] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent/]: -Dio.netty.noPreferDirect: false +[30Dec2024 18:26:23.403] [modloading-worker-0/DEBUG] [net.minecraftforge.network.NetworkInitialization/FORGE_NETWORK]: Registering Network forge:login v0 +[30Dec2024 18:26:23.403] [modloading-worker-0/DEBUG] [net.minecraftforge.network.NetworkInitialization/FORGE_NETWORK]: Registering Network forge:handshake v0 +[30Dec2024 18:26:23.404] [modloading-worker-0/DEBUG] [net.minecraftforge.network.NetworkInitialization/FORGE_NETWORK]: Registering Network forge:handshake v0 +[30Dec2024 18:26:23.404] [modloading-worker-0/DEBUG] [net.minecraftforge.network.NetworkInitialization/FORGE_NETWORK]: Registering Network forge:channel_registration v0 +[30Dec2024 18:26:23.413] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file forge-client.toml for forge tracking +[30Dec2024 18:26:23.414] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file forge-server.toml for forge tracking +[30Dec2024 18:26:23.414] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.ModLoadingContext/]: Attempted to register an empty config for type COMMON on mod forge +[30Dec2024 18:26:23.435] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for forge +[30Dec2024 18:26:23.437] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.common.ForgeSpawnEggItem$CommonHandler to MOD +[30Dec2024 18:26:23.438] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.common.ForgeSpawnEggItem$ColorRegisterHandler to MOD +[30Dec2024 18:26:23.444] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.client.model.data.ModelDataManager to FORGE +[30Dec2024 18:26:23.446] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.client.ForgeHooksClient$ClientEvents to MOD +[30Dec2024 18:26:23.454] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.client.ClientForgeMod to MOD +[30Dec2024 18:26:23.471] [main/DEBUG] [net.minecraftforge.registries.ObjectHolderRegistry/REGISTRIES]: Processing ObjectHolder annotations +[30Dec2024 18:26:23.749] [main/DEBUG] [net.minecraftforge.registries.ObjectHolderRegistry/REGISTRIES]: Found 4041 ObjectHolder annotations +[30Dec2024 18:26:23.751] [main/DEBUG] [net.minecraftforge.common.capabilities.CapabilityManager/CAPABILITIES]: Attempting to automatically register: Lnet/minecraftforge/energy/IEnergyStorage; +[30Dec2024 18:26:23.788] [main/DEBUG] [net.minecraftforge.common.capabilities.CapabilityManager/CAPABILITIES]: Attempting to automatically register: Lnet/minecraftforge/fluids/capability/IFluidHandler; +[30Dec2024 18:26:23.788] [main/DEBUG] [net.minecraftforge.common.capabilities.CapabilityManager/CAPABILITIES]: Attempting to automatically register: Lnet/minecraftforge/fluids/capability/IFluidHandlerItem; +[30Dec2024 18:26:23.788] [main/DEBUG] [net.minecraftforge.common.capabilities.CapabilityManager/CAPABILITIES]: Attempting to automatically register: Lnet/minecraftforge/items/IItemHandler; +[30Dec2024 18:26:23.789] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Unfreezing vanilla registries +[30Dec2024 18:26:23.793] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:sound_event +[30Dec2024 18:26:23.848] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:sound_event +[30Dec2024 18:26:23.849] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:fluid +[30Dec2024 18:26:23.850] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:fluid +[30Dec2024 18:26:23.851] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:block +[30Dec2024 18:26:23.875] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:block +[30Dec2024 18:26:23.877] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:attribute +[30Dec2024 18:26:23.878] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:attribute +[30Dec2024 18:26:23.879] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:mob_effect +[30Dec2024 18:26:23.879] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:mob_effect +[30Dec2024 18:26:23.879] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:particle_type +[30Dec2024 18:26:23.880] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:particle_type +[30Dec2024 18:26:23.881] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:data_component_type +[30Dec2024 18:26:23.881] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:data_component_type +[30Dec2024 18:26:23.881] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_effect_component_type +[30Dec2024 18:26:23.882] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_effect_component_type +[30Dec2024 18:26:23.884] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:item +[30Dec2024 18:26:23.923] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:item +[30Dec2024 18:26:23.925] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:entity_type +[30Dec2024 18:26:23.925] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:entity_type +[30Dec2024 18:26:23.925] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:armor_material +[30Dec2024 18:26:23.926] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:armor_material +[30Dec2024 18:26:23.926] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:game_event +[30Dec2024 18:26:23.927] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:game_event +[30Dec2024 18:26:23.927] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:potion +[30Dec2024 18:26:23.927] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:potion +[30Dec2024 18:26:23.927] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:block_entity_type +[30Dec2024 18:26:23.927] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:block_entity_type +[30Dec2024 18:26:23.927] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:stat_type +[30Dec2024 18:26:23.927] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:stat_type +[30Dec2024 18:26:23.927] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:custom_stat +[30Dec2024 18:26:23.928] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:custom_stat +[30Dec2024 18:26:23.928] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:chunk_status +[30Dec2024 18:26:23.928] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:chunk_status +[30Dec2024 18:26:23.928] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:rule_test +[30Dec2024 18:26:23.928] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:rule_test +[30Dec2024 18:26:23.928] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:rule_block_entity_modifier +[30Dec2024 18:26:23.928] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:rule_block_entity_modifier +[30Dec2024 18:26:23.929] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:pos_rule_test +[30Dec2024 18:26:23.929] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:pos_rule_test +[30Dec2024 18:26:23.929] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:menu +[30Dec2024 18:26:23.929] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:menu +[30Dec2024 18:26:23.929] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:recipe_type +[30Dec2024 18:26:23.929] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:recipe_type +[30Dec2024 18:26:23.931] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:recipe_serializer +[30Dec2024 18:26:23.932] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:recipe_serializer +[30Dec2024 18:26:23.932] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:position_source_type +[30Dec2024 18:26:23.932] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:position_source_type +[30Dec2024 18:26:23.934] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:command_argument_type +[30Dec2024 18:26:23.935] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:command_argument_type +[30Dec2024 18:26:23.935] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:villager_type +[30Dec2024 18:26:23.935] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:villager_type +[30Dec2024 18:26:23.935] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:villager_profession +[30Dec2024 18:26:23.936] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:villager_profession +[30Dec2024 18:26:23.936] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:point_of_interest_type +[30Dec2024 18:26:23.937] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:point_of_interest_type +[30Dec2024 18:26:23.937] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:memory_module_type +[30Dec2024 18:26:23.937] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:memory_module_type +[30Dec2024 18:26:23.937] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:sensor_type +[30Dec2024 18:26:23.937] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:sensor_type +[30Dec2024 18:26:23.938] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:schedule +[30Dec2024 18:26:23.938] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:schedule +[30Dec2024 18:26:23.938] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:activity +[30Dec2024 18:26:23.938] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:activity +[30Dec2024 18:26:23.940] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_number_provider_type +[30Dec2024 18:26:23.941] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_number_provider_type +[30Dec2024 18:26:23.941] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_score_provider_type +[30Dec2024 18:26:23.941] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_score_provider_type +[30Dec2024 18:26:23.942] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_function_type +[30Dec2024 18:26:23.942] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_function_type +[30Dec2024 18:26:23.942] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:map_decoration_type +[30Dec2024 18:26:23.943] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:map_decoration_type +[30Dec2024 18:26:23.943] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_nbt_provider_type +[30Dec2024 18:26:23.944] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_nbt_provider_type +[30Dec2024 18:26:23.944] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_pool_entry_type +[30Dec2024 18:26:23.946] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_pool_entry_type +[30Dec2024 18:26:23.950] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:loot_condition_type +[30Dec2024 18:26:23.951] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:loot_condition_type +[30Dec2024 18:26:23.951] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:float_provider_type +[30Dec2024 18:26:23.951] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:float_provider_type +[30Dec2024 18:26:23.953] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:int_provider_type +[30Dec2024 18:26:23.955] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:int_provider_type +[30Dec2024 18:26:23.955] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:height_provider_type +[30Dec2024 18:26:23.956] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:height_provider_type +[30Dec2024 18:26:23.956] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:block_predicate_type +[30Dec2024 18:26:23.956] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:block_predicate_type +[30Dec2024 18:26:23.956] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/carver +[30Dec2024 18:26:23.956] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/carver +[30Dec2024 18:26:23.956] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/feature +[30Dec2024 18:26:23.956] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/feature +[30Dec2024 18:26:23.957] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/structure_processor +[30Dec2024 18:26:23.957] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/structure_processor +[30Dec2024 18:26:23.957] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/structure_placement +[30Dec2024 18:26:23.957] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/structure_placement +[30Dec2024 18:26:23.957] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/structure_piece +[30Dec2024 18:26:23.957] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/structure_piece +[30Dec2024 18:26:23.957] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/structure_type +[30Dec2024 18:26:23.958] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/structure_type +[30Dec2024 18:26:23.958] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/placement_modifier_type +[30Dec2024 18:26:23.958] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/placement_modifier_type +[30Dec2024 18:26:23.958] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/block_state_provider_type +[30Dec2024 18:26:23.958] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/block_state_provider_type +[30Dec2024 18:26:23.958] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/foliage_placer_type +[30Dec2024 18:26:23.958] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/foliage_placer_type +[30Dec2024 18:26:23.959] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/trunk_placer_type +[30Dec2024 18:26:23.959] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/trunk_placer_type +[30Dec2024 18:26:23.959] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/root_placer_type +[30Dec2024 18:26:23.959] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/root_placer_type +[30Dec2024 18:26:23.959] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/tree_decorator_type +[30Dec2024 18:26:23.959] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/tree_decorator_type +[30Dec2024 18:26:23.959] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/feature_size_type +[30Dec2024 18:26:23.960] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/feature_size_type +[30Dec2024 18:26:23.960] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/biome_source +[30Dec2024 18:26:23.960] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/biome_source +[30Dec2024 18:26:23.960] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/chunk_generator +[30Dec2024 18:26:23.960] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/chunk_generator +[30Dec2024 18:26:23.960] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/material_condition +[30Dec2024 18:26:23.961] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/material_condition +[30Dec2024 18:26:23.961] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/material_rule +[30Dec2024 18:26:23.961] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/material_rule +[30Dec2024 18:26:23.961] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/density_function_type +[30Dec2024 18:26:23.961] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/density_function_type +[30Dec2024 18:26:23.961] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:block_type +[30Dec2024 18:26:23.961] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:block_type +[30Dec2024 18:26:23.961] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/structure_pool_element +[30Dec2024 18:26:23.961] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/structure_pool_element +[30Dec2024 18:26:23.961] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/pool_alias_binding +[30Dec2024 18:26:23.963] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/pool_alias_binding +[30Dec2024 18:26:23.963] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:cat_variant +[30Dec2024 18:26:23.963] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:cat_variant +[30Dec2024 18:26:23.963] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:frog_variant +[30Dec2024 18:26:23.963] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:frog_variant +[30Dec2024 18:26:23.963] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:instrument +[30Dec2024 18:26:23.963] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:instrument +[30Dec2024 18:26:23.963] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:decorated_pot_pattern +[30Dec2024 18:26:23.963] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:decorated_pot_pattern +[30Dec2024 18:26:23.964] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:creative_mode_tab +[30Dec2024 18:26:23.964] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:creative_mode_tab +[30Dec2024 18:26:23.964] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:trigger_type +[30Dec2024 18:26:23.965] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:trigger_type +[30Dec2024 18:26:23.965] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:number_format_type +[30Dec2024 18:26:23.965] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:number_format_type +[30Dec2024 18:26:23.965] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:entity_sub_predicate_type +[30Dec2024 18:26:23.965] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:entity_sub_predicate_type +[30Dec2024 18:26:23.965] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:item_sub_predicate_type +[30Dec2024 18:26:23.966] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:item_sub_predicate_type +[30Dec2024 18:26:23.966] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_level_based_value_type +[30Dec2024 18:26:23.966] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_level_based_value_type +[30Dec2024 18:26:23.966] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_entity_effect_type +[30Dec2024 18:26:23.966] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_entity_effect_type +[30Dec2024 18:26:23.966] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_location_based_effect_type +[30Dec2024 18:26:23.966] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_location_based_effect_type +[30Dec2024 18:26:23.966] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_value_effect_type +[30Dec2024 18:26:23.967] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_value_effect_type +[30Dec2024 18:26:23.967] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:enchantment_provider_type +[30Dec2024 18:26:23.967] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:enchantment_provider_type +[30Dec2024 18:26:23.974] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:biome_modifier_serializers +[30Dec2024 18:26:23.975] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:biome_modifier_serializers +[30Dec2024 18:26:23.980] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:condition_codecs +[30Dec2024 18:26:23.980] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:condition_codecs +[30Dec2024 18:26:23.980] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:display_contexts +[30Dec2024 18:26:23.981] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:display_contexts +[30Dec2024 18:26:23.981] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:entity_data_serializers +[30Dec2024 18:26:23.981] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:entity_data_serializers +[30Dec2024 18:26:23.984] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:fluid_type +[30Dec2024 18:26:23.985] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:fluid_type +[30Dec2024 18:26:23.986] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:global_loot_modifier_serializers +[30Dec2024 18:26:23.986] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:global_loot_modifier_serializers +[30Dec2024 18:26:23.990] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:holder_set_type +[30Dec2024 18:26:23.990] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:holder_set_type +[30Dec2024 18:26:23.998] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:ingredient_serializers +[30Dec2024 18:26:23.999] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:ingredient_serializers +[30Dec2024 18:26:24.000] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: forge:structure_modifier_serializers +[30Dec2024 18:26:24.000] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: forge:structure_modifier_serializers +[30Dec2024 18:26:24.000] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:painting_variant +[30Dec2024 18:26:24.001] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:painting_variant +[30Dec2024 18:26:24.002] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Applying holder lookups: minecraft:worldgen/biome +[30Dec2024 18:26:24.002] [main/DEBUG] [net.minecraftforge.registries.GameData/REGISTRIES]: Holder lookups applied: minecraft:worldgen/biome +[30Dec2024 18:26:24.052] [main/INFO] [net.minecraftforge.data.loading.DatagenModLoader/]: Initializing Data Gatherer for mods [nuggetmod] +[30Dec2024 18:26:24.314] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/C:/Users/diann/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.21-51.0.33_mapped_parchment_2024.07.28-1.21/forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21.jar%230!/assets/.mcassetsroot' uses unexpected schema +[30Dec2024 18:26:24.342] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/C:/Users/diann/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.21-51.0.33_mapped_parchment_2024.07.28-1.21/forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21.jar%230!/data/.mcassetsroot' uses unexpected schema +[30Dec2024 18:26:24.633] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Loot Tables +[30Dec2024 18:26:25.219] [main/INFO] [net.minecraft.data.DataGenerator/]: Loot Tables finished after 585 ms +[30Dec2024 18:26:25.219] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Recipes +[30Dec2024 18:26:25.274] [main/INFO] [net.minecraft.data.DataGenerator/]: Recipes finished after 53 ms +[30Dec2024 18:26:25.274] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Tags for minecraft:block mod id nuggetmod +[30Dec2024 18:26:25.288] [main/INFO] [net.minecraft.data.DataGenerator/]: Tags for minecraft:block mod id nuggetmod finished after 13 ms +[30Dec2024 18:26:25.288] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Tags for minecraft:item mod id nuggetmod +[30Dec2024 18:26:25.292] [main/INFO] [net.minecraft.data.DataGenerator/]: Tags for minecraft:item mod id nuggetmod finished after 3 ms +[30Dec2024 18:26:25.292] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Item Models: nuggetmod +[30Dec2024 18:26:25.301] [main/INFO] [net.minecraft.data.DataGenerator/]: Item Models: nuggetmod finished after 8 ms +[30Dec2024 18:26:25.302] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Block States: nuggetmod +[30Dec2024 18:26:25.478] [main/INFO] [net.minecraft.data.DataGenerator/]: Block States: nuggetmod finished after 176 ms +[30Dec2024 18:26:25.479] [main/INFO] [net.minecraft.data.DataGenerator/]: All providers took: 846 ms +[30Dec2024 18:26:25.489] [main/INFO] [net.minecraft.data.HashCache/]: Caching: total files: 58, old count: 58, new count: 59, removed stale: 0, written: 0 diff --git a/run-data/logs/latest.log b/run-data/logs/latest.log index 4575cb2..290e74e 100644 --- a/run-data/logs/latest.log +++ b/run-data/logs/latest.log @@ -1,27 +1,27 @@ -[30Dec2024 15:04:53.923] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forge_userdev_data, --assetIndex, 17, --assetsDir, D:\.gradle\caches\forge_gradle\assets, --gameDir, ., --mod, nuggetmod, --all, --output, D:\Coding Projects\Java\forge-1.21-mod\src\generated\resources, --existing, D:\Coding Projects\Java\forge-1.21-mod\src\main\resources] -[30Dec2024 15:04:53.927] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: JVM identified as Eclipse Adoptium OpenJDK 64-Bit Server VM 21.0.5+11-LTS -[30Dec2024 15:04:53.929] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.2.1 starting: java version 21.0.5 by Eclipse Adoptium; OS Windows 11 arch amd64 version 10.0 -[30Dec2024 15:04:54.060] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: ImmediateWindowProvider not loading because launch target is forge_userdev_data -[30Dec2024 15:04:54.235] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.7 Source=jar:file:///D:/.gradle/caches/modules-2/files-2.1/org.spongepowered/mixin/0.8.7/8ab114ac385e6dbdad5efafe28aba4df8120915f/mixin-0.8.7.jar!/ Service=ModLauncher Env=UNKNOWN -[30Dec2024 15:04:55.680] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: No dependencies to load found. Skipping! -[30Dec2024 15:04:57.181] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'forge_userdev_data' with arguments [--gameDir, ., --assetsDir, D:\.gradle\caches\forge_gradle\assets, --assetIndex, 17, --mod, nuggetmod, --all, --output, D:\Coding Projects\Java\forge-1.21-mod\src\generated\resources, --existing, D:\Coding Projects\Java\forge-1.21-mod\src\main\resources] -[30Dec2024 15:05:06.046] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 51.0.33, for MC 1.21 with MCP 20240613.102039 -[30Dec2024 15:05:06.046] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v51.0.33 Initialized -[30Dec2024 15:05:06.090] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Opening jdk.naming.dns/com.sun.jndi.dns to java.naming -[30Dec2024 15:05:07.454] [main/INFO] [net.minecraftforge.data.loading.DatagenModLoader/]: Initializing Data Gatherer for mods [nuggetmod] -[30Dec2024 15:05:07.550] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/D:/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.21-51.0.33_mapped_parchment_2024.07.28-1.21/forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21-recomp.jar%230!/assets/.mcassetsroot' uses unexpected schema -[30Dec2024 15:05:07.550] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/D:/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.21-51.0.33_mapped_parchment_2024.07.28-1.21/forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21-recomp.jar%230!/data/.mcassetsroot' uses unexpected schema -[30Dec2024 15:05:07.733] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Loot Tables -[30Dec2024 15:05:08.022] [main/INFO] [net.minecraft.data.DataGenerator/]: Loot Tables finished after 275 ms -[30Dec2024 15:05:08.022] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Recipes -[30Dec2024 15:05:08.062] [main/INFO] [net.minecraft.data.DataGenerator/]: Recipes finished after 43 ms -[30Dec2024 15:05:08.062] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Tags for minecraft:block mod id nuggetmod -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Tags for minecraft:block mod id nuggetmod finished after 7 ms -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Tags for minecraft:item mod id nuggetmod -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Tags for minecraft:item mod id nuggetmod finished after 2 ms -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Item Models: nuggetmod -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Item Models: nuggetmod finished after 4 ms -[30Dec2024 15:05:08.078] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Block States: nuggetmod -[30Dec2024 15:05:08.206] [main/INFO] [net.minecraft.data.DataGenerator/]: Block States: nuggetmod finished after 121 ms -[30Dec2024 15:05:08.206] [main/INFO] [net.minecraft.data.DataGenerator/]: All providers took: 467 ms -[30Dec2024 15:05:08.227] [main/INFO] [net.minecraft.data.HashCache/]: Caching: total files: 42, old count: 38, new count: 43, removed stale: 0, written: 4 +[30Dec2024 18:26:11.395] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forge_userdev_data, --assetIndex, 17, --assetsDir, C:\Users\diann\.gradle\caches\forge_gradle\assets, --gameDir, ., --mod, nuggetmod, --all, --output, D:\Coding Projects\Java\nuggetmod_code\src\generated\resources, --existing, D:\Coding Projects\Java\nuggetmod_code\src\main\resources] +[30Dec2024 18:26:11.399] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: JVM identified as Eclipse Adoptium OpenJDK 64-Bit Server VM 21.0.5+11-LTS +[30Dec2024 18:26:11.401] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.2.1 starting: java version 21.0.5 by Eclipse Adoptium; OS Windows 11 arch amd64 version 10.0 +[30Dec2024 18:26:11.522] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: ImmediateWindowProvider not loading because launch target is forge_userdev_data +[30Dec2024 18:26:11.777] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.7 Source=jar:file:///C:/Users/diann/.gradle/caches/modules-2/files-2.1/org.spongepowered/mixin/0.8.7/8ab114ac385e6dbdad5efafe28aba4df8120915f/mixin-0.8.7.jar!/ Service=ModLauncher Env=UNKNOWN +[30Dec2024 18:26:13.326] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: No dependencies to load found. Skipping! +[30Dec2024 18:26:14.598] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'forge_userdev_data' with arguments [--gameDir, ., --assetsDir, C:\Users\diann\.gradle\caches\forge_gradle\assets, --assetIndex, 17, --mod, nuggetmod, --all, --output, D:\Coding Projects\Java\nuggetmod_code\src\generated\resources, --existing, D:\Coding Projects\Java\nuggetmod_code\src\main\resources] +[30Dec2024 18:26:23.146] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 51.0.33, for MC 1.21 with MCP 20240613.102039 +[30Dec2024 18:26:23.147] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v51.0.33 Initialized +[30Dec2024 18:26:23.193] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Opening jdk.naming.dns/com.sun.jndi.dns to java.naming +[30Dec2024 18:26:24.052] [main/INFO] [net.minecraftforge.data.loading.DatagenModLoader/]: Initializing Data Gatherer for mods [nuggetmod] +[30Dec2024 18:26:24.314] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/C:/Users/diann/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.21-51.0.33_mapped_parchment_2024.07.28-1.21/forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21.jar%230!/assets/.mcassetsroot' uses unexpected schema +[30Dec2024 18:26:24.342] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/C:/Users/diann/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.21-51.0.33_mapped_parchment_2024.07.28-1.21/forge-1.21-51.0.33_mapped_parchment_2024.07.28-1.21.jar%230!/data/.mcassetsroot' uses unexpected schema +[30Dec2024 18:26:24.633] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Loot Tables +[30Dec2024 18:26:25.219] [main/INFO] [net.minecraft.data.DataGenerator/]: Loot Tables finished after 585 ms +[30Dec2024 18:26:25.219] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Recipes +[30Dec2024 18:26:25.274] [main/INFO] [net.minecraft.data.DataGenerator/]: Recipes finished after 53 ms +[30Dec2024 18:26:25.274] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Tags for minecraft:block mod id nuggetmod +[30Dec2024 18:26:25.288] [main/INFO] [net.minecraft.data.DataGenerator/]: Tags for minecraft:block mod id nuggetmod finished after 13 ms +[30Dec2024 18:26:25.288] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Tags for minecraft:item mod id nuggetmod +[30Dec2024 18:26:25.292] [main/INFO] [net.minecraft.data.DataGenerator/]: Tags for minecraft:item mod id nuggetmod finished after 3 ms +[30Dec2024 18:26:25.292] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Item Models: nuggetmod +[30Dec2024 18:26:25.301] [main/INFO] [net.minecraft.data.DataGenerator/]: Item Models: nuggetmod finished after 8 ms +[30Dec2024 18:26:25.302] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Block States: nuggetmod +[30Dec2024 18:26:25.478] [main/INFO] [net.minecraft.data.DataGenerator/]: Block States: nuggetmod finished after 176 ms +[30Dec2024 18:26:25.479] [main/INFO] [net.minecraft.data.DataGenerator/]: All providers took: 846 ms +[30Dec2024 18:26:25.489] [main/INFO] [net.minecraft.data.HashCache/]: Caching: total files: 58, old count: 58, new count: 59, removed stale: 0, written: 0 diff --git a/settings.gradle b/settings.gradle index 001f972..137f6d2 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,14 +1,14 @@ -pluginManagement { - repositories { - gradlePluginPortal() - maven { - name = 'MinecraftForge' - url = 'https://maven.minecraftforge.net/' - } - maven { url = 'https://maven.parchmentmc.org' } - } -} - -plugins { - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' +pluginManagement { + repositories { + gradlePluginPortal() + maven { + name = 'MinecraftForge' + url = 'https://maven.minecraftforge.net/' + } + maven { url = 'https://maven.parchmentmc.org' } + } +} + +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' } \ No newline at end of file diff --git a/src/generated/resources/.cache/0f01e36c8c3e714f07da00bbe50a17425fd9bc5d b/src/generated/resources/.cache/0f01e36c8c3e714f07da00bbe50a17425fd9bc5d index d887d86..642e5c8 100644 --- a/src/generated/resources/.cache/0f01e36c8c3e714f07da00bbe50a17425fd9bc5d +++ b/src/generated/resources/.cache/0f01e36c8c3e714f07da00bbe50a17425fd9bc5d @@ -1,2 +1,2 @@ -// 1.21 2024-12-30T14:50:30.7413735 Tags for minecraft:item mod id nuggetmod -562be55fb606ffa455100bd2a6942846dcd124cb data/nuggetmod/tags/item/transformable_items.json +// 1.21 2024-12-30T14:50:30.7413735 Tags for minecraft:item mod id nuggetmod +562be55fb606ffa455100bd2a6942846dcd124cb data/nuggetmod/tags/item/transformable_items.json diff --git a/src/generated/resources/.cache/2a6e80b4e4362196170dd4ee2a3d8e7f56f9a0a0 b/src/generated/resources/.cache/2a6e80b4e4362196170dd4ee2a3d8e7f56f9a0a0 index db134d1..4a53f87 100644 --- a/src/generated/resources/.cache/2a6e80b4e4362196170dd4ee2a3d8e7f56f9a0a0 +++ b/src/generated/resources/.cache/2a6e80b4e4362196170dd4ee2a3d8e7f56f9a0a0 @@ -1,4 +1,5 @@ -// 1.21 2024-12-30T14:50:30.7520688 Tags for minecraft:block mod id nuggetmod -265fffb09f55ddbd810e4aca08e95427b6f8abb8 data/minecraft/tags/block/mineable/pickaxe.json -6b9f8ad5cb4e30e1a1e5fed561cbcdf19794cfba data/minecraft/tags/block/needs_diamond_tool.json -532756f975f04ecee6d351a7d1086a9c9921d694 data/minecraft/tags/block/needs_iron_tool.json +// 1.21 2024-12-30T18:01:57.8471253 Tags for minecraft:block mod id nuggetmod +265fffb09f55ddbd810e4aca08e95427b6f8abb8 data/minecraft/tags/block/mineable/pickaxe.json +d3afbade112106a4f7dba97fc08964398669700a data/minecraft/tags/block/needs_stone_tool.json +768d28c36c35fda7aa9d014ae9d9ce7ba23fdfb8 data/nuggetmod/tags/block/incorrect_for_nugget_tool.json +9c48de48f12ecaae54ddd4a48ea1ac229e0bcaa4 data/nuggetmod/tags/block/needs_nugget_tool.json diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d index 395546e..92a8a54 100644 --- a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d +++ b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d @@ -1,5 +1,5 @@ -// 1.21 2024-12-30T14:50:30.7468819 Loot Tables -74a43d938ccd280fff25bd66ec0f55a3e2c30ad0 data/nuggetmod/loot_table/blocks/nugget_block.json -206de236ad19cf2d06cf21b0f282e5b64bd5918d data/nuggetmod/loot_table/blocks/nugget_deepslate_ore.json -d65584c1286a06f15f88db5682372d78e8e0ebf7 data/nuggetmod/loot_table/blocks/nugget_ore.json -2b4a937626ec0aa515a8a78663ce0f6142b843a6 data/nuggetmod/loot_table/blocks/raw_nugget_block.json +// 1.21 2024-12-30T14:50:30.7468819 Loot Tables +74a43d938ccd280fff25bd66ec0f55a3e2c30ad0 data/nuggetmod/loot_table/blocks/nugget_block.json +206de236ad19cf2d06cf21b0f282e5b64bd5918d data/nuggetmod/loot_table/blocks/nugget_deepslate_ore.json +d65584c1286a06f15f88db5682372d78e8e0ebf7 data/nuggetmod/loot_table/blocks/nugget_ore.json +2b4a937626ec0aa515a8a78663ce0f6142b843a6 data/nuggetmod/loot_table/blocks/raw_nugget_block.json diff --git a/src/generated/resources/.cache/670693f4e9f75e384665a60f155b7d94dfc51f73 b/src/generated/resources/.cache/670693f4e9f75e384665a60f155b7d94dfc51f73 index 5a6557e..a75d919 100644 --- a/src/generated/resources/.cache/670693f4e9f75e384665a60f155b7d94dfc51f73 +++ b/src/generated/resources/.cache/670693f4e9f75e384665a60f155b7d94dfc51f73 @@ -1,3 +1,8 @@ -// 1.21 2024-12-30T14:50:30.7393544 Item Models: nuggetmod -90b22d61432e35fb68e2232a3eb76e15d2a77d89 assets/nuggetmod/models/item/nugget.json -762606d79e485c8a5e4447e8a1236bee89185245 assets/nuggetmod/models/item/raw_nugget.json +// 1.21 2024-12-30T18:01:57.8351251 Item Models: nuggetmod +90b22d61432e35fb68e2232a3eb76e15d2a77d89 assets/nuggetmod/models/item/nugget.json +cac221f8a7659366628c3b429c22ebd27f5adadd assets/nuggetmod/models/item/nugget_axe.json +cc6e0d754901f7397916b947124acf6ba8467153 assets/nuggetmod/models/item/nugget_hoe.json +1453d89f622ad5616505f248996b1715b196af76 assets/nuggetmod/models/item/nugget_pickaxe.json +f67a964a8a74c61df4d090dc5b250ad03bb16d8f assets/nuggetmod/models/item/nugget_shovel.json +dcc1dd8bb95c5c088212a9584d952a11ac2a840d assets/nuggetmod/models/item/nugget_sword.json +762606d79e485c8a5e4447e8a1236bee89185245 assets/nuggetmod/models/item/raw_nugget.json diff --git a/src/generated/resources/.cache/8273965882b13bc067ed62dddc852c7100e3fe85 b/src/generated/resources/.cache/8273965882b13bc067ed62dddc852c7100e3fe85 index 0a45ad7..708eda6 100644 --- a/src/generated/resources/.cache/8273965882b13bc067ed62dddc852c7100e3fe85 +++ b/src/generated/resources/.cache/8273965882b13bc067ed62dddc852c7100e3fe85 @@ -1,13 +1,13 @@ -// 1.21 2024-12-30T14:50:30.7438816 Block States: nuggetmod -e458b67af79198beb28149bb003b81fd70269977 assets/nuggetmod/blockstates/nugget_block.json -878193901a69171263432147c8d69dc3ad6a3329 assets/nuggetmod/blockstates/nugget_deepslate_ore.json -97b7f829a5952c457a7bd71a23fd2e40c9e41afd assets/nuggetmod/blockstates/nugget_ore.json -fc3b3199be08abb9ba378b6500ae96db0336a2ac assets/nuggetmod/blockstates/raw_nugget_block.json -5cd8b360f3c316bc790a0a08cca2902f5494ecb1 assets/nuggetmod/models/block/nugget_block.json -04a6c3905fc9bebb1701de7bf870efea11648a0e assets/nuggetmod/models/block/nugget_deepslate_ore.json -d8685b96ce2399042e685f5a0d52cc6f93aa2f7c assets/nuggetmod/models/block/nugget_ore.json -22ddcb7a66f04ae207af491a5e9264556726fec1 assets/nuggetmod/models/block/raw_nugget_block.json -87d953ce0211f8d1ae9e2f0411c38e6a937db408 assets/nuggetmod/models/item/nugget_block.json -1cbd017c90351ede4f571a9e6efd9b78640fed67 assets/nuggetmod/models/item/nugget_deepslate_ore.json -e8d9aff343954c5f248feb0b5fda5d9719aff29e assets/nuggetmod/models/item/nugget_ore.json -54f4c1e65c7687038adaf302a6471a1591ec2c2e assets/nuggetmod/models/item/raw_nugget_block.json +// 1.21 2024-12-30T14:50:30.7438816 Block States: nuggetmod +e458b67af79198beb28149bb003b81fd70269977 assets/nuggetmod/blockstates/nugget_block.json +878193901a69171263432147c8d69dc3ad6a3329 assets/nuggetmod/blockstates/nugget_deepslate_ore.json +97b7f829a5952c457a7bd71a23fd2e40c9e41afd assets/nuggetmod/blockstates/nugget_ore.json +fc3b3199be08abb9ba378b6500ae96db0336a2ac assets/nuggetmod/blockstates/raw_nugget_block.json +5cd8b360f3c316bc790a0a08cca2902f5494ecb1 assets/nuggetmod/models/block/nugget_block.json +04a6c3905fc9bebb1701de7bf870efea11648a0e assets/nuggetmod/models/block/nugget_deepslate_ore.json +d8685b96ce2399042e685f5a0d52cc6f93aa2f7c assets/nuggetmod/models/block/nugget_ore.json +22ddcb7a66f04ae207af491a5e9264556726fec1 assets/nuggetmod/models/block/raw_nugget_block.json +87d953ce0211f8d1ae9e2f0411c38e6a937db408 assets/nuggetmod/models/item/nugget_block.json +1cbd017c90351ede4f571a9e6efd9b78640fed67 assets/nuggetmod/models/item/nugget_deepslate_ore.json +e8d9aff343954c5f248feb0b5fda5d9719aff29e assets/nuggetmod/models/item/nugget_ore.json +54f4c1e65c7687038adaf302a6471a1591ec2c2e assets/nuggetmod/models/item/raw_nugget_block.json diff --git a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e index 256ff4a..51c26cc 100644 --- a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e +++ b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e @@ -1,21 +1,31 @@ -// 1.21 2024-12-30T15:05:08.206774 Recipes -39a320d3e238f524a92dae1eaa1c60d0e45ba296 data/nuggetmod/advancement/recipes/misc/nugget.json -8160ae7d8117c0cc293fcd40e22d1072c16ca478 data/nuggetmod/advancement/recipes/misc/nugget_block.json -ebf761f6dad07dac9f3ac9f8732d291cf7930611 data/nuggetmod/advancement/recipes/misc/nugget_from_blasting_nugget_deepslate_ore.json -e10188670de3a7a815f73a66fc5f4e92a648b51e data/nuggetmod/advancement/recipes/misc/nugget_from_blasting_nugget_ore.json -6138abcf020eb5235f574a65048b88a03b8dc057 data/nuggetmod/advancement/recipes/misc/nugget_from_blasting_raw_nugget.json -16fc56222bdb61afa3618038ee189f405fd20922 data/nuggetmod/advancement/recipes/misc/nugget_from_smelting_nugget_deepslate_ore.json -7b9dcb92c1af9c1982292c1efd6b4fb27513b3f5 data/nuggetmod/advancement/recipes/misc/nugget_from_smelting_nugget_ore.json -762af010e4f2c6dbf4b54f5f7c4575f28b47c524 data/nuggetmod/advancement/recipes/misc/nugget_from_smelting_raw_nugget.json -59e41b4b30c51f225ccb673f401839ec7e77fe20 data/nuggetmod/advancement/recipes/misc/raw_nugget.json -0eac4876a225ba434ebefcecb2d9a3d5b1af5cc3 data/nuggetmod/advancement/recipes/misc/raw_nugget_block.json -46cf496588958f9727af31d89b8adfa56f319b32 data/nuggetmod/recipe/nugget.json -a616003c555df86443a939fff05be631f005b5e7 data/nuggetmod/recipe/nugget_block.json -7cb0715c46c01f7dd8802b3cd8302c20ccb281cf data/nuggetmod/recipe/nugget_from_blasting_nugget_deepslate_ore.json -662c0a68d691fcb004fdfa4b18af745502eb51c4 data/nuggetmod/recipe/nugget_from_blasting_nugget_ore.json -67a9834245f8ecd74cf7b72ebeddee9e9d2296a5 data/nuggetmod/recipe/nugget_from_blasting_raw_nugget.json -61bc79a197aa3f00ccdbc3a573c1dc90bbb380e1 data/nuggetmod/recipe/nugget_from_smelting_nugget_deepslate_ore.json -da4d3a890cd2a10ef6502861f80d89da01c38533 data/nuggetmod/recipe/nugget_from_smelting_nugget_ore.json -b7053163e6e237928a9de0b5dfe921883a6e6b5c data/nuggetmod/recipe/nugget_from_smelting_raw_nugget.json -c30c2ad83bc1c296f619a1d111eb11aff1155f0b data/nuggetmod/recipe/raw_nugget.json -0a4297bae4d63ee5ba5092d4000e888112186293 data/nuggetmod/recipe/raw_nugget_block.json +// 1.21 2024-12-30T18:01:57.8391248 Recipes +587bf7befb4b1be77e7002038b9faf0eb5bb4ce5 data/nuggetmod/advancement/recipes/combat/nugget_sword.json +39a320d3e238f524a92dae1eaa1c60d0e45ba296 data/nuggetmod/advancement/recipes/misc/nugget.json +8160ae7d8117c0cc293fcd40e22d1072c16ca478 data/nuggetmod/advancement/recipes/misc/nugget_block.json +ebf761f6dad07dac9f3ac9f8732d291cf7930611 data/nuggetmod/advancement/recipes/misc/nugget_from_blasting_nugget_deepslate_ore.json +e10188670de3a7a815f73a66fc5f4e92a648b51e data/nuggetmod/advancement/recipes/misc/nugget_from_blasting_nugget_ore.json +6138abcf020eb5235f574a65048b88a03b8dc057 data/nuggetmod/advancement/recipes/misc/nugget_from_blasting_raw_nugget.json +16fc56222bdb61afa3618038ee189f405fd20922 data/nuggetmod/advancement/recipes/misc/nugget_from_smelting_nugget_deepslate_ore.json +7b9dcb92c1af9c1982292c1efd6b4fb27513b3f5 data/nuggetmod/advancement/recipes/misc/nugget_from_smelting_nugget_ore.json +762af010e4f2c6dbf4b54f5f7c4575f28b47c524 data/nuggetmod/advancement/recipes/misc/nugget_from_smelting_raw_nugget.json +59e41b4b30c51f225ccb673f401839ec7e77fe20 data/nuggetmod/advancement/recipes/misc/raw_nugget.json +0eac4876a225ba434ebefcecb2d9a3d5b1af5cc3 data/nuggetmod/advancement/recipes/misc/raw_nugget_block.json +a159ddd57f6c263d4862f5ee479f3df3595379d9 data/nuggetmod/advancement/recipes/tools/nugget_axe.json +1889633531251f9d32df839f13041a7839569079 data/nuggetmod/advancement/recipes/tools/nugget_hoe.json +e6dbb4576802c7009518fe2bc4dbe541f16b6687 data/nuggetmod/advancement/recipes/tools/nugget_pickaxe.json +f63988753316f6848707a1bebb9004bff2f6d5e4 data/nuggetmod/advancement/recipes/tools/nugget_shovel.json +46cf496588958f9727af31d89b8adfa56f319b32 data/nuggetmod/recipe/nugget.json +7a93996e567af4358d0add13412438c89efff405 data/nuggetmod/recipe/nugget_axe.json +a616003c555df86443a939fff05be631f005b5e7 data/nuggetmod/recipe/nugget_block.json +7cb0715c46c01f7dd8802b3cd8302c20ccb281cf data/nuggetmod/recipe/nugget_from_blasting_nugget_deepslate_ore.json +662c0a68d691fcb004fdfa4b18af745502eb51c4 data/nuggetmod/recipe/nugget_from_blasting_nugget_ore.json +67a9834245f8ecd74cf7b72ebeddee9e9d2296a5 data/nuggetmod/recipe/nugget_from_blasting_raw_nugget.json +61bc79a197aa3f00ccdbc3a573c1dc90bbb380e1 data/nuggetmod/recipe/nugget_from_smelting_nugget_deepslate_ore.json +da4d3a890cd2a10ef6502861f80d89da01c38533 data/nuggetmod/recipe/nugget_from_smelting_nugget_ore.json +b7053163e6e237928a9de0b5dfe921883a6e6b5c data/nuggetmod/recipe/nugget_from_smelting_raw_nugget.json +5502215f2426567d06785639a9011f601e9593a4 data/nuggetmod/recipe/nugget_hoe.json +b983b6efee4952a3a2dee230c8f13b363894d29e data/nuggetmod/recipe/nugget_pickaxe.json +2c25036d787f791caa37836de3c04b31ab9e9551 data/nuggetmod/recipe/nugget_shovel.json +af124114b7882426d847851db6f2f1c8bba4e6eb data/nuggetmod/recipe/nugget_sword.json +c30c2ad83bc1c296f619a1d111eb11aff1155f0b data/nuggetmod/recipe/raw_nugget.json +0a4297bae4d63ee5ba5092d4000e888112186293 data/nuggetmod/recipe/raw_nugget_block.json diff --git a/src/generated/resources/assets/nuggetmod/models/item/nugget_axe.json b/src/generated/resources/assets/nuggetmod/models/item/nugget_axe.json new file mode 100644 index 0000000..d019a81 --- /dev/null +++ b/src/generated/resources/assets/nuggetmod/models/item/nugget_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "nuggetmod:item/nugget_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/nuggetmod/models/item/nugget_hoe.json b/src/generated/resources/assets/nuggetmod/models/item/nugget_hoe.json new file mode 100644 index 0000000..18f6795 --- /dev/null +++ b/src/generated/resources/assets/nuggetmod/models/item/nugget_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "nuggetmod:item/nugget_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/nuggetmod/models/item/nugget_pickaxe.json b/src/generated/resources/assets/nuggetmod/models/item/nugget_pickaxe.json new file mode 100644 index 0000000..d642705 --- /dev/null +++ b/src/generated/resources/assets/nuggetmod/models/item/nugget_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "nuggetmod:item/nugget_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/nuggetmod/models/item/nugget_shovel.json b/src/generated/resources/assets/nuggetmod/models/item/nugget_shovel.json new file mode 100644 index 0000000..ece0687 --- /dev/null +++ b/src/generated/resources/assets/nuggetmod/models/item/nugget_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "nuggetmod:item/nugget_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/nuggetmod/models/item/nugget_sword.json b/src/generated/resources/assets/nuggetmod/models/item/nugget_sword.json new file mode 100644 index 0000000..61e96b3 --- /dev/null +++ b/src/generated/resources/assets/nuggetmod/models/item/nugget_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "nuggetmod:item/nugget_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json b/src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json deleted file mode 100644 index a1943b9..0000000 --- a/src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "nuggetmod:nugget_deepslate_ore" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/needs_diamond_tool.json b/src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json similarity index 57% rename from src/generated/resources/data/minecraft/tags/block/needs_diamond_tool.json rename to src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json index 9c2ac28..d4b9bba 100644 --- a/src/generated/resources/data/minecraft/tags/block/needs_diamond_tool.json +++ b/src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json @@ -1,5 +1,6 @@ { "values": [ + "nuggetmod:nugget_deepslate_ore", "nuggetmod:raw_nugget_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/advancement/recipes/combat/nugget_sword.json b/src/generated/resources/data/nuggetmod/advancement/recipes/combat/nugget_sword.json new file mode 100644 index 0000000..3502fd7 --- /dev/null +++ b/src/generated/resources/data/nuggetmod/advancement/recipes/combat/nugget_sword.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nugget": { + "conditions": { + "items": [ + { + "items": "nuggetmod:nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "nuggetmod:nugget_sword" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nugget" + ] + ], + "rewards": { + "recipes": [ + "nuggetmod:nugget_sword" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_axe.json b/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_axe.json new file mode 100644 index 0000000..6543cdd --- /dev/null +++ b/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_axe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nugget": { + "conditions": { + "items": [ + { + "items": "nuggetmod:nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "nuggetmod:nugget_axe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nugget" + ] + ], + "rewards": { + "recipes": [ + "nuggetmod:nugget_axe" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_hoe.json b/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_hoe.json new file mode 100644 index 0000000..154ed8f --- /dev/null +++ b/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_hoe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nugget": { + "conditions": { + "items": [ + { + "items": "nuggetmod:nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "nuggetmod:nugget_hoe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nugget" + ] + ], + "rewards": { + "recipes": [ + "nuggetmod:nugget_hoe" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_pickaxe.json b/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_pickaxe.json new file mode 100644 index 0000000..a031c05 --- /dev/null +++ b/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_pickaxe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nugget": { + "conditions": { + "items": [ + { + "items": "nuggetmod:nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "nuggetmod:nugget_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nugget" + ] + ], + "rewards": { + "recipes": [ + "nuggetmod:nugget_pickaxe" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_shovel.json b/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_shovel.json new file mode 100644 index 0000000..69e05e0 --- /dev/null +++ b/src/generated/resources/data/nuggetmod/advancement/recipes/tools/nugget_shovel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nugget": { + "conditions": { + "items": [ + { + "items": "nuggetmod:nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "nuggetmod:nugget_shovel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nugget" + ] + ], + "rewards": { + "recipes": [ + "nuggetmod:nugget_shovel" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/recipe/nugget_axe.json b/src/generated/resources/data/nuggetmod/recipe/nugget_axe.json new file mode 100644 index 0000000..b993e44 --- /dev/null +++ b/src/generated/resources/data/nuggetmod/recipe/nugget_axe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "nuggetmod:nugget" + }, + "B": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " AA", + " BA", + " B " + ], + "result": { + "count": 1, + "id": "nuggetmod:nugget_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/recipe/nugget_hoe.json b/src/generated/resources/data/nuggetmod/recipe/nugget_hoe.json new file mode 100644 index 0000000..3f32464 --- /dev/null +++ b/src/generated/resources/data/nuggetmod/recipe/nugget_hoe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "nuggetmod:nugget" + }, + "B": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " AA", + " B ", + " B " + ], + "result": { + "count": 1, + "id": "nuggetmod:nugget_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/recipe/nugget_pickaxe.json b/src/generated/resources/data/nuggetmod/recipe/nugget_pickaxe.json new file mode 100644 index 0000000..2068e49 --- /dev/null +++ b/src/generated/resources/data/nuggetmod/recipe/nugget_pickaxe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "nuggetmod:nugget" + }, + "B": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "AAA", + " B ", + " B " + ], + "result": { + "count": 1, + "id": "nuggetmod:nugget_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/recipe/nugget_shovel.json b/src/generated/resources/data/nuggetmod/recipe/nugget_shovel.json new file mode 100644 index 0000000..5073994 --- /dev/null +++ b/src/generated/resources/data/nuggetmod/recipe/nugget_shovel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "nuggetmod:nugget" + }, + "B": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " A ", + " B ", + " B " + ], + "result": { + "count": 1, + "id": "nuggetmod:nugget_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/recipe/nugget_sword.json b/src/generated/resources/data/nuggetmod/recipe/nugget_sword.json new file mode 100644 index 0000000..9b648b9 --- /dev/null +++ b/src/generated/resources/data/nuggetmod/recipe/nugget_sword.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "nuggetmod:nugget" + }, + "B": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " A ", + " A ", + " B " + ], + "result": { + "count": 1, + "id": "nuggetmod:nugget_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/tags/block/incorrect_for_nugget_tool.json b/src/generated/resources/data/nuggetmod/tags/block/incorrect_for_nugget_tool.json new file mode 100644 index 0000000..2f81f37 --- /dev/null +++ b/src/generated/resources/data/nuggetmod/tags/block/incorrect_for_nugget_tool.json @@ -0,0 +1,8 @@ +{ + "remove": [ + "#nuggetmod:needs_nugget_tool" + ], + "values": [ + "#minecraft:incorrect_for_diamond_tool" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/nuggetmod/tags/block/needs_nugget_tool.json b/src/generated/resources/data/nuggetmod/tags/block/needs_nugget_tool.json new file mode 100644 index 0000000..35fe395 --- /dev/null +++ b/src/generated/resources/data/nuggetmod/tags/block/needs_nugget_tool.json @@ -0,0 +1,6 @@ +{ + "values": [ + "nuggetmod:raw_nugget_block", + "#minecraft:needs_diamond_tool" + ] +} \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/Config.java b/src/main/java/xyz/sillyangel/nugget/Config.java index 6b313d2..d3d1c4d 100644 --- a/src/main/java/xyz/sillyangel/nugget/Config.java +++ b/src/main/java/xyz/sillyangel/nugget/Config.java @@ -1,63 +1,63 @@ -package xyz.sillyangel.nugget; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.Item; -import net.minecraftforge.common.ForgeConfigSpec; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.event.config.ModConfigEvent; -import net.minecraftforge.registries.ForgeRegistries; - -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - -// An example config class. This is not required, but it's a good idea to have one to keep your config organized. -// Demonstrates how to use Forge's config APIs -@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) -public class Config -{ - private static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder(); - - private static final ForgeConfigSpec.BooleanValue LOG_DIRT_BLOCK = BUILDER - .comment("Whether to log the dirt block on common setup") - .define("logDirtBlock", true); - - private static final ForgeConfigSpec.IntValue MAGIC_NUMBER = BUILDER - .comment("A magic number") - .defineInRange("magicNumber", 42, 0, Integer.MAX_VALUE); - - public static final ForgeConfigSpec.ConfigValue MAGIC_NUMBER_INTRODUCTION = BUILDER - .comment("What you want the introduction message to be for the magic number") - .define("magicNumberIntroduction", "The magic number is... "); - - // a list of strings that are treated as resource locations for items - private static final ForgeConfigSpec.ConfigValue> ITEM_STRINGS = BUILDER - .comment("A list of items to log on common setup.") - .defineListAllowEmpty("items", List.of("minecraft:iron_ingot"), Config::validateItemName); - - static final ForgeConfigSpec SPEC = BUILDER.build(); - - public static boolean logDirtBlock; - public static int magicNumber; - public static String magicNumberIntroduction; - public static Set items; - - private static boolean validateItemName(final Object obj) - { - return obj instanceof final String itemName && ForgeRegistries.ITEMS.containsKey(ResourceLocation.tryParse(itemName)); - } - - @SubscribeEvent - static void onLoad(final ModConfigEvent event) - { - logDirtBlock = LOG_DIRT_BLOCK.get(); - magicNumber = MAGIC_NUMBER.get(); - magicNumberIntroduction = MAGIC_NUMBER_INTRODUCTION.get(); - - // convert the list of strings into a set of items - items = ITEM_STRINGS.get().stream() - .map(itemName -> ForgeRegistries.ITEMS.getValue(ResourceLocation.tryParse(itemName))) - .collect(Collectors.toSet()); - } +package xyz.sillyangel.nugget; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraftforge.common.ForgeConfigSpec; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.config.ModConfigEvent; +import net.minecraftforge.registries.ForgeRegistries; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +// An example config class. This is not required, but it's a good idea to have one to keep your config organized. +// Demonstrates how to use Forge's config APIs +@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) +public class Config +{ + private static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder(); + + private static final ForgeConfigSpec.BooleanValue LOG_DIRT_BLOCK = BUILDER + .comment("Whether to log the dirt block on common setup") + .define("logDirtBlock", true); + + private static final ForgeConfigSpec.IntValue MAGIC_NUMBER = BUILDER + .comment("A magic number") + .defineInRange("magicNumber", 42, 0, Integer.MAX_VALUE); + + public static final ForgeConfigSpec.ConfigValue MAGIC_NUMBER_INTRODUCTION = BUILDER + .comment("What you want the introduction message to be for the magic number") + .define("magicNumberIntroduction", "The magic number is... "); + + // a list of strings that are treated as resource locations for items + private static final ForgeConfigSpec.ConfigValue> ITEM_STRINGS = BUILDER + .comment("A list of items to log on common setup.") + .defineListAllowEmpty("items", List.of("minecraft:iron_ingot"), Config::validateItemName); + + static final ForgeConfigSpec SPEC = BUILDER.build(); + + public static boolean logDirtBlock; + public static int magicNumber; + public static String magicNumberIntroduction; + public static Set items; + + private static boolean validateItemName(final Object obj) + { + return obj instanceof final String itemName && ForgeRegistries.ITEMS.containsKey(ResourceLocation.tryParse(itemName)); + } + + @SubscribeEvent + static void onLoad(final ModConfigEvent event) + { + logDirtBlock = LOG_DIRT_BLOCK.get(); + magicNumber = MAGIC_NUMBER.get(); + magicNumberIntroduction = MAGIC_NUMBER_INTRODUCTION.get(); + + // convert the list of strings into a set of items + items = ITEM_STRINGS.get().stream() + .map(itemName -> ForgeRegistries.ITEMS.getValue(ResourceLocation.tryParse(itemName))) + .collect(Collectors.toSet()); + } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/NuggetMod.java b/src/main/java/xyz/sillyangel/nugget/NuggetMod.java index 822ef53..a9a2171 100644 --- a/src/main/java/xyz/sillyangel/nugget/NuggetMod.java +++ b/src/main/java/xyz/sillyangel/nugget/NuggetMod.java @@ -1,70 +1,70 @@ -package xyz.sillyangel.nugget; - -import com.mojang.logging.LogUtils; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; -import net.minecraftforge.event.server.ServerStartingEvent; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.ModLoadingContext; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.config.ModConfig; -import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import org.slf4j.Logger; -import xyz.sillyangel.nugget.item.ModCreativeModeTabs; -import xyz.sillyangel.nugget.item.ModItems; -import xyz.sillyangel.nugget.block.ModBlocks; - -// Very important Comment -// The value here should match an entry in the META-INF/mods.toml file -@Mod(NuggetMod.MOD_ID) -public class NuggetMod { - // Define mod id in a common place for everything to reference - public static final String MOD_ID = "nuggetmod"; - // Directly reference a slf4j logger - public static final Logger LOGGER = LogUtils.getLogger(); - - public NuggetMod() { - IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); - modEventBus.addListener(this::commonSetup); - // Register ourselves for server and other game events we are interested in - MinecraftForge.EVENT_BUS.register(this); - - ModCreativeModeTabs.register(modEventBus); - - ModItems.register(modEventBus); - ModBlocks.register(modEventBus); - - // Register the item to a creative tab - modEventBus.addListener(this::addCreative); - // Register our mod's ForgeConfigSpec so that Forge can create and load the config file for us - ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.SPEC); - } - - private void commonSetup(final FMLCommonSetupEvent event) { - - } - - // Add the example block item to the building blocks tab - private void addCreative(BuildCreativeModeTabContentsEvent event) { - - } - - // You can use SubscribeEvent and let the Event Bus discover methods to call - @SubscribeEvent - public void onServerStarting(ServerStartingEvent event) { - - } - - // You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent - @Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) - public static class ClientModEvents { - @SubscribeEvent - public static void onClientSetup(FMLClientSetupEvent event) { - - } - } +package xyz.sillyangel.nugget; + +import com.mojang.logging.LogUtils; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; +import net.minecraftforge.event.server.ServerStartingEvent; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.config.ModConfig; +import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import org.slf4j.Logger; +import xyz.sillyangel.nugget.item.ModCreativeModeTabs; +import xyz.sillyangel.nugget.item.ModItems; +import xyz.sillyangel.nugget.block.ModBlocks; + +// Very important Comment +// The value here should match an entry in the META-INF/mods.toml file +@Mod(NuggetMod.MOD_ID) +public class NuggetMod { + // Define mod id in a common place for everything to reference + public static final String MOD_ID = "nuggetmod"; + // Directly reference a slf4j logger + public static final Logger LOGGER = LogUtils.getLogger(); + + public NuggetMod() { + IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); + modEventBus.addListener(this::commonSetup); + // Register ourselves for server and other game events we are interested in + MinecraftForge.EVENT_BUS.register(this); + + ModCreativeModeTabs.register(modEventBus); + + ModItems.register(modEventBus); + ModBlocks.register(modEventBus); + + // Register the item to a creative tab + modEventBus.addListener(this::addCreative); + // Register our mod's ForgeConfigSpec so that Forge can create and load the config file for us + ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.SPEC); + } + + private void commonSetup(final FMLCommonSetupEvent event) { + + } + + // Add the example block item to the building blocks tab + private void addCreative(BuildCreativeModeTabContentsEvent event) { + + } + + // You can use SubscribeEvent and let the Event Bus discover methods to call + @SubscribeEvent + public void onServerStarting(ServerStartingEvent event) { + + } + + // You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent + @Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) + public static class ClientModEvents { + @SubscribeEvent + public static void onClientSetup(FMLClientSetupEvent event) { + + } + } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/block/ModBlocks.java b/src/main/java/xyz/sillyangel/nugget/block/ModBlocks.java index af1da62..e17fcca 100644 --- a/src/main/java/xyz/sillyangel/nugget/block/ModBlocks.java +++ b/src/main/java/xyz/sillyangel/nugget/block/ModBlocks.java @@ -1,52 +1,52 @@ -package xyz.sillyangel.nugget.block; - -import xyz.sillyangel.nugget.NuggetMod; -import xyz.sillyangel.nugget.item.ModItems; -import net.minecraft.util.valueproviders.UniformInt; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.DropExperienceBlock; -import net.minecraft.world.level.block.SoundType; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; - -import java.util.function.Supplier; - -public class ModBlocks { - public static final DeferredRegister BLOCKS = - DeferredRegister.create(ForgeRegistries.BLOCKS, NuggetMod.MOD_ID); - - public static final RegistryObject NUGGET_BLOCK = registerBlock("nugget_block", - () -> new Block(BlockBehaviour.Properties.of() - .strength(4f).requiresCorrectToolForDrops().sound(SoundType.AMETHYST))); - - public static final RegistryObject RAW_NUGGET_BLOCK = registerBlock("raw_nugget_block", - () -> new Block(BlockBehaviour.Properties.of() - .strength(3f).requiresCorrectToolForDrops())); - // ores - public static final RegistryObject NUGGET_ORE = registerBlock("nugget_ore", - () -> new DropExperienceBlock(UniformInt.of(2, 4), BlockBehaviour.Properties.of() - .strength(4f).requiresCorrectToolForDrops())); - - public static final RegistryObject NUGGET_DEEPSLATE_ORE = registerBlock("nugget_deepslate_ore", - () -> new DropExperienceBlock(UniformInt.of(2, 4), BlockBehaviour.Properties.of() - .strength(5f).requiresCorrectToolForDrops().sound(SoundType.DEEPSLATE))); - - private static RegistryObject registerBlock(String name, Supplier block) { - RegistryObject toReturn = BLOCKS.register(name, block); - registerBlockItem(name, toReturn); - return toReturn; - } - - private static void registerBlockItem(String name, RegistryObject block) { - ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties())); - } - - public static void register(IEventBus eventBus) { - BLOCKS.register(eventBus); - } +package xyz.sillyangel.nugget.block; + +import xyz.sillyangel.nugget.NuggetMod; +import xyz.sillyangel.nugget.item.ModItems; +import net.minecraft.util.valueproviders.UniformInt; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.DropExperienceBlock; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +import java.util.function.Supplier; + +public class ModBlocks { + public static final DeferredRegister BLOCKS = + DeferredRegister.create(ForgeRegistries.BLOCKS, NuggetMod.MOD_ID); + + public static final RegistryObject NUGGET_BLOCK = registerBlock("nugget_block", + () -> new Block(BlockBehaviour.Properties.of() + .strength(4f).requiresCorrectToolForDrops().sound(SoundType.AMETHYST))); + + public static final RegistryObject RAW_NUGGET_BLOCK = registerBlock("raw_nugget_block", + () -> new Block(BlockBehaviour.Properties.of() + .strength(3f).requiresCorrectToolForDrops())); + // ores + public static final RegistryObject NUGGET_ORE = registerBlock("nugget_ore", + () -> new DropExperienceBlock(UniformInt.of(2, 4), BlockBehaviour.Properties.of() + .strength(4f).requiresCorrectToolForDrops())); + + public static final RegistryObject NUGGET_DEEPSLATE_ORE = registerBlock("nugget_deepslate_ore", + () -> new DropExperienceBlock(UniformInt.of(2, 4), BlockBehaviour.Properties.of() + .strength(5f).requiresCorrectToolForDrops().sound(SoundType.DEEPSLATE))); + + private static RegistryObject registerBlock(String name, Supplier block) { + RegistryObject toReturn = BLOCKS.register(name, block); + registerBlockItem(name, toReturn); + return toReturn; + } + + private static void registerBlockItem(String name, RegistryObject block) { + ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties())); + } + + public static void register(IEventBus eventBus) { + BLOCKS.register(eventBus); + } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/DataGenerators.java b/src/main/java/xyz/sillyangel/nugget/datagen/DataGenerators.java index b748c0a..14d48a0 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/DataGenerators.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/DataGenerators.java @@ -1,39 +1,39 @@ -package xyz.sillyangel.nugget.datagen; - -import xyz.sillyangel.nugget.NuggetMod; -import net.minecraft.core.HolderLookup; -import net.minecraft.data.DataGenerator; -import net.minecraft.data.PackOutput; -import net.minecraft.data.loot.LootTableProvider; -import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; -import net.minecraftforge.common.data.BlockTagsProvider; -import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.data.event.GatherDataEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; - -import java.util.Collections; -import java.util.List; -import java.util.concurrent.CompletableFuture; - -@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) -public class DataGenerators { - @SubscribeEvent - public static void gatherData(GatherDataEvent event) { - DataGenerator generator = event.getGenerator(); - PackOutput packOutput = generator.getPackOutput(); - ExistingFileHelper existingFileHelper = event.getExistingFileHelper(); - CompletableFuture lookupProvider = event.getLookupProvider(); - - generator.addProvider(event.includeServer(), new LootTableProvider(packOutput, Collections.emptySet(), - List.of(new LootTableProvider.SubProviderEntry(ModBlockLootTableProvider::new, LootContextParamSets.BLOCK)), lookupProvider)); - generator.addProvider(event.includeServer(), new ModRecipeProvider(packOutput, lookupProvider)); - - BlockTagsProvider blockTagsProvider = new ModBlockTagProvider(packOutput, lookupProvider, existingFileHelper); - generator.addProvider(event.includeServer(), blockTagsProvider); - generator.addProvider(event.includeServer(), new ModItemTagProvider(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper)); - - generator.addProvider(event.includeClient(), new ModItemModelProvider(packOutput, existingFileHelper)); - generator.addProvider(event.includeClient(), new ModBlockStateProvider(packOutput, existingFileHelper)); - } +package xyz.sillyangel.nugget.datagen; + +import xyz.sillyangel.nugget.NuggetMod; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; +import net.minecraft.data.loot.LootTableProvider; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; +import net.minecraftforge.common.data.BlockTagsProvider; +import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.data.event.GatherDataEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +import java.util.Collections; +import java.util.List; +import java.util.concurrent.CompletableFuture; + +@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) +public class DataGenerators { + @SubscribeEvent + public static void gatherData(GatherDataEvent event) { + DataGenerator generator = event.getGenerator(); + PackOutput packOutput = generator.getPackOutput(); + ExistingFileHelper existingFileHelper = event.getExistingFileHelper(); + CompletableFuture lookupProvider = event.getLookupProvider(); + + generator.addProvider(event.includeServer(), new LootTableProvider(packOutput, Collections.emptySet(), + List.of(new LootTableProvider.SubProviderEntry(ModBlockLootTableProvider::new, LootContextParamSets.BLOCK)), lookupProvider)); + generator.addProvider(event.includeServer(), new ModRecipeProvider(packOutput, lookupProvider)); + + BlockTagsProvider blockTagsProvider = new ModBlockTagProvider(packOutput, lookupProvider, existingFileHelper); + generator.addProvider(event.includeServer(), blockTagsProvider); + generator.addProvider(event.includeServer(), new ModItemTagProvider(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper)); + + generator.addProvider(event.includeClient(), new ModItemModelProvider(packOutput, existingFileHelper)); + generator.addProvider(event.includeClient(), new ModBlockStateProvider(packOutput, existingFileHelper)); + } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockLootTableProvider.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockLootTableProvider.java index 1cda994..b39f52c 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockLootTableProvider.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockLootTableProvider.java @@ -1,55 +1,55 @@ -package xyz.sillyangel.nugget.datagen; - -import xyz.sillyangel.nugget.block.ModBlocks; -import xyz.sillyangel.nugget.item.ModItems; -import net.minecraft.core.HolderLookup; -import net.minecraft.core.registries.Registries; -import net.minecraft.data.loot.BlockLootSubProvider; -import net.minecraft.world.flag.FeatureFlags; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.enchantment.Enchantment; -import net.minecraft.world.item.enchantment.Enchantments; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.storage.loot.LootTable; -import net.minecraft.world.level.storage.loot.entries.LootItem; -import net.minecraft.world.level.storage.loot.entries.LootPoolEntryContainer; -import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount; -import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction; -import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator; -import net.minecraftforge.registries.RegistryObject; - -import java.util.Set; - -public class ModBlockLootTableProvider extends BlockLootSubProvider { - protected ModBlockLootTableProvider(HolderLookup.Provider pRegistries) { - super(Set.of(), FeatureFlags.REGISTRY.allFlags(), pRegistries); - } - - @Override - protected void generate() { - dropSelf(ModBlocks.NUGGET_BLOCK.get()); - dropSelf(ModBlocks.RAW_NUGGET_BLOCK.get()); - - this.add(ModBlocks.NUGGET_ORE.get(), - block -> createOreDrop(ModBlocks.NUGGET_ORE.get(), ModItems.RAW_NUGGET.get())); - this.add(ModBlocks.NUGGET_DEEPSLATE_ORE.get(), - block -> createMultipleOreDrops(ModBlocks.NUGGET_DEEPSLATE_ORE.get(), ModItems.RAW_NUGGET.get(), 2, 6)); - } - - protected LootTable.Builder createMultipleOreDrops(Block pBlock, Item item, float minDrops, float maxDrops) { - HolderLookup.RegistryLookup registrylookup = this.registries.lookupOrThrow(Registries.ENCHANTMENT); - return this.createSilkTouchDispatchTable( - pBlock, this.applyExplosionDecay( - pBlock, LootItem.lootTableItem(item) - .apply(SetItemCountFunction.setCount(UniformGenerator.between(minDrops, maxDrops))) - .apply(ApplyBonusCount.addOreBonusCount(registrylookup.getOrThrow(Enchantments.FORTUNE))) - ) - ); - } - - @Override - protected Iterable getKnownBlocks() { - return ModBlocks.BLOCKS.getEntries().stream().map(RegistryObject::get)::iterator; - } +package xyz.sillyangel.nugget.datagen; + +import xyz.sillyangel.nugget.block.ModBlocks; +import xyz.sillyangel.nugget.item.ModItems; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.loot.BlockLootSubProvider; +import net.minecraft.world.flag.FeatureFlags; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.Enchantments; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.storage.loot.LootTable; +import net.minecraft.world.level.storage.loot.entries.LootItem; +import net.minecraft.world.level.storage.loot.entries.LootPoolEntryContainer; +import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount; +import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction; +import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator; +import net.minecraftforge.registries.RegistryObject; + +import java.util.Set; + +public class ModBlockLootTableProvider extends BlockLootSubProvider { + protected ModBlockLootTableProvider(HolderLookup.Provider pRegistries) { + super(Set.of(), FeatureFlags.REGISTRY.allFlags(), pRegistries); + } + + @Override + protected void generate() { + dropSelf(ModBlocks.NUGGET_BLOCK.get()); + dropSelf(ModBlocks.RAW_NUGGET_BLOCK.get()); + + this.add(ModBlocks.NUGGET_ORE.get(), + block -> createOreDrop(ModBlocks.NUGGET_ORE.get(), ModItems.RAW_NUGGET.get())); + this.add(ModBlocks.NUGGET_DEEPSLATE_ORE.get(), + block -> createMultipleOreDrops(ModBlocks.NUGGET_DEEPSLATE_ORE.get(), ModItems.RAW_NUGGET.get(), 2, 6)); + } + + protected LootTable.Builder createMultipleOreDrops(Block pBlock, Item item, float minDrops, float maxDrops) { + HolderLookup.RegistryLookup registrylookup = this.registries.lookupOrThrow(Registries.ENCHANTMENT); + return this.createSilkTouchDispatchTable( + pBlock, this.applyExplosionDecay( + pBlock, LootItem.lootTableItem(item) + .apply(SetItemCountFunction.setCount(UniformGenerator.between(minDrops, maxDrops))) + .apply(ApplyBonusCount.addOreBonusCount(registrylookup.getOrThrow(Enchantments.FORTUNE))) + ) + ); + } + + @Override + protected Iterable getKnownBlocks() { + return ModBlocks.BLOCKS.getEntries().stream().map(RegistryObject::get)::iterator; + } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockStateProvider.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockStateProvider.java index 83e1659..0cf1045 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockStateProvider.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockStateProvider.java @@ -1,29 +1,29 @@ -package xyz.sillyangel.nugget.datagen; - -import xyz.sillyangel.nugget.NuggetMod; -import xyz.sillyangel.nugget.block.ModBlocks; -import net.minecraft.data.PackOutput; -import net.minecraft.world.level.block.Block; -import net.minecraftforge.client.model.generators.BlockStateProvider; -import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.registries.RegistryObject; - -public class ModBlockStateProvider extends BlockStateProvider { - public ModBlockStateProvider(PackOutput output, ExistingFileHelper exFileHelper) { - super(output, NuggetMod.MOD_ID, exFileHelper); - } - - @Override - protected void registerStatesAndModels() { - blockWithItem(ModBlocks.NUGGET_BLOCK); - blockWithItem(ModBlocks.RAW_NUGGET_BLOCK); - - blockWithItem(ModBlocks.NUGGET_ORE); - blockWithItem(ModBlocks.NUGGET_DEEPSLATE_ORE); - - } - - private void blockWithItem(RegistryObject blockRegistryObject) { - simpleBlockWithItem(blockRegistryObject.get(), cubeAll(blockRegistryObject.get())); - } +package xyz.sillyangel.nugget.datagen; + +import xyz.sillyangel.nugget.NuggetMod; +import xyz.sillyangel.nugget.block.ModBlocks; +import net.minecraft.data.PackOutput; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.client.model.generators.BlockStateProvider; +import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.registries.RegistryObject; + +public class ModBlockStateProvider extends BlockStateProvider { + public ModBlockStateProvider(PackOutput output, ExistingFileHelper exFileHelper) { + super(output, NuggetMod.MOD_ID, exFileHelper); + } + + @Override + protected void registerStatesAndModels() { + blockWithItem(ModBlocks.NUGGET_BLOCK); + blockWithItem(ModBlocks.RAW_NUGGET_BLOCK); + + blockWithItem(ModBlocks.NUGGET_ORE); + blockWithItem(ModBlocks.NUGGET_DEEPSLATE_ORE); + + } + + private void blockWithItem(RegistryObject blockRegistryObject) { + simpleBlockWithItem(blockRegistryObject.get(), cubeAll(blockRegistryObject.get())); + } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockTagProvider.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockTagProvider.java index 2a420c4..16d4c33 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockTagProvider.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModBlockTagProvider.java @@ -1,42 +1,42 @@ -package xyz.sillyangel.nugget.datagen; - -import xyz.sillyangel.nugget.NuggetMod; -import xyz.sillyangel.nugget.block.ModBlocks; -import net.minecraft.core.HolderLookup; -import net.minecraft.data.PackOutput; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.tags.BlockTags; -import net.minecraftforge.common.data.BlockTagsProvider; -import net.minecraftforge.common.data.ExistingFileHelper; -import org.jetbrains.annotations.Nullable; -import xyz.sillyangel.nugget.util.ModTags; - -import java.util.concurrent.CompletableFuture; - -public class ModBlockTagProvider extends BlockTagsProvider { - public ModBlockTagProvider(PackOutput output, CompletableFuture lookupProvider, @Nullable ExistingFileHelper existingFileHelper) { - super(output, lookupProvider, NuggetMod.MOD_ID, existingFileHelper); - } - - @Override - protected void addTags(HolderLookup.Provider pProvider) { - tag(BlockTags.MINEABLE_WITH_PICKAXE) - .add(ModBlocks.NUGGET_BLOCK.get()) - .add(ModBlocks.RAW_NUGGET_BLOCK.get()) - .add(ModBlocks.NUGGET_ORE.get()) - .add(ModBlocks.NUGGET_DEEPSLATE_ORE.get()); - - tag(BlockTags.NEEDS_STONE_TOOL) - .add(ModBlocks.NUGGET_DEEPSLATE_ORE.get()) - .add(ModBlocks.RAW_NUGGET_BLOCK.get()); - - // tag(BlockTags.NEEDS_STONE_TOOL) - tag(ModTags.Blocks.NEEDS_NUGGET_TOOL) - .add(ModBlocks.RAW_NUGGET_BLOCK.get()) - .addTag(BlockTags.NEEDS_DIAMOND_TOOL); - - tag(ModTags.Blocks.INCORRECT_FOR_NUGGET_TOOL) - .addTag(BlockTags.INCORRECT_FOR_DIAMOND_TOOL) - .remove(ModTags.Blocks.NEEDS_NUGGET_TOOL); - } +package xyz.sillyangel.nugget.datagen; + +import xyz.sillyangel.nugget.NuggetMod; +import xyz.sillyangel.nugget.block.ModBlocks; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.tags.BlockTags; +import net.minecraftforge.common.data.BlockTagsProvider; +import net.minecraftforge.common.data.ExistingFileHelper; +import org.jetbrains.annotations.Nullable; +import xyz.sillyangel.nugget.util.ModTags; + +import java.util.concurrent.CompletableFuture; + +public class ModBlockTagProvider extends BlockTagsProvider { + public ModBlockTagProvider(PackOutput output, CompletableFuture lookupProvider, @Nullable ExistingFileHelper existingFileHelper) { + super(output, lookupProvider, NuggetMod.MOD_ID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider pProvider) { + tag(BlockTags.MINEABLE_WITH_PICKAXE) + .add(ModBlocks.NUGGET_BLOCK.get()) + .add(ModBlocks.RAW_NUGGET_BLOCK.get()) + .add(ModBlocks.NUGGET_ORE.get()) + .add(ModBlocks.NUGGET_DEEPSLATE_ORE.get()); + + tag(BlockTags.NEEDS_STONE_TOOL) + .add(ModBlocks.NUGGET_DEEPSLATE_ORE.get()) + .add(ModBlocks.RAW_NUGGET_BLOCK.get()); + + // tag(BlockTags.NEEDS_STONE_TOOL) + tag(ModTags.Blocks.NEEDS_NUGGET_TOOL) + .add(ModBlocks.RAW_NUGGET_BLOCK.get()) + .addTag(BlockTags.NEEDS_DIAMOND_TOOL); + + tag(ModTags.Blocks.INCORRECT_FOR_NUGGET_TOOL) + .addTag(BlockTags.INCORRECT_FOR_DIAMOND_TOOL) + .remove(ModTags.Blocks.NEEDS_NUGGET_TOOL); + } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModItemModelProvider.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModItemModelProvider.java index e2585ea..1fdd838 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/ModItemModelProvider.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModItemModelProvider.java @@ -1,61 +1,61 @@ -package xyz.sillyangel.nugget.datagen; - -import xyz.sillyangel.nugget.NuggetMod; -import xyz.sillyangel.nugget.item.ModItems; -import net.minecraft.data.PackOutput; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import net.minecraftforge.client.model.generators.ItemModelBuilder; -import net.minecraftforge.client.model.generators.ItemModelProvider; -import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; - -public class ModItemModelProvider extends ItemModelProvider { - public ModItemModelProvider(PackOutput output, ExistingFileHelper existingFileHelper) { - super(output, NuggetMod.MOD_ID, existingFileHelper); - } - - @Override - protected void registerModels() { - basicItem(ModItems.NUGGET.get()); - basicItem(ModItems.RAW_NUGGET.get()); - - handheldItem(ModItems.NUGGET_SWORD); - handheldItem(ModItems.NUGGET_PICKAXE); - handheldItem(ModItems.NUGGET_SHOVEL); - handheldItem(ModItems.NUGGET_AXE); - handheldItem(ModItems.NUGGET_HOE); - } - - private ItemModelBuilder handheldItem(RegistryObject item) { - return withExistingParent(item.getId().getPath(), - ResourceLocation.parse("item/handheld")).texture("layer0", - ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID,"item/" + item.getId().getPath())); - } - - public void buttonItem(RegistryObject block, RegistryObject baseBlock) { - this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/button_inventory")) - .texture("texture", ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, - "block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath())); - } - - public void fenceItem(RegistryObject block, RegistryObject baseBlock) { - this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/fence_inventory")) - .texture("texture", ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, - "block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath())); - } - - public void wallItem(RegistryObject block, RegistryObject baseBlock) { - this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/wall_inventory")) - .texture("wall", ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, - "block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath())); - } - - private ItemModelBuilder simpleBlockItem(RegistryObject item) { - return withExistingParent(item.getId().getPath(), - ResourceLocation.parse("item/generated")).texture("layer0", - ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID,"item/" + item.getId().getPath())); - } +package xyz.sillyangel.nugget.datagen; + +import xyz.sillyangel.nugget.NuggetMod; +import xyz.sillyangel.nugget.item.ModItems; +import net.minecraft.data.PackOutput; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.client.model.generators.ItemModelBuilder; +import net.minecraftforge.client.model.generators.ItemModelProvider; +import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +public class ModItemModelProvider extends ItemModelProvider { + public ModItemModelProvider(PackOutput output, ExistingFileHelper existingFileHelper) { + super(output, NuggetMod.MOD_ID, existingFileHelper); + } + + @Override + protected void registerModels() { + basicItem(ModItems.NUGGET.get()); + basicItem(ModItems.RAW_NUGGET.get()); + + handheldItem(ModItems.NUGGET_SWORD); + handheldItem(ModItems.NUGGET_PICKAXE); + handheldItem(ModItems.NUGGET_SHOVEL); + handheldItem(ModItems.NUGGET_AXE); + handheldItem(ModItems.NUGGET_HOE); + } + + private ItemModelBuilder handheldItem(RegistryObject item) { + return withExistingParent(item.getId().getPath(), + ResourceLocation.parse("item/handheld")).texture("layer0", + ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID,"item/" + item.getId().getPath())); + } + + public void buttonItem(RegistryObject block, RegistryObject baseBlock) { + this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/button_inventory")) + .texture("texture", ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, + "block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath())); + } + + public void fenceItem(RegistryObject block, RegistryObject baseBlock) { + this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/fence_inventory")) + .texture("texture", ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, + "block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath())); + } + + public void wallItem(RegistryObject block, RegistryObject baseBlock) { + this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/wall_inventory")) + .texture("wall", ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, + "block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath())); + } + + private ItemModelBuilder simpleBlockItem(RegistryObject item) { + return withExistingParent(item.getId().getPath(), + ResourceLocation.parse("item/generated")).texture("layer0", + ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID,"item/" + item.getId().getPath())); + } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModItemTagProvider.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModItemTagProvider.java index bedad9b..f9b591d 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/ModItemTagProvider.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModItemTagProvider.java @@ -1,31 +1,31 @@ -package xyz.sillyangel.nugget.datagen; - -import xyz.sillyangel.nugget.NuggetMod; -import xyz.sillyangel.nugget.item.ModItems; -import xyz.sillyangel.nugget.util.ModTags; -import net.minecraft.core.HolderLookup; -import net.minecraft.data.PackOutput; -import net.minecraft.data.tags.ItemTagsProvider; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.Block; -import net.minecraftforge.common.data.ExistingFileHelper; -import org.jetbrains.annotations.Nullable; - -import java.util.concurrent.CompletableFuture; - -public class ModItemTagProvider extends ItemTagsProvider { - public ModItemTagProvider(PackOutput packOutput, CompletableFuture completableFuture, - CompletableFuture> lookupCompletableFuture, @Nullable ExistingFileHelper existingFileHelper) { - super(packOutput, completableFuture, lookupCompletableFuture, NuggetMod.MOD_ID, existingFileHelper); - } - - @Override - protected void addTags(HolderLookup.Provider pProvider) { - tag(ModTags.Items.TRANSFORMABLE_ITEMS) - .add(ModItems.NUGGET.get()) - .add(ModItems.RAW_NUGGET.get()) - .add(Items.COAL) - .add(Items.STICK) - .add(Items.COMPASS); - } +package xyz.sillyangel.nugget.datagen; + +import xyz.sillyangel.nugget.NuggetMod; +import xyz.sillyangel.nugget.item.ModItems; +import xyz.sillyangel.nugget.util.ModTags; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.ItemTagsProvider; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.common.data.ExistingFileHelper; +import org.jetbrains.annotations.Nullable; + +import java.util.concurrent.CompletableFuture; + +public class ModItemTagProvider extends ItemTagsProvider { + public ModItemTagProvider(PackOutput packOutput, CompletableFuture completableFuture, + CompletableFuture> lookupCompletableFuture, @Nullable ExistingFileHelper existingFileHelper) { + super(packOutput, completableFuture, lookupCompletableFuture, NuggetMod.MOD_ID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider pProvider) { + tag(ModTags.Items.TRANSFORMABLE_ITEMS) + .add(ModItems.NUGGET.get()) + .add(ModItems.RAW_NUGGET.get()) + .add(Items.COAL) + .add(Items.STICK) + .add(Items.COMPASS); + } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModRecipeProvider.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModRecipeProvider.java index 57f02b9..a114683 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/ModRecipeProvider.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModRecipeProvider.java @@ -1,76 +1,120 @@ -package xyz.sillyangel.nugget.datagen; - -import xyz.sillyangel.nugget.NuggetMod; -import xyz.sillyangel.nugget.block.ModBlocks; -import xyz.sillyangel.nugget.item.ModItems; -import net.minecraft.core.HolderLookup; -import net.minecraft.data.PackOutput; -import net.minecraft.data.recipes.*; -import net.minecraft.world.item.crafting.*; -import net.minecraft.world.level.ItemLike; -import net.minecraftforge.common.crafting.conditions.IConditionBuilder; - -import java.util.List; -import java.util.concurrent.CompletableFuture; - -public class ModRecipeProvider extends RecipeProvider implements IConditionBuilder { - public ModRecipeProvider(PackOutput pOutput, CompletableFuture pRegistries) { - super(pOutput, pRegistries); - } - - @Override - protected void buildRecipes(RecipeOutput pRecipeOutput) { - List NUGGET_SMELTABLES = List.of(ModItems.RAW_NUGGET.get(), - ModBlocks.NUGGET_ORE.get(), ModBlocks.NUGGET_DEEPSLATE_ORE.get()); - - ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModBlocks.NUGGET_BLOCK.get()) - .pattern("AAA") - .pattern("AAA") - .pattern("AAA") - .define('A', ModItems.NUGGET.get()) - .unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(pRecipeOutput); - - ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.NUGGET.get(), 9) - .requires(ModBlocks.NUGGET_BLOCK.get()) - .unlockedBy(getHasName(ModBlocks.NUGGET_BLOCK.get()), has(ModBlocks.NUGGET_BLOCK.get())).save(pRecipeOutput); - - // RAW NUGGET - - ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModBlocks.RAW_NUGGET_BLOCK.get()) - .pattern("AAA") - .pattern("AAA") - .pattern("AAA") - .define('A', ModItems.RAW_NUGGET.get()) - .unlockedBy(getHasName(ModItems.RAW_NUGGET.get()), has(ModItems.RAW_NUGGET.get())).save(pRecipeOutput); - - ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.RAW_NUGGET.get(), 9) - .requires(ModBlocks.RAW_NUGGET_BLOCK.get()) - .unlockedBy(getHasName(ModBlocks.RAW_NUGGET_BLOCK.get()), has(ModBlocks.RAW_NUGGET_BLOCK.get())).save(pRecipeOutput); - - - oreSmelting(pRecipeOutput, NUGGET_SMELTABLES, RecipeCategory.MISC, ModItems.NUGGET.get(), 0.25f, 200, "nugget"); - oreBlasting(pRecipeOutput, NUGGET_SMELTABLES, RecipeCategory.MISC, ModItems.NUGGET.get(), 0.25f, 100, "nugget"); - - - } - - protected static void oreSmelting(RecipeOutput recipeOutput, List pIngredients, RecipeCategory pCategory, ItemLike pResult, - float pExperience, int pCookingTIme, String pGroup) { - oreCooking(recipeOutput, RecipeSerializer.SMELTING_RECIPE, SmeltingRecipe::new, pIngredients, pCategory, pResult, - pExperience, pCookingTIme, pGroup, "_from_smelting"); - } - - protected static void oreBlasting(RecipeOutput recipeOutput, List pIngredients, RecipeCategory pCategory, ItemLike pResult, - float pExperience, int pCookingTime, String pGroup) { - oreCooking(recipeOutput, RecipeSerializer.BLASTING_RECIPE, BlastingRecipe::new, pIngredients, pCategory, pResult, - pExperience, pCookingTime, pGroup, "_from_blasting"); - } - - protected static void oreCooking(RecipeOutput recipeOutput, RecipeSerializer pCookingSerializer, AbstractCookingRecipe.Factory factory, - List pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTime, String pGroup, String pRecipeName) { - for(ItemLike itemlike : pIngredients) { - SimpleCookingRecipeBuilder.generic(Ingredient.of(itemlike), pCategory, pResult, pExperience, pCookingTime, pCookingSerializer, factory).group(pGroup).unlockedBy(getHasName(itemlike), has(itemlike)) - .save(recipeOutput, NuggetMod.MOD_ID + ":" + getItemName(pResult) + pRecipeName + "_" + getItemName(itemlike)); - } - } +package xyz.sillyangel.nugget.datagen; + +import net.minecraft.world.item.Items; +import xyz.sillyangel.nugget.NuggetMod; +import xyz.sillyangel.nugget.block.ModBlocks; +import xyz.sillyangel.nugget.item.ModItems; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.recipes.*; +import net.minecraft.world.item.crafting.*; +import net.minecraft.world.level.ItemLike; +import net.minecraftforge.common.crafting.conditions.IConditionBuilder; + +import java.util.List; +import java.util.concurrent.CompletableFuture; + +public class ModRecipeProvider extends RecipeProvider implements IConditionBuilder { + public ModRecipeProvider(PackOutput pOutput, CompletableFuture pRegistries) { + super(pOutput, pRegistries); + } + + @Override + protected void buildRecipes(RecipeOutput pRecipeOutput) { + List NUGGET_SMELTABLES = List.of(ModItems.RAW_NUGGET.get(), + ModBlocks.NUGGET_ORE.get(), ModBlocks.NUGGET_DEEPSLATE_ORE.get()); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModBlocks.NUGGET_BLOCK.get()) + .pattern("AAA") + .pattern("AAA") + .pattern("AAA") + .define('A', ModItems.NUGGET.get()) + .unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(pRecipeOutput); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.NUGGET.get(), 9) + .requires(ModBlocks.NUGGET_BLOCK.get()) + .unlockedBy(getHasName(ModBlocks.NUGGET_BLOCK.get()), has(ModBlocks.NUGGET_BLOCK.get())).save(pRecipeOutput); + + // RAW NUGGET + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModBlocks.RAW_NUGGET_BLOCK.get()) + .pattern("AAA") + .pattern("AAA") + .pattern("AAA") + .define('A', ModItems.RAW_NUGGET.get()) + .unlockedBy(getHasName(ModItems.RAW_NUGGET.get()), has(ModItems.RAW_NUGGET.get())).save(pRecipeOutput); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.RAW_NUGGET.get(), 9) + .requires(ModBlocks.RAW_NUGGET_BLOCK.get()) + .unlockedBy(getHasName(ModBlocks.RAW_NUGGET_BLOCK.get()), has(ModBlocks.RAW_NUGGET_BLOCK.get())).save(pRecipeOutput); + // TOOLS + + //SWORD + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, ModItems.NUGGET_SWORD.get()) + .pattern(" A ") + .pattern(" A ") + .pattern(" B ") + .define('A', ModItems.NUGGET.get()) + .define('B', Items.STICK) + .unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(pRecipeOutput); + //PICAXE + ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, ModItems.NUGGET_PICKAXE.get()) + .pattern("AAA") + .pattern(" B ") + .pattern(" B ") + .define('A', ModItems.NUGGET.get()) + .define('B', Items.STICK) + .unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(pRecipeOutput); + //AXE + ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, ModItems.NUGGET_AXE.get()) + .pattern(" AA") + .pattern(" BA") + .pattern(" B ") + .define('A', ModItems.NUGGET.get()) + .define('B', Items.STICK) + .unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(pRecipeOutput); + //SHOVEL + ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, ModItems.NUGGET_SHOVEL.get()) + .pattern(" A ") + .pattern(" B ") + .pattern(" B ") + .define('A', ModItems.NUGGET.get()) + .define('B', Items.STICK) + .unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(pRecipeOutput); + //HOE + ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, ModItems.NUGGET_HOE.get()) + .pattern(" AA") + .pattern(" B ") + .pattern(" B ") + .define('A', ModItems.NUGGET.get()) + .define('B', Items.STICK) + .unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(pRecipeOutput); + + // END OF TOOLS + + oreSmelting(pRecipeOutput, NUGGET_SMELTABLES, RecipeCategory.MISC, ModItems.NUGGET.get(), 0.25f, 200, "nugget"); + oreBlasting(pRecipeOutput, NUGGET_SMELTABLES, RecipeCategory.MISC, ModItems.NUGGET.get(), 0.25f, 100, "nugget"); + + + } + + protected static void oreSmelting(RecipeOutput recipeOutput, List pIngredients, RecipeCategory pCategory, ItemLike pResult, + float pExperience, int pCookingTIme, String pGroup) { + oreCooking(recipeOutput, RecipeSerializer.SMELTING_RECIPE, SmeltingRecipe::new, pIngredients, pCategory, pResult, + pExperience, pCookingTIme, pGroup, "_from_smelting"); + } + + protected static void oreBlasting(RecipeOutput recipeOutput, List pIngredients, RecipeCategory pCategory, ItemLike pResult, + float pExperience, int pCookingTime, String pGroup) { + oreCooking(recipeOutput, RecipeSerializer.BLASTING_RECIPE, BlastingRecipe::new, pIngredients, pCategory, pResult, + pExperience, pCookingTime, pGroup, "_from_blasting"); + } + + protected static void oreCooking(RecipeOutput recipeOutput, RecipeSerializer pCookingSerializer, AbstractCookingRecipe.Factory factory, + List pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTime, String pGroup, String pRecipeName) { + for(ItemLike itemlike : pIngredients) { + SimpleCookingRecipeBuilder.generic(Ingredient.of(itemlike), pCategory, pResult, pExperience, pCookingTime, pCookingSerializer, factory).group(pGroup).unlockedBy(getHasName(itemlike), has(itemlike)) + .save(recipeOutput, NuggetMod.MOD_ID + ":" + getItemName(pResult) + pRecipeName + "_" + getItemName(itemlike)); + } + } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java b/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java index 9bbf463..61d30d1 100644 --- a/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java +++ b/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java @@ -1,49 +1,49 @@ -package xyz.sillyangel.nugget.item; - -import net.minecraft.core.registries.Registries; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.RegistryObject; -import xyz.sillyangel.nugget.NuggetMod; -import xyz.sillyangel.nugget.block.ModBlocks; - -public class ModCreativeModeTabs { - public static final DeferredRegister CREATIVE_MODE_TABS = - DeferredRegister.create(Registries.CREATIVE_MODE_TAB, NuggetMod.MOD_ID); - - public static final RegistryObject NUGGET_ITEMS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_items_tab", - () -> CreativeModeTab.builder().icon(() -> new ItemStack(ModItems.NUGGET.get())) - .title(Component.translatable("creativetab.nuggetmod.nugget_items")) - .displayItems((itemDisplayParameters, output) -> { - output.accept(ModItems.NUGGET.get()); - output.accept(ModItems.RAW_NUGGET.get()); - - output.accept(ModItems.NUGGET_SWORD.get()); - output.accept(ModItems.NUGGET_PICKAXE.get()); - output.accept(ModItems.NUGGET_SHOVEL.get()); - output.accept(ModItems.NUGGET_AXE.get()); - output.accept(ModItems.NUGGET_HOE.get()); - - }).build()); - - public static final RegistryObject NUGGET_BLOCKS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_blocks_tab", - () -> CreativeModeTab.builder().icon(() -> new ItemStack(ModBlocks.NUGGET_BLOCK.get())) - .withTabsBefore(NUGGET_ITEMS_TAB.getId()) - .title(Component.translatable("creativetab.nuggetmod.nugget_blocks")) - .displayItems((itemDisplayParameters, output) -> { - output.accept(ModBlocks.NUGGET_BLOCK.get()); - output.accept(ModBlocks.RAW_NUGGET_BLOCK.get()); - output.accept(ModBlocks.NUGGET_ORE.get()); - output.accept(ModBlocks.NUGGET_DEEPSLATE_ORE.get()); - }).build()); - - - - - public static void register(IEventBus eventBus) { - CREATIVE_MODE_TABS.register(eventBus); - } -} +package xyz.sillyangel.nugget.item; + +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.RegistryObject; +import xyz.sillyangel.nugget.NuggetMod; +import xyz.sillyangel.nugget.block.ModBlocks; + +public class ModCreativeModeTabs { + public static final DeferredRegister CREATIVE_MODE_TABS = + DeferredRegister.create(Registries.CREATIVE_MODE_TAB, NuggetMod.MOD_ID); + + public static final RegistryObject NUGGET_ITEMS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_items_tab", + () -> CreativeModeTab.builder().icon(() -> new ItemStack(ModItems.NUGGET.get())) + .title(Component.translatable("creativetab.nuggetmod.nugget_items")) + .displayItems((itemDisplayParameters, output) -> { + output.accept(ModItems.NUGGET.get()); + output.accept(ModItems.RAW_NUGGET.get()); + + output.accept(ModItems.NUGGET_SWORD.get()); + output.accept(ModItems.NUGGET_PICKAXE.get()); + output.accept(ModItems.NUGGET_SHOVEL.get()); + output.accept(ModItems.NUGGET_AXE.get()); + output.accept(ModItems.NUGGET_HOE.get()); + + }).build()); + + public static final RegistryObject NUGGET_BLOCKS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_blocks_tab", + () -> CreativeModeTab.builder().icon(() -> new ItemStack(ModBlocks.NUGGET_BLOCK.get())) + .withTabsBefore(NUGGET_ITEMS_TAB.getId()) + .title(Component.translatable("creativetab.nuggetmod.nugget_blocks")) + .displayItems((itemDisplayParameters, output) -> { + output.accept(ModBlocks.NUGGET_BLOCK.get()); + output.accept(ModBlocks.RAW_NUGGET_BLOCK.get()); + output.accept(ModBlocks.NUGGET_ORE.get()); + output.accept(ModBlocks.NUGGET_DEEPSLATE_ORE.get()); + }).build()); + + + + + public static void register(IEventBus eventBus) { + CREATIVE_MODE_TABS.register(eventBus); + } +} diff --git a/src/main/java/xyz/sillyangel/nugget/item/ModFoodProperties.java b/src/main/java/xyz/sillyangel/nugget/item/ModFoodProperties.java index deb34bd..e1b93d9 100644 --- a/src/main/java/xyz/sillyangel/nugget/item/ModFoodProperties.java +++ b/src/main/java/xyz/sillyangel/nugget/item/ModFoodProperties.java @@ -1,8 +1,8 @@ -package xyz.sillyangel.nugget.item; - -import net.minecraft.world.food.FoodProperties; - -public class ModFoodProperties { - public static final FoodProperties Nugget = new FoodProperties.Builder().nutrition(5).saturationModifier(0.5f) - .build(); -} +package xyz.sillyangel.nugget.item; + +import net.minecraft.world.food.FoodProperties; + +public class ModFoodProperties { + public static final FoodProperties Nugget = new FoodProperties.Builder().nutrition(5).saturationModifier(0.5f) + .build(); +} diff --git a/src/main/java/xyz/sillyangel/nugget/item/ModItems.java b/src/main/java/xyz/sillyangel/nugget/item/ModItems.java index e94d16b..5ad4421 100644 --- a/src/main/java/xyz/sillyangel/nugget/item/ModItems.java +++ b/src/main/java/xyz/sillyangel/nugget/item/ModItems.java @@ -1,48 +1,48 @@ -package xyz.sillyangel.nugget.item; - -import xyz.sillyangel.nugget.NuggetMod; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraft.network.chat.Component; -import net.minecraftforge.registries.RegistryObject; -import net.minecraft.world.item.*; -import java.util.List; - -public class ModItems { - public static final DeferredRegister ITEMS = - DeferredRegister.create(ForgeRegistries.ITEMS, NuggetMod.MOD_ID); - - public static final RegistryObject NUGGET = ITEMS.register("nugget", - () -> new Item(new Item.Properties().food(ModFoodProperties.Nugget)) { - @Override - public void appendHoverText(ItemStack pStack, TooltipContext pContext, List pTooltipComponent, TooltipFlag pTooltipFlag) { - pTooltipComponent.add(Component.translatable("item.nuggetmod.nugget.tooltip")); - super.appendHoverText(pStack, pContext, pTooltipComponent, pTooltipFlag); - } - }); - - public static final RegistryObject RAW_NUGGET = ITEMS.register("raw_nugget", - () -> new Item(new Item.Properties())); - - public static final RegistryObject NUGGET_SWORD = ITEMS.register("nugget_sword", - () -> new SwordItem(ModToolTiers.NUGGET, new Item.Properties() - .attributes(SwordItem.createAttributes(ModToolTiers.NUGGET, 3, -2.4f)))); - public static final RegistryObject NUGGET_PICKAXE = ITEMS.register("nugget_pickaxe", - () -> new PickaxeItem(ModToolTiers.NUGGET, new Item.Properties() - .attributes(PickaxeItem.createAttributes(ModToolTiers.NUGGET, 1, -2.8f)))); - public static final RegistryObject NUGGET_SHOVEL = ITEMS.register("nugget_shovel", - () -> new ShovelItem(ModToolTiers.NUGGET, new Item.Properties() - .attributes(ShovelItem.createAttributes(ModToolTiers.NUGGET, 1.5f, -3.0f)))); - public static final RegistryObject NUGGET_AXE = ITEMS.register("nugget_axe", - () -> new AxeItem(ModToolTiers.NUGGET, new Item.Properties() - .attributes(AxeItem.createAttributes(ModToolTiers.NUGGET, 6, -3.2f)))); - public static final RegistryObject NUGGET_HOE = ITEMS.register("nugget_hoe", - () -> new HoeItem(ModToolTiers.NUGGET, new Item.Properties() - .attributes(HoeItem.createAttributes(ModToolTiers.NUGGET, 0, -3.0f)))); - - public static void register(IEventBus eventBus) { - ITEMS.register(eventBus); - } - -} +package xyz.sillyangel.nugget.item; + +import xyz.sillyangel.nugget.NuggetMod; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraft.network.chat.Component; +import net.minecraftforge.registries.RegistryObject; +import net.minecraft.world.item.*; +import java.util.List; + +public class ModItems { + public static final DeferredRegister ITEMS = + DeferredRegister.create(ForgeRegistries.ITEMS, NuggetMod.MOD_ID); + + public static final RegistryObject NUGGET = ITEMS.register("nugget", + () -> new Item(new Item.Properties().food(ModFoodProperties.Nugget)) { + @Override + public void appendHoverText(ItemStack pStack, TooltipContext pContext, List pTooltipComponent, TooltipFlag pTooltipFlag) { + pTooltipComponent.add(Component.translatable("item.nuggetmod.nugget.tooltip")); + super.appendHoverText(pStack, pContext, pTooltipComponent, pTooltipFlag); + } + }); + + public static final RegistryObject RAW_NUGGET = ITEMS.register("raw_nugget", + () -> new Item(new Item.Properties())); + + public static final RegistryObject NUGGET_SWORD = ITEMS.register("nugget_sword", + () -> new SwordItem(ModToolTiers.NUGGET, new Item.Properties() + .attributes(SwordItem.createAttributes(ModToolTiers.NUGGET, 3, -2.4f)))); + public static final RegistryObject NUGGET_PICKAXE = ITEMS.register("nugget_pickaxe", + () -> new PickaxeItem(ModToolTiers.NUGGET, new Item.Properties() + .attributes(PickaxeItem.createAttributes(ModToolTiers.NUGGET, 1, -2.8f)))); + public static final RegistryObject NUGGET_SHOVEL = ITEMS.register("nugget_shovel", + () -> new ShovelItem(ModToolTiers.NUGGET, new Item.Properties() + .attributes(ShovelItem.createAttributes(ModToolTiers.NUGGET, 1.5f, -3.0f)))); + public static final RegistryObject NUGGET_AXE = ITEMS.register("nugget_axe", + () -> new AxeItem(ModToolTiers.NUGGET, new Item.Properties() + .attributes(AxeItem.createAttributes(ModToolTiers.NUGGET, 6, -3.2f)))); + public static final RegistryObject NUGGET_HOE = ITEMS.register("nugget_hoe", + () -> new HoeItem(ModToolTiers.NUGGET, new Item.Properties() + .attributes(HoeItem.createAttributes(ModToolTiers.NUGGET, 0, -3.0f)))); + + public static void register(IEventBus eventBus) { + ITEMS.register(eventBus); + } + +} diff --git a/src/main/java/xyz/sillyangel/nugget/item/ModToolTiers.java b/src/main/java/xyz/sillyangel/nugget/item/ModToolTiers.java index fd698b9..a239a99 100644 --- a/src/main/java/xyz/sillyangel/nugget/item/ModToolTiers.java +++ b/src/main/java/xyz/sillyangel/nugget/item/ModToolTiers.java @@ -1,12 +1,12 @@ -package xyz.sillyangel.nugget.item; - -import net.minecraft.world.item.Tier; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraftforge.common.ForgeTier; -import xyz.sillyangel.nugget.util.ModTags; - -public class ModToolTiers { - public static final Tier NUGGET = new ForgeTier(1500, 4.5f, 3.5f, 25, - ModTags.Blocks.NEEDS_NUGGET_TOOL, () -> Ingredient.of(ModItems.NUGGET.get()), - ModTags.Blocks.INCORRECT_FOR_NUGGET_TOOL); -} +package xyz.sillyangel.nugget.item; + +import net.minecraft.world.item.Tier; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraftforge.common.ForgeTier; +import xyz.sillyangel.nugget.util.ModTags; + +public class ModToolTiers { + public static final Tier NUGGET = new ForgeTier(1500, 4.5f, 3.5f, 22, + ModTags.Blocks.NEEDS_NUGGET_TOOL, () -> Ingredient.of(ModItems.NUGGET.get()), + ModTags.Blocks.INCORRECT_FOR_NUGGET_TOOL); +} diff --git a/src/main/java/xyz/sillyangel/nugget/util/ModTags.java b/src/main/java/xyz/sillyangel/nugget/util/ModTags.java index e96793c..8af67ee 100644 --- a/src/main/java/xyz/sillyangel/nugget/util/ModTags.java +++ b/src/main/java/xyz/sillyangel/nugget/util/ModTags.java @@ -1,28 +1,28 @@ -package xyz.sillyangel.nugget.util; - -import xyz.sillyangel.nugget.NuggetMod; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.ItemTags; -import net.minecraft.tags.TagKey; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; - -public class ModTags { - public static class Blocks { - public static final TagKey NEEDS_NUGGET_TOOL = createTag("needs_nugget_tool"); - public static final TagKey INCORRECT_FOR_NUGGET_TOOL = createTag("incorrect_for_nugget_tool"); - - private static TagKey createTag(String name) { - return BlockTags.create(ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); - } - } - - public static class Items { - public static final TagKey TRANSFORMABLE_ITEMS = createTag("transformable_items"); - - private static TagKey createTag(String name) { - return ItemTags.create(ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); - } - } +package xyz.sillyangel.nugget.util; + +import xyz.sillyangel.nugget.NuggetMod; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.ItemTags; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; + +public class ModTags { + public static class Blocks { + public static final TagKey NEEDS_NUGGET_TOOL = createTag("needs_nugget_tool"); + public static final TagKey INCORRECT_FOR_NUGGET_TOOL = createTag("incorrect_for_nugget_tool"); + + private static TagKey createTag(String name) { + return BlockTags.create(ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); + } + } + + public static class Items { + public static final TagKey TRANSFORMABLE_ITEMS = createTag("transformable_items"); + + private static TagKey createTag(String name) { + return ItemTags.create(ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/lang/en_us.json b/src/main/resources/assets/nuggetmod/lang/en_us.json index 5dce4e7..f2ffd6c 100644 --- a/src/main/resources/assets/nuggetmod/lang/en_us.json +++ b/src/main/resources/assets/nuggetmod/lang/en_us.json @@ -1,14 +1,20 @@ -{ - "item.nuggetmod.raw_nugget": "Raw Nugget", - "item.nuggetmod.nugget": "nugget", - - "block.nuggetmod.nugget_block": "Nugget Block", - "block.nuggetmod.raw_nugget_block": "Raw Nugget Block", - "block.nuggetmod.nugget_ore": "Nugget Ore", - "block.nuggetmod.nugget_deepslate_ore": "Nugget Deepslate Ore", - - "creativetab.nuggetmod.nugget_items": "Nugget Mod Items", - "creativetab.nuggetmod.nugget_blocks": "Nugget Mod Blocks", - - "item.nuggetmod.nugget.tooltip": "THE NUGGET" +{ + "item.nuggetmod.raw_nugget": "Raw Nugget", + "item.nuggetmod.nugget": "nugget", + + "block.nuggetmod.nugget_block": "Nugget Block", + "block.nuggetmod.raw_nugget_block": "Raw Nugget Block", + "block.nuggetmod.nugget_ore": "Nugget Ore", + "block.nuggetmod.nugget_deepslate_ore": "Nugget Deepslate Ore", + + "item.nuggetmod.nugget_sword": "Nugget Sword", + "item.nuggetmod.nugget_pickaxe": "Nugget Pickaxe", + "item.nuggetmod.nugget_shovel": "Nugget Shovel", + "item.nuggetmod.nugget_axe": "Nugget Axe", + "item.nuggetmod.nugget_hoe": "Nugget Hoe", + + "creativetab.nuggetmod.nugget_items": "Nugget Mod Items", + "creativetab.nuggetmod.nugget_blocks": "Nugget Mod Blocks", + + "item.nuggetmod.nugget.tooltip": "THE NUGGET" } \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/textures/item/nugget_axe.png b/src/main/resources/assets/nuggetmod/textures/item/nugget_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..a4f67d71f2c8a0e8704e0ed1e0f320036d8249be GIT binary patch literal 3199 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nuggetmod/textures/item/nugget_pickaxe.png b/src/main/resources/assets/nuggetmod/textures/item/nugget_pickaxe.png new file mode 100644 index 0000000000000000000000000000000000000000..07d744d14b314754fbe2f4f23a263b01cda0cfc6 GIT binary patch literal 3166 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 Ef_tn2`2YX_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nuggetmod/textures/item/nugget_shovel.png b/src/main/resources/assets/nuggetmod/textures/item/nugget_shovel.png new file mode 100644 index 0000000000000000000000000000000000000000..d76bae04d6dbbaceead286945dfd8b0ff4bddd01 GIT binary patch literal 3133 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