diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..d0b50f4 --- /dev/null +++ b/build.gradle @@ -0,0 +1,6 @@ +plugins { + // see https://fabricmc.net/develop/ for new versions + id 'net.fabricmc.fabric-loom' version '1.15-SNAPSHOT' apply false + // see https://projects.neoforged.net/neoforged/moddevgradle for new versions + id 'net.neoforged.moddev' version '2.0.141' apply false +} diff --git a/build.gradle.kts b/build.gradle.kts deleted file mode 100644 index 4aaf342..0000000 --- a/build.gradle.kts +++ /dev/null @@ -1,450 +0,0 @@ -import groovy.xml.XmlSlurper -import org.codehaus.groovy.runtime.ResourceGroovyMethods -import java.io.FileInputStream -import java.nio.file.Files -import java.util.Properties -import org.kohsuke.github.GHReleaseBuilder -import org.kohsuke.github.GitHub -import java.io.FileNotFoundException -import java.net.URL - -buildscript { - repositories { - gradlePluginPortal() - } - dependencies { - classpath("org.kohsuke:github-api:+") - } -} - -plugins { - id("net.fabricmc.fabric-loom") version("1.15-SNAPSHOT") - id("org.quiltmc.gradle.licenser") version("+") - id("org.ajoberstar.grgit") version("+") - id("com.modrinth.minotaur") version("+") - `maven-publish` - eclipse - idea - `java-library` - java -} - -val githubActions: Boolean = System.getenv("GITHUB_ACTIONS") == "true" -val licenseChecks: Boolean = githubActions - -val minecraft_version: String by project -val quilt_mappings: String by project -val parchment_mappings: String by project -val loader_version: String by project - -val mod_id: String by project -val mod_version: String by project -val maven_group: String by project -val archives_base_name: String by project - -val fabric_api_version: String by project - -val sodium_version: String by project -val run_sodium: String by project -val shouldRunSodium = run_sodium == "true" - -base { - archivesName = archives_base_name -} - -version = getModVersion() -group = maven_group - -val release = findProperty("releaseType") == "stable" - -val datagen by sourceSets.registering { - compileClasspath += sourceSets.main.get().compileClasspath - runtimeClasspath += sourceSets.main.get().runtimeClasspath -} - -loom { - runtimeOnlyLog4j.set(true) - - accessWidenerPath.set(file("src/main/resources/$mod_id.classtweaker")) - interfaceInjection { - // When enabled, injected interfaces from dependencies will be applied. - enableDependencyInterfaceInjection.set(true) - } -} - -sourceSets { - main { - resources { - srcDirs("src/main/generated") - } - } -} - -loom { - runs { - register("datagen") { - client() - name("Data Generation") - source(datagen.get()) - vmArg("-Dfabric-api.datagen") - vmArg("-Dfabric-api.datagen.output-dir=${file("src/main/generated")}") - //vmArg("-Dfabric-api.datagen.strict-validation") - vmArg("-Dfabric-api.datagen.modid=$mod_id") - - ideConfigGenerated(true) - runDir = "build/datagen" - } - - named("client") { - ideConfigGenerated(true) - } - named("server") { - ideConfigGenerated(true) - } - } -} - -val includeImplementation by configurations.creating - -configurations { - include { - extendsFrom(includeImplementation) - } - implementation { - extendsFrom(includeImplementation) - } -} - -repositories { - // Add repositories to retrieve artifacts from in here. - // You should only use this when depending on other mods because - // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. - maven("https://jitpack.io") - exclusiveContent { - forRepository { - maven("https://api.modrinth.com/maven") { - name = "Modrinth" - } - } - filter { - includeGroup("maven.modrinth") - } - } - maven("https://maven.terraformersmc.com") { - content { - includeGroup("com.terraformersmc") - } - } - maven("https://maven.shedaniel.me/") - maven("https://maven.blamejared.com") - maven("https://maven.minecraftforge.net/") - maven("https://maven.parchmentmc.org") - maven("https://maven.quiltmc.org/repository/release") { - name = "Quilt" - } - maven("https://maven.jamieswhiteshirt.com/libs-release") { - content { - includeGroup("com.jamieswhiteshirt") - } - } - maven("https://maven.frozenblock.net/release") { - name = "FrozenBlock" - } - - flatDir { - dirs("libs") - } - mavenCentral() -} - -dependencies { - // To change the versions, see the gradle.properties file - minecraft("com.mojang:minecraft:$minecraft_version") - implementation("net.fabricmc:fabric-loader:$loader_version") - implementation("net.fabricmc.fabric-api:fabric-api:$fabric_api_version") - - // Sodium - if (shouldRunSodium) - implementation("maven.modrinth:sodium:${sodium_version}") - else - compileOnly("maven.modrinth:sodium:${sodium_version}") - - "datagenImplementation"(sourceSets.main.get().output) -} - -tasks { - processResources { - val properties = mapOf( - "mod_id" to mod_id, - "version" to version, - "minecraft_version" to "~26.1-",//minecraft_version, - - "fabric_api_version" to ">=$fabric_api_version" - ) - - properties.forEach { (a, b) -> inputs.property(a, b) } - - filesNotMatching( - listOf( - "**/*.java", - "**/sounds.json", - "**/lang/*.json", - "**/.cache/*", - "**/*.accesswidener", - "**/*.nbt", - "**/*.png", - "**/*.ogg", - "**/*.mixins.json", - "**/*.zip" - ) - ) { - expand(properties) - } - } - - license { - if (licenseChecks) { - rule(file("codeformat/HEADER")) - - include("**/*.java") - } - } - - - register("javadocJar", Jar::class) { - dependsOn(javadoc) - archiveClassifier.set("javadoc") - from(javadoc.get().destinationDir) - } - - register("sourcesJar", Jar::class) { - dependsOn(classes) - archiveClassifier.set("sources") - from(sourceSets.main.get().allSource) - } - - withType(JavaCompile::class) { - options.encoding = "UTF-8" - // Minecraft 26.1 (26.1-snapshot-1) upwards uses Java 25. - options.release.set(25) - options.isFork = true - options.isIncremental = true - } - - withType(Test::class) { - maxParallelForks = Runtime.getRuntime().availableProcessors().div(2) - } -} - -val applyLicenses: Task by tasks -val test: Task by tasks -val runClient: Task by tasks -val runDatagen: Task by tasks - -val jar: Jar by tasks -val sourcesJar: Jar by tasks -val javadocJar: Jar by tasks - -java { - sourceCompatibility = JavaVersion.VERSION_25 - targetCompatibility = JavaVersion.VERSION_25 - - // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task - // if it is present. - // If you remove this line, sources will not be generated. - withSourcesJar() -} - -artifacts { - archives(sourcesJar) - archives(javadocJar) -} - -fun getModVersion(): String { - var version = "$mod_version-mc$minecraft_version" - - if (release != null && !release) { - //version += "-unstable" - } - - return version -} - -val env = System.getenv() - -publishing { - val mavenUrl = env["MAVEN_URL"] - val mavenUsername = env["MAVEN_USERNAME"] - val mavenPassword = env["MAVEN_PASSWORD"] - - val release = mavenUrl?.contains("release") - val snapshot = mavenUrl?.contains("snapshot") - - val publishingValid = rootProject == project && !mavenUrl.isNullOrEmpty() && !mavenUsername.isNullOrEmpty() && !mavenPassword.isNullOrEmpty() - - val publishVersion = makeModrinthVersion(mod_version) - val snapshotPublishVersion = publishVersion + if (snapshot == true) "-SNAPSHOT" else "" - - val publishGroup = rootProject.group.toString().trim(' ') - - val hash = if (grgit.branch != null && grgit.branch.current() != null) grgit.branch.current().fullName else "" - - publications { - var publish = true - try { - if (publishingValid) { - try { - val xml = ResourceGroovyMethods.getText(URL("$mavenUrl/${publishGroup.replace('.', '/')}/$snapshotPublishVersion/$publishVersion.pom")) - val metadata = XmlSlurper().parseText(xml) - - if (metadata.getProperty("hash").equals(hash)) { - publish = false - } - } catch (ignored: FileNotFoundException) { - // No existing version was published, so we can publish - } - } else { - publish = false - } - } catch (e: Exception) { - publish = false - println("Unable to publish to maven. The maven server may be offline.") - } - - if (publish) { - create("mavenJava") { - from(components["java"]) - - artifact(javadocJar) - - pom { - groupId = publishGroup - artifactId = rootProject.base.archivesName.get().lowercase() - version = snapshotPublishVersion - withXml { - asNode().appendNode("properties").appendNode("hash", hash) - } - } - } - } - } - repositories { - - if (publishingValid) { - maven { - url = uri(mavenUrl!!) - - credentials { - username = mavenUsername - password = mavenPassword - } - } - } else { - mavenLocal() - } - } -} - -extra { - val properties = Properties() - properties.load(FileInputStream(file("gradle/publishing.properties"))) - properties.forEach { (a, b) -> - project.extra[a as String] = b as String - } -} - -val modrinth_id: String by extra -val release_type: String by extra -val changelog_file: String by extra - -val modrinth_version = makeModrinthVersion(mod_version) -val display_name = makeName(mod_version) -val changelog_text = getChangelog(file(changelog_file)) - -fun makeName(version: String): String { - return "${version} (${minecraft_version})" -} - -fun makeModrinthVersion(version: String): String { - return "$version-mc${minecraft_version}" -} - -fun getChangelog(changelogFile: File): String { - val text = Files.readString(changelogFile.toPath()) - val split = text.split("-----------------") - if (split.size != 2) - throw IllegalStateException("Malformed changelog") - return split[1].trim() -} - -fun getBranch(): String { - val env = System.getenv() - var branch = env["GITHUB_REF"] - if (branch != null && branch != "") { - return branch.substring(branch.lastIndexOf("/") + 1) - } - - if (grgit == null) { - return "unknown" - } - - branch = grgit.branch.current().name - return branch.substring(branch.lastIndexOf("/") + 1) -} - -modrinth { - token.set(System.getenv("MODRINTH_TOKEN")) - projectId.set(modrinth_id) - versionNumber.set(modrinth_version) - versionName.set(display_name) - versionType.set(release_type) - changelog.set(changelog_text) - uploadFile.set(jar) - gameVersions.set(listOf(minecraft_version)) - loaders.set(listOf("fabric", "quilt")) - additionalFiles.set( - listOf( - //tasks.remapSourcesJar.get(), - //javadocJar - ) - ) - dependencies { - required.project("fabric-api") - } -} - - -val github by tasks.register("github") { - dependsOn(jar) - dependsOn(sourcesJar) - dependsOn(javadocJar) - - val env = System.getenv() - val token = env["GITHUB_TOKEN"] - val repoVar = env["GITHUB_REPOSITORY"] - onlyIf { - token != null && token != "" - } - - doLast { - val github = GitHub.connectUsingOAuth(token) - val repository = github.getRepository(repoVar) - - val releaseBuilder = GHReleaseBuilder(repository, makeModrinthVersion(mod_version)) - releaseBuilder.name(makeName(mod_version)) - releaseBuilder.body(changelog_text) - releaseBuilder.commitish(getBranch()) - releaseBuilder.prerelease(release_type != "release") - - val ghRelease = releaseBuilder.create() - ghRelease.uploadAsset(jar.archiveFile.get().asFile, "application/java-archive") - ghRelease.uploadAsset(sourcesJar.archiveFile.get().asFile, "application/java-archive") - ghRelease.uploadAsset(javadocJar.outputs.files.singleFile, "application/java-archive") - } -} - -val publishMod by tasks.register("publishMod") { - dependsOn(tasks.publish) - dependsOn(github) - dependsOn(tasks.modrinth) -} diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle new file mode 100644 index 0000000..6784052 --- /dev/null +++ b/buildSrc/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'groovy-gradle-plugin' +} diff --git a/buildSrc/src/main/groovy/multiloader-common.gradle b/buildSrc/src/main/groovy/multiloader-common.gradle new file mode 100644 index 0000000..0e689ec --- /dev/null +++ b/buildSrc/src/main/groovy/multiloader-common.gradle @@ -0,0 +1,103 @@ +plugins { + id 'java-library' + id 'maven-publish' +} + +base { + archivesName = "${rootProject.name}-${mod_version}-${project.name}" +} + +java { + toolchain.languageVersion = JavaLanguageVersion.of(java_version) + withSourcesJar() + withJavadocJar() +} + +repositories { + mavenCentral() + maven { url = "https://api.modrinth.com/maven" } + exclusiveContent { + forRepository { + maven { + name = 'Sponge' + url = 'https://repo.spongepowered.org/repository/maven-public' + } + } + filter { includeGroupAndSubgroups('org.spongepowered') } + } + maven { + name = 'BlameJared' + url = 'https://maven.blamejared.com' + } +} + +sourcesJar { + from(rootProject.file('LICENSE')) { + rename { "${it}_${mod_name}" } + } +} + +jar { + from(rootProject.file('LICENSE')) { + rename { "${it}_${mod_name}" } + } + + manifest { + attributes([ + 'Specification-Title' : mod_name, + 'Specification-Vendor' : mod_author, + 'Specification-Version' : project.jar.archiveVersion, + 'Implementation-Title' : project.name, + 'Implementation-Version': project.jar.archiveVersion, + 'Implementation-Vendor' : mod_author, + 'Built-On-Minecraft' : minecraft_version + ]) + } +} + +processResources { + var expandProps = [ + 'mod_version' : mod_version, + 'group' : project.group, + 'minecraft_version' : minecraft_version, + 'neoforge_minecraft_version' : neoforge_minecraft_version, + 'fabric_minecraft_version' : fabric_minecraft_version, + 'fabric_api' : fabric_api, + 'fabric_loader' : fabric_loader, + 'mod_name' : mod_name, + 'mod_author' : mod_author, + 'mod_id' : mod_id, + 'license' : license, + 'mod_description' : mod_description, + 'neoforge_version' : neoforge_version, + 'java_version' : java_version + ] + + var jsonExpandProps = expandProps.collectEntries { + key, value -> [(key): value instanceof String ? value.replace("\n", "\\\\n") : value] + } + + filesMatching(['META-INF/mods.toml', 'META-INF/neoforge.mods.toml']) { + expand expandProps + } + + filesMatching(['pack.mcmeta', 'fabric.mod.json', '*.mixins.json']) { + expand jsonExpandProps + } + + inputs.properties(expandProps) +} + +publishing { + publications { + register('mavenJava', MavenPublication) { + artifactId base.archivesName.get() + from components.java + } + } + repositories { + maven { + url System.getenv('local_maven_url') + } + } +} diff --git a/buildSrc/src/main/groovy/multiloader-loader.gradle b/buildSrc/src/main/groovy/multiloader-loader.gradle new file mode 100644 index 0000000..e025746 --- /dev/null +++ b/buildSrc/src/main/groovy/multiloader-loader.gradle @@ -0,0 +1,45 @@ +plugins { + id 'multiloader-common' +} + +configurations { + commonJava{ + canBeResolved = true + } + commonResources{ + canBeResolved = true + } +} + +dependencies { + compileOnly(project(':common')) { + def loaderAttribute = Attribute.of('io.github.mcgradleconventions.loader', String) + attributes { + attribute(loaderAttribute, 'common') + } + } + commonJava project(path: ':common', configuration: 'commonJava') + commonResources project(path: ':common', configuration: 'commonResources') +} + +tasks.named('compileJava', JavaCompile) { + dependsOn(configurations.commonJava) + source(configurations.commonJava) +} + +processResources { + dependsOn(configurations.commonResources) + from(configurations.commonResources) +} + +tasks.named('javadoc', Javadoc).configure { + dependsOn(configurations.commonJava) + source(configurations.commonJava) +} + +tasks.named('sourcesJar', Jar) { + dependsOn(configurations.commonJava) + from(configurations.commonJava) + dependsOn(configurations.commonResources) + from(configurations.commonResources) +} diff --git a/common/build.gradle b/common/build.gradle new file mode 100644 index 0000000..49516eb --- /dev/null +++ b/common/build.gradle @@ -0,0 +1,56 @@ +plugins { + id 'multiloader-common' + id 'net.neoforged.moddev' +} + +neoForge { + neoFormVersion = neo_form_version + // Automatically enable AccessTransformers if the file exists + def at = file('src/main/resources/META-INF/accesstransformer.cfg') + if (at.exists()) { + accessTransformers.from(at.absolutePath) + } +} + +dependencies { + compileOnly "org.spongepowered:mixin:0.8.5" + compileOnly "io.github.llamalad7:mixinextras-common:0.3.5" + annotationProcessor "io.github.llamalad7:mixinextras-common:0.3.5" + implementation "org.ow2.asm:asm:9.9.1" + implementation "org.ow2.asm:asm-tree:9.9.1" +} + +configurations { + commonJava { + canBeResolved = false + canBeConsumed = true + } + commonResources { + canBeResolved = false + canBeConsumed = true + } +} + +artifacts { + commonJava sourceSets.main.java.sourceDirectories.singleFile + commonResources sourceSets.main.resources.sourceDirectories.singleFile +} + +// Implement mcgradleconventions loader attribute +def loaderAttribute = Attribute.of('io.github.mcgradleconventions.loader', String) +['apiElements', 'runtimeElements', 'sourcesElements', 'javadocElements'].each { variant -> + configurations.named("$variant") { + attributes { + attribute(loaderAttribute, 'common') + } + } +} +sourceSets.configureEach { + [it.compileClasspathConfigurationName, it.runtimeClasspathConfigurationName].each { variant-> + configurations.named("$variant") { + attributes { + attribute(loaderAttribute, 'common') + } + } + } +} diff --git a/src/main/java/net/frozenblock/trimpatcher/TPConstants.java b/common/src/main/java/net/frozenblock/trimpatcher/TPConstants.java similarity index 93% rename from src/main/java/net/frozenblock/trimpatcher/TPConstants.java rename to common/src/main/java/net/frozenblock/trimpatcher/TPConstants.java index d927f9d..1c95601 100644 --- a/src/main/java/net/frozenblock/trimpatcher/TPConstants.java +++ b/common/src/main/java/net/frozenblock/trimpatcher/TPConstants.java @@ -17,7 +17,6 @@ package net.frozenblock.trimpatcher; -import net.fabricmc.loader.api.FabricLoader; import net.minecraft.resources.Identifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -31,7 +30,7 @@ public final class TPConstants { *

* It's smart to use this for at least registries. */ - public static boolean UNSTABLE_LOGGING = FabricLoader.getInstance().isDevelopmentEnvironment(); + public static boolean UNSTABLE_LOGGING = false; // LOGGING public static void log(String message, boolean shouldLog) { diff --git a/src/main/java/net/frozenblock/trimpatcher/TrimPatcherClient.java b/common/src/main/java/net/frozenblock/trimpatcher/TrimPatcherClient.java similarity index 90% rename from src/main/java/net/frozenblock/trimpatcher/TrimPatcherClient.java rename to common/src/main/java/net/frozenblock/trimpatcher/TrimPatcherClient.java index 9fd68d2..5a089ab 100644 --- a/src/main/java/net/frozenblock/trimpatcher/TrimPatcherClient.java +++ b/common/src/main/java/net/frozenblock/trimpatcher/TrimPatcherClient.java @@ -22,19 +22,14 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import net.fabricmc.api.ClientModInitializer; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.minecraft.resources.Identifier; -@Environment(EnvType.CLIENT) -public final class TrimPatcherClient implements ClientModInitializer { +public final class TrimPatcherClient { public static final Identifier TRIM_PALETTE_KEY = Identifier.withDefaultNamespace("trims/color_palettes/trim_palette"); private static final Map FOUND_OVERLAY_TEXTURES = new ConcurrentHashMap<>(); private static final Map FOUND_DARKER_OVERLAY_TEXTURES = new ConcurrentHashMap<>(); - @Override - public void onInitializeClient() {} + public static void init() {} public synchronized static List getApplicableOverlayMaterials(String guessedMaterial) { TPConstants.log("Armor material guess " + guessedMaterial, TPConstants.UNSTABLE_LOGGING); diff --git a/src/main/java/net/frozenblock/trimpatcher/client/renderer/item/FakeUnbakedItemModel.java b/common/src/main/java/net/frozenblock/trimpatcher/client/renderer/item/FakeUnbakedItemModel.java similarity index 92% rename from src/main/java/net/frozenblock/trimpatcher/client/renderer/item/FakeUnbakedItemModel.java rename to common/src/main/java/net/frozenblock/trimpatcher/client/renderer/item/FakeUnbakedItemModel.java index 5223f21..2d1eb7f 100644 --- a/src/main/java/net/frozenblock/trimpatcher/client/renderer/item/FakeUnbakedItemModel.java +++ b/common/src/main/java/net/frozenblock/trimpatcher/client/renderer/item/FakeUnbakedItemModel.java @@ -18,12 +18,9 @@ package net.frozenblock.trimpatcher.client.renderer.item; import com.mojang.serialization.MapCodec; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.minecraft.client.renderer.item.ItemModel; import org.joml.Matrix4fc; -@Environment(EnvType.CLIENT) public record FakeUnbakedItemModel(ItemModel wrapped) implements ItemModel.Unbaked { @Override diff --git a/src/main/java/net/frozenblock/trimpatcher/client/resources/model/ModelStateWrapper.java b/common/src/main/java/net/frozenblock/trimpatcher/client/resources/model/ModelStateWrapper.java similarity index 94% rename from src/main/java/net/frozenblock/trimpatcher/client/resources/model/ModelStateWrapper.java rename to common/src/main/java/net/frozenblock/trimpatcher/client/resources/model/ModelStateWrapper.java index 9accd4c..16b12d8 100644 --- a/src/main/java/net/frozenblock/trimpatcher/client/resources/model/ModelStateWrapper.java +++ b/common/src/main/java/net/frozenblock/trimpatcher/client/resources/model/ModelStateWrapper.java @@ -18,13 +18,10 @@ package net.frozenblock.trimpatcher.client.resources.model; import com.mojang.math.Transformation; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.minecraft.client.renderer.block.dispatch.ModelState; import net.minecraft.core.Direction; import org.joml.Matrix4fc; -@Environment(EnvType.CLIENT) public class ModelStateWrapper implements ModelState { private final String name; private final ModelState wrapped; diff --git a/src/main/java/net/frozenblock/trimpatcher/client/util/TrimPaths.java b/common/src/main/java/net/frozenblock/trimpatcher/client/util/TrimPaths.java similarity index 95% rename from src/main/java/net/frozenblock/trimpatcher/client/util/TrimPaths.java rename to common/src/main/java/net/frozenblock/trimpatcher/client/util/TrimPaths.java index 55523be..bf73dd3 100644 --- a/src/main/java/net/frozenblock/trimpatcher/client/util/TrimPaths.java +++ b/common/src/main/java/net/frozenblock/trimpatcher/client/util/TrimPaths.java @@ -21,13 +21,10 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.frozenblock.trimpatcher.TPConstants; import net.minecraft.client.data.models.ItemModelGenerators; import net.minecraft.resources.Identifier; -@Environment(EnvType.CLIENT) public class TrimPaths { public static List TRIM_AUTO_MODEL_ENDING_TERMS = new ArrayList<>(); public static Map ARMOR_TO_OVERLAY_PREFIX = new Object2ObjectLinkedOpenHashMap<>(); diff --git a/src/main/java/net/frozenblock/trimpatcher/mixin/client/BlockModelWrapperUnbakedMixin.java b/common/src/main/java/net/frozenblock/trimpatcher/mixin/client/BlockModelWrapperUnbakedMixin.java similarity index 97% rename from src/main/java/net/frozenblock/trimpatcher/mixin/client/BlockModelWrapperUnbakedMixin.java rename to common/src/main/java/net/frozenblock/trimpatcher/mixin/client/BlockModelWrapperUnbakedMixin.java index 8841763..7c48ed9 100644 --- a/src/main/java/net/frozenblock/trimpatcher/mixin/client/BlockModelWrapperUnbakedMixin.java +++ b/common/src/main/java/net/frozenblock/trimpatcher/mixin/client/BlockModelWrapperUnbakedMixin.java @@ -27,8 +27,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.frozenblock.trimpatcher.TrimPatcherClient; import net.frozenblock.trimpatcher.client.renderer.item.FakeUnbakedItemModel; import net.frozenblock.trimpatcher.client.resources.model.ModelStateWrapper; @@ -39,7 +37,6 @@ import net.minecraft.client.renderer.item.ItemModel; import net.minecraft.client.renderer.item.SelectItemModel; import net.minecraft.client.renderer.item.properties.select.TrimMaterialProperty; -import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.resources.model.ModelBaker; import net.minecraft.client.resources.model.ResolvedModel; import net.minecraft.client.resources.model.geometry.QuadCollection; @@ -55,7 +52,6 @@ import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; -@Environment(EnvType.CLIENT) @Mixin(value = CuboidItemModelWrapper.Unbaked.class, priority = 898) public abstract class BlockModelWrapperUnbakedMixin { diff --git a/src/main/java/net/frozenblock/trimpatcher/mixin/client/SpriteSourceListMixin.java b/common/src/main/java/net/frozenblock/trimpatcher/mixin/client/SpriteSourceListMixin.java similarity index 100% rename from src/main/java/net/frozenblock/trimpatcher/mixin/client/SpriteSourceListMixin.java rename to common/src/main/java/net/frozenblock/trimpatcher/mixin/client/SpriteSourceListMixin.java diff --git a/src/main/java/net/frozenblock/trimpatcher/mixin/client/TrimMaterialPropertyMixin.java b/common/src/main/java/net/frozenblock/trimpatcher/mixin/client/TrimMaterialPropertyMixin.java similarity index 94% rename from src/main/java/net/frozenblock/trimpatcher/mixin/client/TrimMaterialPropertyMixin.java rename to common/src/main/java/net/frozenblock/trimpatcher/mixin/client/TrimMaterialPropertyMixin.java index 3547d59..c51bb1d 100644 --- a/src/main/java/net/frozenblock/trimpatcher/mixin/client/TrimMaterialPropertyMixin.java +++ b/common/src/main/java/net/frozenblock/trimpatcher/mixin/client/TrimMaterialPropertyMixin.java @@ -18,8 +18,6 @@ package net.frozenblock.trimpatcher.mixin.client; import com.llamalad7.mixinextras.injector.ModifyReturnValue; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.minecraft.client.renderer.item.properties.select.TrimMaterialProperty; import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; @@ -27,7 +25,6 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -@Environment(EnvType.CLIENT) @Mixin(TrimMaterialProperty.class) public class TrimMaterialPropertyMixin { diff --git a/common/src/main/resources/META-INF/accesstransformer.cfg b/common/src/main/resources/META-INF/accesstransformer.cfg new file mode 100644 index 0000000..ccc496b --- /dev/null +++ b/common/src/main/resources/META-INF/accesstransformer.cfg @@ -0,0 +1,4 @@ +public net.minecraft.client.resources.model.sprite.TextureSlots +public net.minecraft.client.resources.model.sprite.TextureSlots TextureSlots(Ljava/util/Map;)V +public net.minecraft.client.resources.model.sprite.TextureSlots (Ljava/util/Map;)V +public net.minecraft.client.resources.model.sprite.TextureSlots resolvedValues diff --git a/src/main/resources/assets/trimpatcher/icon.png b/common/src/main/resources/assets/icon.png similarity index 100% rename from src/main/resources/assets/trimpatcher/icon.png rename to common/src/main/resources/assets/icon.png diff --git a/src/main/resources/credits.txt b/common/src/main/resources/credits.txt similarity index 58% rename from src/main/resources/credits.txt rename to common/src/main/resources/credits.txt index 60c6756..32ed788 100644 --- a/src/main/resources/credits.txt +++ b/common/src/main/resources/credits.txt @@ -1 +1,2 @@ Luna/Lunade/AViewFromTheTop - Developer +Rebel459 - multiloader port diff --git a/common/src/main/resources/pack.mcmeta b/common/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..7d7f67c --- /dev/null +++ b/common/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "${mod_id}", + "pack_format": 12 + } +} \ No newline at end of file diff --git a/src/main/resources/trimpatcher.classtweaker b/common/src/main/resources/trimpatcher.classtweaker similarity index 100% rename from src/main/resources/trimpatcher.classtweaker rename to common/src/main/resources/trimpatcher.classtweaker diff --git a/src/main/resources/trimpatcher.mixins.json b/common/src/main/resources/trimpatcher.mixins.json similarity index 100% rename from src/main/resources/trimpatcher.mixins.json rename to common/src/main/resources/trimpatcher.mixins.json diff --git a/fabric/build.gradle b/fabric/build.gradle new file mode 100644 index 0000000..394c8d9 --- /dev/null +++ b/fabric/build.gradle @@ -0,0 +1,50 @@ +plugins { + id 'multiloader-loader' + id 'net.fabricmc.fabric-loom' +} + +dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + api "net.fabricmc:fabric-loader:${fabric_loader}" + api "net.fabricmc.fabric-api:fabric-api:${fabric_api}" +} + +loom { + def aw = project(':common').file("src/main/resources/${mod_id}.classtweaker") + if (aw.exists()) { + accessWidenerPath.set(aw) + } + runs { + client { + client() + setConfigName('Fabric Client') + ideConfigGenerated(true) + runDir('runs/client') + } + server { + server() + setConfigName('Fabric Server') + ideConfigGenerated(true) + runDir('runs/server') + } + } +} + +// Implement mcgradleconventions loader attribute +def loaderAttribute = Attribute.of('io.github.mcgradleconventions.loader', String) +['apiElements', 'runtimeElements', 'sourcesElements', 'javadocElements', 'includeInternal', 'modCompileClasspath'].each { variant -> + configurations.named("$variant") { + attributes { + attribute(loaderAttribute, 'fabric') + } + } +} +sourceSets.configureEach { + [it.compileClasspathConfigurationName, it.runtimeClasspathConfigurationName].each { variant-> + configurations.named("$variant") { + attributes { + attribute(loaderAttribute, 'fabric') + } + } + } +} diff --git a/fabric/src/main/java/net/frozenblock/trimpatcher/TrimPatcherFabricClient.java b/fabric/src/main/java/net/frozenblock/trimpatcher/TrimPatcherFabricClient.java new file mode 100644 index 0000000..f658dd4 --- /dev/null +++ b/fabric/src/main/java/net/frozenblock/trimpatcher/TrimPatcherFabricClient.java @@ -0,0 +1,13 @@ +package net.frozenblock.trimpatcher; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.loader.api.FabricLoader; + +public class TrimPatcherFabricClient implements ClientModInitializer { + + @Override + public void onInitializeClient() { + TPConstants.UNSTABLE_LOGGING = FabricLoader.getInstance().isDevelopmentEnvironment(); + TrimPatcherClient.init(); + } +} diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3e2951c --- /dev/null +++ b/fabric/src/main/resources/fabric.mod.json @@ -0,0 +1,32 @@ +{ + "schemaVersion": 1, + "id": "${mod_id}", + "version": "${mod_version}-fabric", + "name": "${mod_name}", + "description": "${mod_description}", + "authors": [ + "${mod_author}" + ], + "contact": { + "sources": "https://github.com/FrozenBlock/TrimPatcher" + }, + "license": "${license}", + "icon": "assets/icon.png", + "environment": "*", + "entrypoints": { + "client": [ + "net.frozenblock.trimpatcher.TrimPatcherFabricClient" + ] + }, + "mixins": [ + "trimpatcher.mixins.json", + "trimpatcher-fabric.mixins.json" + ], + "accessWidener": "trimpatcher.classtweaker", + "depends": { + "fabricloader": ">=0.18", + "fabric-api": "*", + "minecraft": "${fabric_minecraft_version}", + "java": ">=25" + } +} diff --git a/fabric/src/main/resources/trimpatcher-fabric.mixins.json b/fabric/src/main/resources/trimpatcher-fabric.mixins.json new file mode 100644 index 0000000..2fbaf0e --- /dev/null +++ b/fabric/src/main/resources/trimpatcher-fabric.mixins.json @@ -0,0 +1,10 @@ +{ + "required": true, + "package": "net.frozenblock.trimpatcher.mixin", + "compatibilityLevel": "JAVA_25", + "mixins": [], + "client": [], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/gradle.properties b/gradle.properties index f672094..240053d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,26 +1,28 @@ +# Gradle Options +org.gradle.jvmargs=-Xmx8G +org.gradle.daemon=false -# Increases the amount of memory Gradle can use and optimizes the GC -# -XX:+UseZGC - org.gradle.jvmargs=-Xmx4G -# Helps with build times - org.gradle.parallel=true -# Caches Dependencies for faster build times. - org.gradle.caching=false +# Project +mod_version=2.0-mc26.1 +project_group=net.frozenblock.trimpatcher +license=GPL-3.0 +java_version=25 -# Fabric Properties - # Get new versions at https://fabricmc.net/develop and https://lambdaurora.dev/tools/import_quilt.html - minecraft_version=26.1 - loader_version=0.18.4 +# Mod +mod_author=AViewFromTheTop/Lunade +mod_id=trimpatcher +mod_name=Trim Patcher +mod_description=Makes Armor Trims and Trim Materials from any mod work together seamlessly on all Armor items! -# Mod Properties - mod_id = trimpatcher - mod_version = 1.0 - # protocol version must be changed after each update with dual env changes - maven_group = net.frozenblock - archives_base_name = TrimPatcher +# Minecraft +minecraft_version=26.1 +neo_form_version=26.1-1 -# Dependencies - fabric_api_version=0.144.0+26.1 -# Optimization - sodium_version=mc1.21.11-0.8.2-fabric - run_sodium = false +# Fabric +fabric_loader=0.18.5 +fabric_api=0.144.0+26.1 +fabric_minecraft_version=>=26.1 <26.2 + +# NeoForge +neoforge_version=26.1.0.1-beta +neoforge_minecraft_version=[26.1, 26.2) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 8bdaf60..d64cd49 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradlew b/gradlew index adff685..1aa94a4 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015 the original authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,8 +15,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # -# SPDX-License-Identifier: Apache-2.0 -# ############################################################################## # @@ -57,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -86,7 +84,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -114,6 +112,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -171,6 +170,7 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -203,14 +203,15 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index c4bdd3a..93e3f59 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,8 +13,6 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem -@rem SPDX-License-Identifier: Apache-2.0 -@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -45,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +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 @@ -59,21 +57,22 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +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%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* +"%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 diff --git a/neoforge/build.gradle b/neoforge/build.gradle new file mode 100644 index 0000000..60aa9da --- /dev/null +++ b/neoforge/build.gradle @@ -0,0 +1,63 @@ +plugins { + id 'multiloader-loader' + id 'net.neoforged.moddev' +} + +dependencies {} + +neoForge { + version = neoforge_version + // Automatically enable neoforge AccessTransformers if the file exists + def at = project(':common').file('src/main/resources/META-INF/accesstransformer.cfg') + if (at.exists()) { + accessTransformers.from(at.absolutePath) + } + runs { + configureEach { + systemProperty('neoforge.enabledGameTestNamespaces', mod_id) + ideName = "NeoForge ${it.name.capitalize()} (${project.path})" // Unify the run config names with fabric + } + client { + client() + gameDirectory = this.mkdir(this.file("runs/client")) + } + data { + clientData() + gameDirectory = this.mkdir(this.file("runs/data")) + // DataGen can be run by - "./gradlew :neoforge:runData" in Terminal. + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() + } + server { + server() + this.file("runs/server").createParentDirectories() + gameDirectory = this.mkdir(this.file("runs/server")) + } + } + mods { + "${mod_id}" { + sourceSet sourceSets.main + } + } +} + +sourceSets.main.resources { srcDir 'src/generated/resources' } + +// Implement mcgradleconventions loader attribute +def loaderAttribute = Attribute.of('io.github.mcgradleconventions.loader', String) +['apiElements', 'runtimeElements', 'sourcesElements', 'javadocElements'].each { variant -> + configurations.named("$variant") { + attributes { + attribute(loaderAttribute, 'neoforge') + } + } +} +sourceSets.configureEach { + [it.compileClasspathConfigurationName, it.runtimeClasspathConfigurationName, it.getTaskName(null, 'jarJar')].each { variant -> + configurations.named("$variant") { + attributes { + attribute(loaderAttribute, 'neoforge') + } + } + } +} diff --git a/neoforge/runs/client/.cache/jij/909b72f1d8225a13c4f00a23b3a5d04217543745de857d98694d4943708fc969/net.neoforged.neoforge-coremods-26.1.0.1-beta.jar b/neoforge/runs/client/.cache/jij/909b72f1d8225a13c4f00a23b3a5d04217543745de857d98694d4943708fc969/net.neoforged.neoforge-coremods-26.1.0.1-beta.jar new file mode 100644 index 0000000..26f872e Binary files /dev/null and b/neoforge/runs/client/.cache/jij/909b72f1d8225a13c4f00a23b3a5d04217543745de857d98694d4943708fc969/net.neoforged.neoforge-coremods-26.1.0.1-beta.jar differ diff --git a/neoforge/runs/client/.cache/jij/9822e773bd9f42d36ed53ea3d67486207291747a7bfacc29beeb92040721bc9b/mixinextras-neoforge-0.5.3.jar b/neoforge/runs/client/.cache/jij/9822e773bd9f42d36ed53ea3d67486207291747a7bfacc29beeb92040721bc9b/mixinextras-neoforge-0.5.3.jar new file mode 100644 index 0000000..1aff709 Binary files /dev/null and b/neoforge/runs/client/.cache/jij/9822e773bd9f42d36ed53ea3d67486207291747a7bfacc29beeb92040721bc9b/mixinextras-neoforge-0.5.3.jar differ diff --git a/neoforge/runs/client/config/fml.toml b/neoforge/runs/client/config/fml.toml new file mode 100644 index 0000000..4a3ff9e --- /dev/null +++ b/neoforge/runs/client/config/fml.toml @@ -0,0 +1,30 @@ +#Disables File Watcher. Used to automatically update config if its file has been modified. +disableConfigWatcher = false +#Shows an early loading screen for mod loading which improves the user experience with early feedback about mod loading. +earlyWindowControl = true +#Max threads for early initialization parallelism, -1 is based on processor count +maxThreads = -1 +#Enable NeoForge global version checking +versionCheck = true +#Enable synchronous OpenGL debug output and object labeling +debugOpenGl = false +#Default config path for servers +defaultConfigPath = "defaultconfigs" +#Disables Optimized DFU client-side - already disabled on servers +disableOptimizedDFU = true +#Early window provider +earlyWindowProvider = "fmlearlywindow" +#Early window width +earlyWindowWidth = 854 +#Early window height +earlyWindowHeight = 480 +#Early window starts maximized +earlyWindowMaximized = false +#Force a given theme-id to be used for the early loading screen +earlyLoadingScreenTheme = "" +#Define dependency overrides below +#Dependency overrides can be used to forcibly remove a dependency constraint from a mod or to force a mod to load AFTER another mod +#Using dependency overrides can cause issues. Use at your own risk. +#Example dependency override for the mod with the id 'targetMod': dependency constraints (incompatibility clauses or restrictive version ranges) against mod 'dep1' are removed, and the mod will now load after the mod 'dep2' +#dependencyOverrides.targetMod = ["-dep1", "+dep2"] +dependencyOverrides = {} diff --git a/neoforge/runs/client/config/neoforge-client.toml b/neoforge/runs/client/config/neoforge-client.toml new file mode 100644 index 0000000..f6436c1 --- /dev/null +++ b/neoforge/runs/client/config/neoforge-client.toml @@ -0,0 +1,15 @@ +#Enable the enhanced block model lighting pipeline - fixes the lighting of custom models, as well as many vanilla bugs. +enhancedLighting = true +#When enabled, NeoForge will show any warnings that occurred during loading. +showLoadWarnings = true +#A config option mainly for developers. Logs out configuration values that do not have translations when running a client in a development environment. +logUntranslatedConfigurationWarnings = true +#A config option mainly for developers. Logs out modded item tags that do not have translations when running on integrated server. Format desired is tag.item.. for the translation key. Defaults to SILENCED. +#Allowed Values: SILENCED, DEV_SHORT, DEV_VERBOSE, PROD_SHORT, PROD_VERBOSE +logUntranslatedItemTagWarnings = "SILENCED" +#Configures how many bits are used for the depth buffer when stenciling has been enabled by a mod. Set to true for 24+8 bits and to false for 32+8 bits. Setting to true will slightly reduce VRAM usage, but risks introducing visual artifacts. +reducedDepthStencilFormat = false +#When enabled, AO will be handled per BlockModelPart instead of using the first part's AO setting +handleAmbientOcclusionPerPart = true +#When enabled, all usage of Blaze3D will be validated against allowed usage +enableB3DValidationLayer = true diff --git a/neoforge/runs/client/config/neoforge-common.toml b/neoforge/runs/client/config/neoforge-common.toml new file mode 100644 index 0000000..f805c00 --- /dev/null +++ b/neoforge/runs/client/config/neoforge-common.toml @@ -0,0 +1,2 @@ +#Set this to true to enable showing debug information about attributes on an item when advanced tooltips is on. +attributeAdvancedTooltipDebugInfo = true diff --git a/neoforge/runs/client/config/neoforge-server.toml b/neoforge/runs/client/config/neoforge-server.toml new file mode 100644 index 0000000..99d6fcc --- /dev/null +++ b/neoforge/runs/client/config/neoforge-server.toml @@ -0,0 +1,10 @@ +#Set this to true to remove any BlockEntity that throws an error in its update method instead of closing the server and reporting a crash log. BE WARNED THIS COULD SCREW UP EVERYTHING USE SPARINGLY WE ARE NOT RESPONSIBLE FOR DAMAGES. +removeErroringBlockEntities = false +#Set this to true to remove any Entity (Note: Does not include BlockEntities) that throws an error in its tick method instead of closing the server and reporting a crash log. BE WARNED THIS COULD SCREW UP EVERYTHING USE SPARINGLY WE ARE NOT RESPONSIBLE FOR DAMAGES. +removeErroringEntities = false +#Set this to true to check the entire entity's collision bounding box for ladders instead of just the block they are in. Causes noticeable differences in mechanics so default is vanilla behavior. Default: false. +fullBoundingBoxLadders = false +#The permission handler used by the server. Defaults to neoforge:default_handler if no such handler with that name is registered. +permissionHandler = "neoforge:default_handler" +#Set this to true to enable advertising the dedicated server to local LAN clients so that it shows up in the Multiplayer screen automatically. +advertiseDedicatedServerToLan = true diff --git a/neoforge/runs/client/downloads/log.json b/neoforge/runs/client/downloads/log.json new file mode 100644 index 0000000..e69de29 diff --git a/neoforge/runs/client/logs/debug.log b/neoforge/runs/client/logs/debug.log new file mode 100644 index 0000000..d9731d1 --- /dev/null +++ b/neoforge/runs/client/logs/debug.log @@ -0,0 +1,137 @@ +[28Mar2026 13:54:56.953] [main/INFO] [net.neoforged.fml.startup.Entrypoint/]: JVM Uptime at startup: 83ms +[28Mar2026 13:54:56.958] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Starting FancyModLoader version 11.0.3 (CLIENT in DEV) +[28Mar2026 13:54:56.958] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Game directory: C:\Users\bryce\Development\Minecraft\Workspaces\TrimPatcher\neoforge\runs\client +[28Mar2026 13:54:56.990] [main/INFO] [net.neoforged.fml.loading.EarlyServiceDiscovery/]: Found 2 early service jars (out of 107) in 16ms +[28Mar2026 13:54:56.991] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Loading FML Early Services: +[28Mar2026 13:54:56.991] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: - C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.neoforged.fancymodloader/loader/11.0.3/3f76babf6fa2bbeb3c8390ce0aad2f44f53cbe47/loader-11.0.3.jar +[28Mar2026 13:54:56.992] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: - C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.neoforged.fancymodloader/earlydisplay/11.0.3/8c620a52ec9cd3296b13a453d6229ac2617a9a5e/earlydisplay-11.0.3.jar +[28Mar2026 13:54:56.994] [main/INFO] [net.neoforged.fml.loading.ImmediateWindowHandler/]: Loading ImmediateWindowProvider fmlearlywindow +[28Mar2026 13:54:57.351] [ForkJoinPool.commonPool-worker-12/INFO] [net.neoforged.fml.loading.moddiscovery.locators.GameLocator/]: Detected a joined NeoForge and Minecraft configuration. Applying filtering... +[28Mar2026 13:54:57.395] [ForkJoinPool.commonPool-worker-12/INFO] [net.neoforged.fml.loading.moddiscovery.locators.InDevFolderLocator/CORE]: Got mod coordinates trimpatcher%%C:\Users\bryce\Development\Minecraft\Workspaces\TrimPatcher\neoforge\build\classes\java\main;trimpatcher%%C:\Users\bryce\Development\Minecraft\Workspaces\TrimPatcher\neoforge\build\resources\main from env +[28Mar2026 13:54:57.400] [fml-loadingscreen/INFO] [net.neoforged.fml.earlydisplay.render.LoadingScreenRenderer/]: GL info: NVIDIA GeForce RTX 5090/PCIe/SSE2 GL version 3.3.0 NVIDIA 591.74, NVIDIA Corporation +[28Mar2026 13:54:57.472] [ForkJoinPool.commonPool-worker-12/INFO] [net.neoforged.fml.loading.moddiscovery.locators.JarInJarDependencyLocator/]: Found 2 dependencies adding them to mods collection +[28Mar2026 13:54:57.473] [ForkJoinPool.commonPool-worker-12/INFO] [net.neoforged.fml.loading.moddiscovery.ModDiscoverer/]: + Mod List: + Name Version (Mod Id) + + Minecraft 26.1 (minecraft) + NeoForge 26.1.0.1-beta (neoforge) + Trim Patcher 2.0-mc26.1-neoforge (trimpatcher) +[28Mar2026 13:54:57.599] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.7 Source=file:/C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.16.5+mixin.0.8.7/80fc3a9f592673cea87f4cd702f87991c6c9fe4d/sponge-mixin-0.16.5+mixin.0.8.7.jar Service=FML Env=CLIENT +[28Mar2026 13:54:57.615] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Loading FML Plugins: +[28Mar2026 13:54:57.616] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: - C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.neoforged/neoforge/26.1.0.1-beta/ef713b81fdcc723ad4c9d2ac2e7d4173f8dbdbd6/neoforge-26.1.0.1-beta-universal.jar > net.neoforged.neoforge-coremods-26.1.0.1-beta.jar +[28Mar2026 13:54:57.671] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Building game content classloader: + - minecraft (composite(filtered(jar(C:/Users/bryce/Development/Minecraft/Workspaces/TrimPatcher/neoforge/build/moddev/artifacts/minecraft-patched-26.1.0.1-beta.jar)), filtered(jar(C:/Users/bryce/Development/Minecraft/Workspaces/TrimPatcher/neoforge/build/moddev/artifacts/minecraft-patched-26.1.0.1-beta.jar)))) + - mixinextras.neoforge (jar(C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.neoforged/neoforge/26.1.0.1-beta/ef713b81fdcc723ad4c9d2ac2e7d4173f8dbdbd6/neoforge-26.1.0.1-beta-universal.jar > mixinextras-neoforge-0.5.3.jar)) + - neoforge (composite(filtered(jar(C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.neoforged/neoforge/26.1.0.1-beta/ef713b81fdcc723ad4c9d2ac2e7d4173f8dbdbd6/neoforge-26.1.0.1-beta-universal.jar)))) + - net.neoforged.fml.generated (empty(VirtualJar/net.neoforged.fml.generated)) + - trimpatcher (composite(folder(C:/Users/bryce/Development/Minecraft/Workspaces/TrimPatcher/neoforge/build/classes/java/main), folder(C:/Users/bryce/Development/Minecraft/Workspaces/TrimPatcher/neoforge/build/resources/main))) +[28Mar2026 13:54:57.678] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Built game content classloader in 13ms +[28Mar2026 13:54:57.700] [main/INFO] [mixin/]: Compatibility level set to JAVA_25 +[28Mar2026 13:54:58.253] [Datafixer Bootstrap/INFO] [com.mojang.datafixers.DataFixerBuilder/]: 294 Datafixer optimizations took 141 milliseconds +[28Mar2026 13:54:58.318] [pool-8-thread-1/INFO] [MixinExtras|Service/]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.5.3). +[28Mar2026 13:55:00.281] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0] +[28Mar2026 13:55:00.282] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0] +[28Mar2026 13:55:00.284] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498] +[28Mar2026 13:55:00.284] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498] +[28Mar2026 13:55:00.285] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0] +[28Mar2026 13:55:00.285] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [time, set, time] and [time, set, timemarker] with inputs: [0, 0s, 0d, 0t] +[28Mar2026 13:55:00.286] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [time, set, timemarker] and [time, set, time] with inputs: [012] +[28Mar2026 13:55:00.287] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [time, of, clock, set, time] and [time, of, clock, set, timemarker] with inputs: [0, 0s, 0d, 0t] +[28Mar2026 13:55:00.287] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [time, of, clock, set, timemarker] and [time, of, clock, set, time] with inputs: [012] +[28Mar2026 13:55:00.288] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [waypoint, modify, waypoint, color, reset] and [waypoint, modify, waypoint, color, color] with inputs: [reset] +[28Mar2026 13:55:00.319] [modloading-worker-0/INFO] [net.neoforged.neoforge.common.NeoForgeMod/NEOFORGE-MOD]: NeoForge mod loading, version 26.1.0.1-beta, for MC 26.1 +[28Mar2026 13:55:00.563] [Render thread/INFO] [com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService/]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD] +[28Mar2026 13:55:00.570] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Setting user: Dev +[28Mar2026 13:55:00.609] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Backend library: LWJGL version 3.4.1+2 +[28Mar2026 13:55:00.726] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Using optional rendering extensions: GL_ARB_buffer_storage, GL_KHR_debug, GL_ARB_vertex_attrib_binding, GL_ARB_direct_state_access, GL_EXT_texture_filter_anisotropic +[28Mar2026 13:55:01.110] [Render thread/INFO] [net.minecraft.server.packs.resources.ReloadableResourceManager/]: Reloading ResourceManager: vanilla, mod_resources, mod/trimpatcher, mod/neoforge +[28Mar2026 13:55:01.145] [resourceLoad/INFO] [net.minecraft.client.gui.font.providers.UnihexProvider/]: Found unifont_pua-17.0.01.hex, loading +[28Mar2026 13:55:01.145] [resourceLoad/INFO] [net.minecraft.client.gui.font.providers.UnihexProvider/]: Found unifont_all_no_pua-17.0.01.hex, loading +[28Mar2026 13:55:01.224] [resourceLoad/INFO] [net.minecraft.client.gui.font.providers.UnihexProvider/]: Found unifont_jp_patch-17.0.01.hex, loading +[28Mar2026 13:55:01.877] [Render thread/WARN] [com.mojang.blaze3d.opengl.GlProgram/]: neoforge:pipeline/item_cutout_unlit shader program does not use sampler Sampler2 defined in the pipeline. This might be a bug. +[28Mar2026 13:55:02.105] [Render thread/WARN] [com.mojang.blaze3d.opengl.GlProgram/]: neoforge:pipeline/item_translucent_unlit shader program does not use sampler Sampler2 defined in the pipeline. This might be a bug. +[28Mar2026 13:55:02.201] [Render thread/INFO] [com.mojang.blaze3d.audio.Library/]: OpenAL initialized on device OpenAL Soft on Speakers (Beoplay Portal Link C) +[28Mar2026 13:55:02.202] [Render thread/INFO] [net.minecraft.client.sounds.SoundEngine/SOUNDS]: Sound engine started +[28Mar2026 13:55:02.202] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x256x0 minecraft:textures/atlas/particles.png-atlas +[28Mar2026 13:55:02.211] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 128x128x0 minecraft:textures/atlas/decorated_pot.png-atlas +[28Mar2026 13:55:02.213] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 2048x1024x0 minecraft:textures/atlas/armor_trims.png-atlas +[28Mar2026 13:55:02.222] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x256x0 minecraft:textures/atlas/paintings.png-atlas +[28Mar2026 13:55:02.226] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 1024x512x0 minecraft:textures/atlas/shield_patterns.png-atlas +[28Mar2026 13:55:02.228] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 2048x2048x4 minecraft:textures/atlas/blocks.png-atlas +[28Mar2026 13:55:02.266] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x512x0 minecraft:textures/atlas/chest.png-atlas +[28Mar2026 13:55:02.271] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 256x128x0 minecraft:textures/atlas/celestials.png-atlas +[28Mar2026 13:55:02.271] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 1024x512x0 minecraft:textures/atlas/banner_patterns.png-atlas +[28Mar2026 13:55:02.272] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x512x0 minecraft:textures/atlas/beds.png-atlas +[28Mar2026 13:55:02.273] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 1024x512x0 minecraft:textures/atlas/items.png-atlas +[28Mar2026 13:55:02.280] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 1024x1024x0 minecraft:textures/atlas/gui.png-atlas +[28Mar2026 13:55:02.288] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 128x64x0 minecraft:textures/atlas/map_decorations.png-atlas +[28Mar2026 13:55:02.292] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x256x0 minecraft:textures/atlas/signs.png-atlas +[28Mar2026 13:55:02.292] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x512x0 minecraft:textures/atlas/shulker_boxes.png-atlas +[28Mar2026 13:55:02.354] [Render thread/INFO] [net.neoforged.neoforge.client.entity.animation.json.AnimationLoader/]: Loaded 0 entity animations +[28Mar2026 13:55:08.071] [Render thread/WARN] [net.minecraft.server.MinecraftServer/]: Missing data pack tests +[28Mar2026 13:55:08.409] [Render thread/INFO] [net.minecraft.world.item.crafting.RecipeManager/]: Loaded 1515 recipes +[28Mar2026 13:55:08.415] [Render thread/INFO] [net.minecraft.advancements.AdvancementTree/]: Loaded 1617 advancements +[28Mar2026 13:55:08.417] [Render thread/INFO] [net.neoforged.neoforge.common.crafting.RecipePriorityManager/]: Loaded 0 recipe priority overrides +[28Mar2026 13:55:10.174] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Starting integrated minecraft server version 26.1 +[28Mar2026 13:55:10.174] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Generating keypair +[28Mar2026 13:55:10.347] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Selecting global world spawn... +[28Mar2026 13:55:11.371] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Loading 0 persistent chunks... +[28Mar2026 13:55:11.372] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Preparing spawn area: 16% +[28Mar2026 13:55:11.372] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:overworld +[28Mar2026 13:55:11.395] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_nether +[28Mar2026 13:55:11.398] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_end +[28Mar2026 13:55:11.421] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (world): All chunks are saved +[28Mar2026 13:55:11.421] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved +[28Mar2026 13:55:11.421] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved +[28Mar2026 13:55:11.421] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage: All dimensions are saved +[28Mar2026 13:55:11.423] [Server thread/INFO] [net.neoforged.neoforge.server.permission.PermissionAPI/]: Successfully initialized permission handler neoforge:default_handler +[28Mar2026 13:55:11.880] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Loading 47 chunks for player spawn... +[28Mar2026 13:55:11.880] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Preparing spawn area: 16% +[28Mar2026 13:55:11.926] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Preparing spawn area: 16% +[28Mar2026 13:55:11.974] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Preparing spawn area: 16% +[28Mar2026 13:55:12.375] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Preparing spawn area: 57% +[28Mar2026 13:55:12.625] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Time elapsed: 2277 ms +[28Mar2026 13:55:12.797] [Server thread/INFO] [net.minecraft.server.players.PlayerList/]: Dev[local:E:8c4cf42c] logged in with entity id 14 at (-3.5, 96.0, 1.5) +[28Mar2026 13:55:12.822] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Dev joined the game +[28Mar2026 13:55:12.890] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Changing view distance to 16, from 10 +[28Mar2026 13:55:12.892] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Changing simulation distance to 12, from 0 +[28Mar2026 13:55:12.898] [Render thread/WARN] [net.minecraft.client.multiplayer.ClientPacketListener/]: Ignoring chat session from Dev due to missing Services public key +[28Mar2026 13:55:12.901] [Render thread/INFO] [net.minecraft.advancements.AdvancementTree/]: Loaded 2 advancements +[28Mar2026 13:55:12.957] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Dynamic Transforms UBO, capacity limit of 2 reached during a single frame. New capacity will be 4. +[28Mar2026 13:55:13.006] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Dynamic Transforms UBO, capacity limit of 4 reached during a single frame. New capacity will be 8. +[28Mar2026 13:55:13.018] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 2 reached during a single frame. New capacity will be 4. +[28Mar2026 13:55:13.027] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 4 reached during a single frame. New capacity will be 8. +[28Mar2026 13:55:13.062] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 8 reached during a single frame. New capacity will be 16. +[28Mar2026 13:55:13.086] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 16 reached during a single frame. New capacity will be 32. +[28Mar2026 13:55:13.517] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 32 reached during a single frame. New capacity will be 64. +[28Mar2026 13:55:14.092] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 64 reached during a single frame. New capacity will be 128. +[28Mar2026 13:55:15.190] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 128 reached during a single frame. New capacity will be 256. +[28Mar2026 13:55:17.697] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Dynamic Transforms UBO, capacity limit of 8 reached during a single frame. New capacity will be 16. +[28Mar2026 13:55:17.837] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 256 reached during a single frame. New capacity will be 512. +[28Mar2026 13:55:19.526] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Dev has made the advancement [Cover Me with Diamonds] +[28Mar2026 13:55:19.534] [Render thread/INFO] [net.minecraft.client.gui.components.ChatComponent/]: [System] [CHAT] Dev has made the advancement [Cover Me with Diamonds] +[28Mar2026 13:55:19.535] [Render thread/INFO] [net.minecraft.advancements.AdvancementTree/]: Loaded 9 advancements +[28Mar2026 13:55:21.412] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 512 reached during a single frame. New capacity will be 1024. +[28Mar2026 13:55:22.585] [Render thread/INFO] [net.minecraft.advancements.AdvancementTree/]: Loaded 11 advancements +[28Mar2026 13:55:24.881] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Dev has made the advancement [Acquire Hardware] +[28Mar2026 13:55:24.883] [Render thread/INFO] [net.minecraft.client.gui.components.ChatComponent/]: [System] [CHAT] Dev has made the advancement [Acquire Hardware] +[28Mar2026 13:55:24.890] [Render thread/INFO] [net.minecraft.advancements.AdvancementTree/]: Loaded 41 advancements +[28Mar2026 13:55:31.225] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Saving and pausing game... +[28Mar2026 13:55:31.234] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:overworld +[28Mar2026 13:55:31.261] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_nether +[28Mar2026 13:55:31.261] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_end +[28Mar2026 13:55:31.625] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Stopping server +[28Mar2026 13:55:31.625] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving players +[28Mar2026 13:55:31.631] [Server thread/INFO] [net.minecraft.server.network.ServerGamePacketListenerImpl/]: Dev lost connection: Disconnected +[28Mar2026 13:55:31.631] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Dev left the game +[28Mar2026 13:55:31.636] [Server thread/INFO] [net.minecraft.server.network.ServerCommonPacketListenerImpl/]: Stopping singleplayer server as player logged out +[28Mar2026 13:55:31.636] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving worlds +[28Mar2026 13:55:32.519] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:overworld +[28Mar2026 13:55:32.583] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_nether +[28Mar2026 13:55:32.586] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_end +[28Mar2026 13:55:32.591] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (world): All chunks are saved +[28Mar2026 13:55:32.591] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved +[28Mar2026 13:55:32.591] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved +[28Mar2026 13:55:32.591] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage: All dimensions are saved +[28Mar2026 13:55:33.753] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Stopping! diff --git a/neoforge/runs/client/logs/latest.log b/neoforge/runs/client/logs/latest.log new file mode 100644 index 0000000..d9731d1 --- /dev/null +++ b/neoforge/runs/client/logs/latest.log @@ -0,0 +1,137 @@ +[28Mar2026 13:54:56.953] [main/INFO] [net.neoforged.fml.startup.Entrypoint/]: JVM Uptime at startup: 83ms +[28Mar2026 13:54:56.958] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Starting FancyModLoader version 11.0.3 (CLIENT in DEV) +[28Mar2026 13:54:56.958] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Game directory: C:\Users\bryce\Development\Minecraft\Workspaces\TrimPatcher\neoforge\runs\client +[28Mar2026 13:54:56.990] [main/INFO] [net.neoforged.fml.loading.EarlyServiceDiscovery/]: Found 2 early service jars (out of 107) in 16ms +[28Mar2026 13:54:56.991] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Loading FML Early Services: +[28Mar2026 13:54:56.991] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: - C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.neoforged.fancymodloader/loader/11.0.3/3f76babf6fa2bbeb3c8390ce0aad2f44f53cbe47/loader-11.0.3.jar +[28Mar2026 13:54:56.992] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: - C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.neoforged.fancymodloader/earlydisplay/11.0.3/8c620a52ec9cd3296b13a453d6229ac2617a9a5e/earlydisplay-11.0.3.jar +[28Mar2026 13:54:56.994] [main/INFO] [net.neoforged.fml.loading.ImmediateWindowHandler/]: Loading ImmediateWindowProvider fmlearlywindow +[28Mar2026 13:54:57.351] [ForkJoinPool.commonPool-worker-12/INFO] [net.neoforged.fml.loading.moddiscovery.locators.GameLocator/]: Detected a joined NeoForge and Minecraft configuration. Applying filtering... +[28Mar2026 13:54:57.395] [ForkJoinPool.commonPool-worker-12/INFO] [net.neoforged.fml.loading.moddiscovery.locators.InDevFolderLocator/CORE]: Got mod coordinates trimpatcher%%C:\Users\bryce\Development\Minecraft\Workspaces\TrimPatcher\neoforge\build\classes\java\main;trimpatcher%%C:\Users\bryce\Development\Minecraft\Workspaces\TrimPatcher\neoforge\build\resources\main from env +[28Mar2026 13:54:57.400] [fml-loadingscreen/INFO] [net.neoforged.fml.earlydisplay.render.LoadingScreenRenderer/]: GL info: NVIDIA GeForce RTX 5090/PCIe/SSE2 GL version 3.3.0 NVIDIA 591.74, NVIDIA Corporation +[28Mar2026 13:54:57.472] [ForkJoinPool.commonPool-worker-12/INFO] [net.neoforged.fml.loading.moddiscovery.locators.JarInJarDependencyLocator/]: Found 2 dependencies adding them to mods collection +[28Mar2026 13:54:57.473] [ForkJoinPool.commonPool-worker-12/INFO] [net.neoforged.fml.loading.moddiscovery.ModDiscoverer/]: + Mod List: + Name Version (Mod Id) + + Minecraft 26.1 (minecraft) + NeoForge 26.1.0.1-beta (neoforge) + Trim Patcher 2.0-mc26.1-neoforge (trimpatcher) +[28Mar2026 13:54:57.599] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.7 Source=file:/C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.16.5+mixin.0.8.7/80fc3a9f592673cea87f4cd702f87991c6c9fe4d/sponge-mixin-0.16.5+mixin.0.8.7.jar Service=FML Env=CLIENT +[28Mar2026 13:54:57.615] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Loading FML Plugins: +[28Mar2026 13:54:57.616] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: - C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.neoforged/neoforge/26.1.0.1-beta/ef713b81fdcc723ad4c9d2ac2e7d4173f8dbdbd6/neoforge-26.1.0.1-beta-universal.jar > net.neoforged.neoforge-coremods-26.1.0.1-beta.jar +[28Mar2026 13:54:57.671] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Building game content classloader: + - minecraft (composite(filtered(jar(C:/Users/bryce/Development/Minecraft/Workspaces/TrimPatcher/neoforge/build/moddev/artifacts/minecraft-patched-26.1.0.1-beta.jar)), filtered(jar(C:/Users/bryce/Development/Minecraft/Workspaces/TrimPatcher/neoforge/build/moddev/artifacts/minecraft-patched-26.1.0.1-beta.jar)))) + - mixinextras.neoforge (jar(C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.neoforged/neoforge/26.1.0.1-beta/ef713b81fdcc723ad4c9d2ac2e7d4173f8dbdbd6/neoforge-26.1.0.1-beta-universal.jar > mixinextras-neoforge-0.5.3.jar)) + - neoforge (composite(filtered(jar(C:/Users/bryce/.gradle/caches/modules-2/files-2.1/net.neoforged/neoforge/26.1.0.1-beta/ef713b81fdcc723ad4c9d2ac2e7d4173f8dbdbd6/neoforge-26.1.0.1-beta-universal.jar)))) + - net.neoforged.fml.generated (empty(VirtualJar/net.neoforged.fml.generated)) + - trimpatcher (composite(folder(C:/Users/bryce/Development/Minecraft/Workspaces/TrimPatcher/neoforge/build/classes/java/main), folder(C:/Users/bryce/Development/Minecraft/Workspaces/TrimPatcher/neoforge/build/resources/main))) +[28Mar2026 13:54:57.678] [main/INFO] [net.neoforged.fml.loading.FMLLoader/]: Built game content classloader in 13ms +[28Mar2026 13:54:57.700] [main/INFO] [mixin/]: Compatibility level set to JAVA_25 +[28Mar2026 13:54:58.253] [Datafixer Bootstrap/INFO] [com.mojang.datafixers.DataFixerBuilder/]: 294 Datafixer optimizations took 141 milliseconds +[28Mar2026 13:54:58.318] [pool-8-thread-1/INFO] [MixinExtras|Service/]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.5.3). +[28Mar2026 13:55:00.281] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0] +[28Mar2026 13:55:00.282] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0] +[28Mar2026 13:55:00.284] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498] +[28Mar2026 13:55:00.284] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498] +[28Mar2026 13:55:00.285] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0] +[28Mar2026 13:55:00.285] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [time, set, time] and [time, set, timemarker] with inputs: [0, 0s, 0d, 0t] +[28Mar2026 13:55:00.286] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [time, set, timemarker] and [time, set, time] with inputs: [012] +[28Mar2026 13:55:00.287] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [time, of, clock, set, time] and [time, of, clock, set, timemarker] with inputs: [0, 0s, 0d, 0t] +[28Mar2026 13:55:00.287] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [time, of, clock, set, timemarker] and [time, of, clock, set, time] with inputs: [012] +[28Mar2026 13:55:00.288] [main/WARN] [net.minecraft.commands.Commands/]: Ambiguity between arguments [waypoint, modify, waypoint, color, reset] and [waypoint, modify, waypoint, color, color] with inputs: [reset] +[28Mar2026 13:55:00.319] [modloading-worker-0/INFO] [net.neoforged.neoforge.common.NeoForgeMod/NEOFORGE-MOD]: NeoForge mod loading, version 26.1.0.1-beta, for MC 26.1 +[28Mar2026 13:55:00.563] [Render thread/INFO] [com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService/]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD] +[28Mar2026 13:55:00.570] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Setting user: Dev +[28Mar2026 13:55:00.609] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Backend library: LWJGL version 3.4.1+2 +[28Mar2026 13:55:00.726] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Using optional rendering extensions: GL_ARB_buffer_storage, GL_KHR_debug, GL_ARB_vertex_attrib_binding, GL_ARB_direct_state_access, GL_EXT_texture_filter_anisotropic +[28Mar2026 13:55:01.110] [Render thread/INFO] [net.minecraft.server.packs.resources.ReloadableResourceManager/]: Reloading ResourceManager: vanilla, mod_resources, mod/trimpatcher, mod/neoforge +[28Mar2026 13:55:01.145] [resourceLoad/INFO] [net.minecraft.client.gui.font.providers.UnihexProvider/]: Found unifont_pua-17.0.01.hex, loading +[28Mar2026 13:55:01.145] [resourceLoad/INFO] [net.minecraft.client.gui.font.providers.UnihexProvider/]: Found unifont_all_no_pua-17.0.01.hex, loading +[28Mar2026 13:55:01.224] [resourceLoad/INFO] [net.minecraft.client.gui.font.providers.UnihexProvider/]: Found unifont_jp_patch-17.0.01.hex, loading +[28Mar2026 13:55:01.877] [Render thread/WARN] [com.mojang.blaze3d.opengl.GlProgram/]: neoforge:pipeline/item_cutout_unlit shader program does not use sampler Sampler2 defined in the pipeline. This might be a bug. +[28Mar2026 13:55:02.105] [Render thread/WARN] [com.mojang.blaze3d.opengl.GlProgram/]: neoforge:pipeline/item_translucent_unlit shader program does not use sampler Sampler2 defined in the pipeline. This might be a bug. +[28Mar2026 13:55:02.201] [Render thread/INFO] [com.mojang.blaze3d.audio.Library/]: OpenAL initialized on device OpenAL Soft on Speakers (Beoplay Portal Link C) +[28Mar2026 13:55:02.202] [Render thread/INFO] [net.minecraft.client.sounds.SoundEngine/SOUNDS]: Sound engine started +[28Mar2026 13:55:02.202] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x256x0 minecraft:textures/atlas/particles.png-atlas +[28Mar2026 13:55:02.211] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 128x128x0 minecraft:textures/atlas/decorated_pot.png-atlas +[28Mar2026 13:55:02.213] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 2048x1024x0 minecraft:textures/atlas/armor_trims.png-atlas +[28Mar2026 13:55:02.222] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x256x0 minecraft:textures/atlas/paintings.png-atlas +[28Mar2026 13:55:02.226] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 1024x512x0 minecraft:textures/atlas/shield_patterns.png-atlas +[28Mar2026 13:55:02.228] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 2048x2048x4 minecraft:textures/atlas/blocks.png-atlas +[28Mar2026 13:55:02.266] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x512x0 minecraft:textures/atlas/chest.png-atlas +[28Mar2026 13:55:02.271] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 256x128x0 minecraft:textures/atlas/celestials.png-atlas +[28Mar2026 13:55:02.271] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 1024x512x0 minecraft:textures/atlas/banner_patterns.png-atlas +[28Mar2026 13:55:02.272] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x512x0 minecraft:textures/atlas/beds.png-atlas +[28Mar2026 13:55:02.273] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 1024x512x0 minecraft:textures/atlas/items.png-atlas +[28Mar2026 13:55:02.280] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 1024x1024x0 minecraft:textures/atlas/gui.png-atlas +[28Mar2026 13:55:02.288] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 128x64x0 minecraft:textures/atlas/map_decorations.png-atlas +[28Mar2026 13:55:02.292] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x256x0 minecraft:textures/atlas/signs.png-atlas +[28Mar2026 13:55:02.292] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x512x0 minecraft:textures/atlas/shulker_boxes.png-atlas +[28Mar2026 13:55:02.354] [Render thread/INFO] [net.neoforged.neoforge.client.entity.animation.json.AnimationLoader/]: Loaded 0 entity animations +[28Mar2026 13:55:08.071] [Render thread/WARN] [net.minecraft.server.MinecraftServer/]: Missing data pack tests +[28Mar2026 13:55:08.409] [Render thread/INFO] [net.minecraft.world.item.crafting.RecipeManager/]: Loaded 1515 recipes +[28Mar2026 13:55:08.415] [Render thread/INFO] [net.minecraft.advancements.AdvancementTree/]: Loaded 1617 advancements +[28Mar2026 13:55:08.417] [Render thread/INFO] [net.neoforged.neoforge.common.crafting.RecipePriorityManager/]: Loaded 0 recipe priority overrides +[28Mar2026 13:55:10.174] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Starting integrated minecraft server version 26.1 +[28Mar2026 13:55:10.174] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Generating keypair +[28Mar2026 13:55:10.347] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Selecting global world spawn... +[28Mar2026 13:55:11.371] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Loading 0 persistent chunks... +[28Mar2026 13:55:11.372] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Preparing spawn area: 16% +[28Mar2026 13:55:11.372] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:overworld +[28Mar2026 13:55:11.395] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_nether +[28Mar2026 13:55:11.398] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_end +[28Mar2026 13:55:11.421] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (world): All chunks are saved +[28Mar2026 13:55:11.421] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved +[28Mar2026 13:55:11.421] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved +[28Mar2026 13:55:11.421] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage: All dimensions are saved +[28Mar2026 13:55:11.423] [Server thread/INFO] [net.neoforged.neoforge.server.permission.PermissionAPI/]: Successfully initialized permission handler neoforge:default_handler +[28Mar2026 13:55:11.880] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Loading 47 chunks for player spawn... +[28Mar2026 13:55:11.880] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Preparing spawn area: 16% +[28Mar2026 13:55:11.926] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Preparing spawn area: 16% +[28Mar2026 13:55:11.974] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Preparing spawn area: 16% +[28Mar2026 13:55:12.375] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Preparing spawn area: 57% +[28Mar2026 13:55:12.625] [Server thread/INFO] [net.minecraft.server.level.progress.LoggingLevelLoadListener/]: Time elapsed: 2277 ms +[28Mar2026 13:55:12.797] [Server thread/INFO] [net.minecraft.server.players.PlayerList/]: Dev[local:E:8c4cf42c] logged in with entity id 14 at (-3.5, 96.0, 1.5) +[28Mar2026 13:55:12.822] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Dev joined the game +[28Mar2026 13:55:12.890] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Changing view distance to 16, from 10 +[28Mar2026 13:55:12.892] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Changing simulation distance to 12, from 0 +[28Mar2026 13:55:12.898] [Render thread/WARN] [net.minecraft.client.multiplayer.ClientPacketListener/]: Ignoring chat session from Dev due to missing Services public key +[28Mar2026 13:55:12.901] [Render thread/INFO] [net.minecraft.advancements.AdvancementTree/]: Loaded 2 advancements +[28Mar2026 13:55:12.957] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Dynamic Transforms UBO, capacity limit of 2 reached during a single frame. New capacity will be 4. +[28Mar2026 13:55:13.006] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Dynamic Transforms UBO, capacity limit of 4 reached during a single frame. New capacity will be 8. +[28Mar2026 13:55:13.018] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 2 reached during a single frame. New capacity will be 4. +[28Mar2026 13:55:13.027] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 4 reached during a single frame. New capacity will be 8. +[28Mar2026 13:55:13.062] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 8 reached during a single frame. New capacity will be 16. +[28Mar2026 13:55:13.086] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 16 reached during a single frame. New capacity will be 32. +[28Mar2026 13:55:13.517] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 32 reached during a single frame. New capacity will be 64. +[28Mar2026 13:55:14.092] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 64 reached during a single frame. New capacity will be 128. +[28Mar2026 13:55:15.190] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 128 reached during a single frame. New capacity will be 256. +[28Mar2026 13:55:17.697] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Dynamic Transforms UBO, capacity limit of 8 reached during a single frame. New capacity will be 16. +[28Mar2026 13:55:17.837] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 256 reached during a single frame. New capacity will be 512. +[28Mar2026 13:55:19.526] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Dev has made the advancement [Cover Me with Diamonds] +[28Mar2026 13:55:19.534] [Render thread/INFO] [net.minecraft.client.gui.components.ChatComponent/]: [System] [CHAT] Dev has made the advancement [Cover Me with Diamonds] +[28Mar2026 13:55:19.535] [Render thread/INFO] [net.minecraft.advancements.AdvancementTree/]: Loaded 9 advancements +[28Mar2026 13:55:21.412] [Render thread/INFO] [net.minecraft.client.renderer.DynamicUniformStorage/]: Resizing Chunk Sections UBO, capacity limit of 512 reached during a single frame. New capacity will be 1024. +[28Mar2026 13:55:22.585] [Render thread/INFO] [net.minecraft.advancements.AdvancementTree/]: Loaded 11 advancements +[28Mar2026 13:55:24.881] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Dev has made the advancement [Acquire Hardware] +[28Mar2026 13:55:24.883] [Render thread/INFO] [net.minecraft.client.gui.components.ChatComponent/]: [System] [CHAT] Dev has made the advancement [Acquire Hardware] +[28Mar2026 13:55:24.890] [Render thread/INFO] [net.minecraft.advancements.AdvancementTree/]: Loaded 41 advancements +[28Mar2026 13:55:31.225] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Saving and pausing game... +[28Mar2026 13:55:31.234] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:overworld +[28Mar2026 13:55:31.261] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_nether +[28Mar2026 13:55:31.261] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_end +[28Mar2026 13:55:31.625] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Stopping server +[28Mar2026 13:55:31.625] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving players +[28Mar2026 13:55:31.631] [Server thread/INFO] [net.minecraft.server.network.ServerGamePacketListenerImpl/]: Dev lost connection: Disconnected +[28Mar2026 13:55:31.631] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Dev left the game +[28Mar2026 13:55:31.636] [Server thread/INFO] [net.minecraft.server.network.ServerCommonPacketListenerImpl/]: Stopping singleplayer server as player logged out +[28Mar2026 13:55:31.636] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving worlds +[28Mar2026 13:55:32.519] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:overworld +[28Mar2026 13:55:32.583] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_nether +[28Mar2026 13:55:32.586] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[New World]'/minecraft:the_end +[28Mar2026 13:55:32.591] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (world): All chunks are saved +[28Mar2026 13:55:32.591] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved +[28Mar2026 13:55:32.591] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved +[28Mar2026 13:55:32.591] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage: All dimensions are saved +[28Mar2026 13:55:33.753] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Stopping! diff --git a/neoforge/runs/client/options.txt b/neoforge/runs/client/options.txt new file mode 100644 index 0000000..ea44802 --- /dev/null +++ b/neoforge/runs/client/options.txt @@ -0,0 +1,187 @@ +version:4786 +ao:true +biomeBlendRadius:2 +chunkSectionFadeInTime:0.75 +cutoutLeaves:true +enableVsync:true +entityDistanceScaling:1.0 +entityShadows:true +forceUnicodeFont:false +japaneseGlyphVariants:false +fov:0.0 +fovEffectScale:1.0 +darknessEffectScale:1.0 +glintSpeed:0.5 +glintStrength:0.75 +graphicsPreset:"fancy" +prioritizeChunkUpdates:1 +fullscreen:false +exclusiveFullscreen:false +gamma:0.5 +guiScale:0 +maxAnisotropyBit:1 +textureFiltering:1 +maxFps:120 +improvedTransparency:false +inactivityFpsLimit:"afk" +mipmapLevels:4 +narrator:0 +particles:0 +reducedDebugInfo:false +renderClouds:"true" +cloudRange:64 +renderDistance:16 +simulationDistance:12 +screenEffectScale:1.0 +soundDevice:"" +vignette:true +weatherRadius:10 +autoJump:false +rotateWithMinecart:false +operatorItemsTab:false +autoSuggestions:true +chatColors:true +chatLinks:true +chatLinksPrompt:true +discrete_mouse_scroll:false +invertXMouse:false +invertYMouse:false +realmsNotifications:true +showSubtitles:false +directionalAudio:false +touchscreen:false +bobView:true +toggleCrouch:false +toggleSprint:false +toggleAttack:false +toggleUse:false +sprintWindow:7 +darkMojangStudiosBackground:false +hideLightningFlashes:false +hideSplashTexts:false +mouseSensitivity:0.5 +damageTiltStrength:1.0 +highContrast:false +highContrastBlockOutline:false +narratorHotkey:true +resourcePacks:[] +incompatibleResourcePacks:[] +lastServer: +lang:en_us +chatVisibility:0 +chatOpacity:1.0 +chatLineSpacing:0.0 +textBackgroundOpacity:0.5 +backgroundForChatOnly:true +hideServerAddress:false +advancedItemTooltips:false +pauseOnLostFocus:true +overrideWidth:0 +overrideHeight:0 +chatHeightFocused:1.0 +chatDelay:0.0 +chatHeightUnfocused:0.4375 +chatScale:1.0 +chatWidth:1.0 +notificationDisplayTime:1.0 +useNativeTransport:true +mainHand:"right" +attackIndicator:1 +tutorialStep:movement +mouseWheelSensitivity:1.0 +rawMouseInput:true +allowCursorChanges:true +glDebugVerbosity:1 +skipMultiplayerWarning:false +hideMatchedNames:true +joinedFirstServer:false +syncChunkWrites:true +showAutosaveIndicator:true +allowServerListing:true +onlyShowSecureChat:false +saveChatDrafts:false +panoramaScrollSpeed:1.0 +telemetryOptInExtra:false +onboardAccessibility:false +menuBackgroundBlurriness:5 +startedCleanly:true +musicToast:"never" +musicFrequency:"DEFAULT" +key_key.attack:key.mouse.left +key_key.use:key.mouse.right +key_key.forward:key.keyboard.w +key_key.left:key.keyboard.a +key_key.back:key.keyboard.s +key_key.right:key.keyboard.d +key_key.jump:key.keyboard.space +key_key.sneak:key.keyboard.left.shift +key_key.sprint:key.keyboard.left.control +key_key.drop:key.keyboard.q +key_key.inventory:key.keyboard.e +key_key.chat:key.keyboard.t +key_key.playerlist:key.keyboard.tab +key_key.pickItem:key.mouse.middle +key_key.command:key.keyboard.slash +key_key.socialInteractions:key.keyboard.p +key_key.toggleGui:key.keyboard.f1 +key_key.toggleSpectatorShaderEffects:key.keyboard.f4 +key_key.screenshot:key.keyboard.f2 +key_key.togglePerspective:key.keyboard.f5 +key_key.smoothCamera:key.keyboard.unknown +key_key.fullscreen:key.keyboard.f11 +key_key.spectatorOutlines:key.keyboard.unknown +key_key.spectatorHotbar:key.mouse.middle +key_key.swapOffhand:key.keyboard.f +key_key.saveToolbarActivator:key.keyboard.c +key_key.loadToolbarActivator:key.keyboard.x +key_key.advancements:key.keyboard.l +key_key.quickActions:key.keyboard.g +key_key.debug.overlay:key.keyboard.f3 +key_key.debug.modifier:key.keyboard.f3 +key_key.hotbar.1:key.keyboard.1 +key_key.hotbar.2:key.keyboard.2 +key_key.hotbar.3:key.keyboard.3 +key_key.hotbar.4:key.keyboard.4 +key_key.hotbar.5:key.keyboard.5 +key_key.hotbar.6:key.keyboard.6 +key_key.hotbar.7:key.keyboard.7 +key_key.hotbar.8:key.keyboard.8 +key_key.hotbar.9:key.keyboard.9 +key_key.debug.reloadChunk:key.keyboard.a +key_key.debug.showHitboxes:key.keyboard.b +key_key.debug.clearChat:key.keyboard.d +key_key.debug.crash:key.keyboard.c +key_key.debug.showChunkBorders:key.keyboard.g +key_key.debug.showAdvancedTooltips:key.keyboard.h +key_key.debug.copyRecreateCommand:key.keyboard.i +key_key.debug.spectate:key.keyboard.n +key_key.debug.switchGameMode:key.keyboard.f4 +key_key.debug.debugOptions:key.keyboard.f6 +key_key.debug.focusPause:key.keyboard.p +key_key.debug.dumpDynamicTextures:key.keyboard.s +key_key.debug.reloadResourcePacks:key.keyboard.t +key_key.debug.profiling:key.keyboard.l +key_key.debug.copyLocation:key.keyboard.c +key_key.debug.dumpVersion:key.keyboard.v +key_key.debug.profilingChart:key.keyboard.1 +key_key.debug.fpsCharts:key.keyboard.2 +key_key.debug.networkCharts:key.keyboard.3 +key_key.debug.lightmapTexture:key.keyboard.4 +soundCategory_master:1.0 +soundCategory_music:1.0 +soundCategory_record:1.0 +soundCategory_weather:1.0 +soundCategory_block:1.0 +soundCategory_hostile:1.0 +soundCategory_neutral:1.0 +soundCategory_player:1.0 +soundCategory_ambient:1.0 +soundCategory_voice:1.0 +soundCategory_ui:1.0 +modelPart_cape:true +modelPart_jacket:true +modelPart_left_sleeve:true +modelPart_right_sleeve:true +modelPart_left_pants_leg:true +modelPart_right_pants_leg:true +modelPart_hat:true diff --git a/neoforge/runs/client/saves/New World/data/minecraft/custom_boss_events.dat b/neoforge/runs/client/saves/New World/data/minecraft/custom_boss_events.dat new file mode 100644 index 0000000..9b0dbba Binary files /dev/null and b/neoforge/runs/client/saves/New World/data/minecraft/custom_boss_events.dat differ diff --git a/neoforge/runs/client/saves/New World/data/minecraft/game_rules.dat b/neoforge/runs/client/saves/New World/data/minecraft/game_rules.dat new file mode 100644 index 0000000..a3cbae7 Binary files /dev/null and b/neoforge/runs/client/saves/New World/data/minecraft/game_rules.dat differ diff --git a/neoforge/runs/client/saves/New World/data/minecraft/random_sequences.dat b/neoforge/runs/client/saves/New World/data/minecraft/random_sequences.dat new file mode 100644 index 0000000..d2520cc Binary files /dev/null and b/neoforge/runs/client/saves/New World/data/minecraft/random_sequences.dat differ diff --git a/neoforge/runs/client/saves/New World/data/minecraft/scheduled_events.dat b/neoforge/runs/client/saves/New World/data/minecraft/scheduled_events.dat new file mode 100644 index 0000000..5f1d35d Binary files /dev/null and b/neoforge/runs/client/saves/New World/data/minecraft/scheduled_events.dat differ diff --git a/neoforge/runs/client/saves/New World/data/minecraft/scoreboard.dat b/neoforge/runs/client/saves/New World/data/minecraft/scoreboard.dat new file mode 100644 index 0000000..9b0dbba Binary files /dev/null and b/neoforge/runs/client/saves/New World/data/minecraft/scoreboard.dat differ diff --git a/neoforge/runs/client/saves/New World/data/minecraft/stopwatches.dat b/neoforge/runs/client/saves/New World/data/minecraft/stopwatches.dat new file mode 100644 index 0000000..c7eb669 Binary files /dev/null and b/neoforge/runs/client/saves/New World/data/minecraft/stopwatches.dat differ diff --git a/neoforge/runs/client/saves/New World/data/minecraft/weather.dat b/neoforge/runs/client/saves/New World/data/minecraft/weather.dat new file mode 100644 index 0000000..eb436a9 Binary files /dev/null and b/neoforge/runs/client/saves/New World/data/minecraft/weather.dat differ diff --git a/neoforge/runs/client/saves/New World/data/minecraft/world_clocks.dat b/neoforge/runs/client/saves/New World/data/minecraft/world_clocks.dat new file mode 100644 index 0000000..fbcdb3f Binary files /dev/null and b/neoforge/runs/client/saves/New World/data/minecraft/world_clocks.dat differ diff --git a/neoforge/runs/client/saves/New World/data/minecraft/world_gen_settings.dat b/neoforge/runs/client/saves/New World/data/minecraft/world_gen_settings.dat new file mode 100644 index 0000000..3694c7c Binary files /dev/null and b/neoforge/runs/client/saves/New World/data/minecraft/world_gen_settings.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/minecraft/chunk_tickets.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/minecraft/chunk_tickets.dat new file mode 100644 index 0000000..9b0dbba Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/minecraft/chunk_tickets.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/minecraft/raids.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/minecraft/raids.dat new file mode 100644 index 0000000..4c40e20 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/minecraft/raids.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/minecraft/world_border.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/minecraft/world_border.dat new file mode 100644 index 0000000..2478b41 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/minecraft/world_border.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/neoforge/data_attachments.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/neoforge/data_attachments.dat new file mode 100644 index 0000000..9b0dbba Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/data/neoforge/data_attachments.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.-1.-1.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.-1.-1.mca new file mode 100644 index 0000000..4ea88d4 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.-1.-1.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.-1.0.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.-1.0.mca new file mode 100644 index 0000000..3087d5d Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.-1.0.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.0.-1.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.0.-1.mca new file mode 100644 index 0000000..bcefa66 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.0.-1.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.0.0.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.0.0.mca new file mode 100644 index 0000000..264a5a8 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/entities/r.0.0.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.-1.-1.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.-1.-1.mca new file mode 100644 index 0000000..a62fb43 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.-1.-1.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.-1.0.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.-1.0.mca new file mode 100644 index 0000000..a7b7881 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.-1.0.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.0.-1.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.0.-1.mca new file mode 100644 index 0000000..1a78c46 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.0.-1.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.0.0.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.0.0.mca new file mode 100644 index 0000000..57165a6 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/poi/r.0.0.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.-1.-1.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.-1.-1.mca new file mode 100644 index 0000000..f959baa Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.-1.-1.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.-1.0.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.-1.0.mca new file mode 100644 index 0000000..59a3b50 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.-1.0.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.0.-1.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.0.-1.mca new file mode 100644 index 0000000..7aed152 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.0.-1.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.0.0.mca b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.0.0.mca new file mode 100644 index 0000000..607cd60 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/overworld/region/r.0.0.mca differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/chunk_tickets.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/chunk_tickets.dat new file mode 100644 index 0000000..9b0dbba Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/chunk_tickets.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/ender_dragon_fight.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/ender_dragon_fight.dat new file mode 100644 index 0000000..5195fe3 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/ender_dragon_fight.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/raids.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/raids.dat new file mode 100644 index 0000000..4c40e20 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/raids.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/world_border.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/world_border.dat new file mode 100644 index 0000000..2478b41 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/minecraft/world_border.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/neoforge/data_attachments.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/neoforge/data_attachments.dat new file mode 100644 index 0000000..9b0dbba Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_end/data/neoforge/data_attachments.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/minecraft/chunk_tickets.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/minecraft/chunk_tickets.dat new file mode 100644 index 0000000..9b0dbba Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/minecraft/chunk_tickets.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/minecraft/raids.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/minecraft/raids.dat new file mode 100644 index 0000000..4c40e20 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/minecraft/raids.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/minecraft/world_border.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/minecraft/world_border.dat new file mode 100644 index 0000000..2478b41 Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/minecraft/world_border.dat differ diff --git a/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/neoforge/data_attachments.dat b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/neoforge/data_attachments.dat new file mode 100644 index 0000000..9b0dbba Binary files /dev/null and b/neoforge/runs/client/saves/New World/dimensions/minecraft/the_nether/data/neoforge/data_attachments.dat differ diff --git a/neoforge/runs/client/saves/New World/icon.png b/neoforge/runs/client/saves/New World/icon.png new file mode 100644 index 0000000..e68e9fd Binary files /dev/null and b/neoforge/runs/client/saves/New World/icon.png differ diff --git a/neoforge/runs/client/saves/New World/level.dat b/neoforge/runs/client/saves/New World/level.dat new file mode 100644 index 0000000..ff9a778 Binary files /dev/null and b/neoforge/runs/client/saves/New World/level.dat differ diff --git a/neoforge/runs/client/saves/New World/level.dat_old b/neoforge/runs/client/saves/New World/level.dat_old new file mode 100644 index 0000000..ec86757 Binary files /dev/null and b/neoforge/runs/client/saves/New World/level.dat_old differ diff --git a/neoforge/runs/client/saves/New World/players/advancements/380df991-f603-344c-a090-369bad2a924a.json b/neoforge/runs/client/saves/New World/players/advancements/380df991-f603-344c-a090-369bad2a924a.json new file mode 100644 index 0000000..4447842 --- /dev/null +++ b/neoforge/runs/client/saves/New World/players/advancements/380df991-f603-344c-a090-369bad2a924a.json @@ -0,0 +1,195 @@ +{ + "minecraft:recipes/combat/iron_leggings": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/combat/iron_chestplate": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/misc/bucket": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/combat/iron_helmet": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/transportation/minecart": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/tools/iron_hoe": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/misc/sentry_armor_trim_smithing_template": { + "criteria": { + "has_sentry_armor_trim_smithing_template": "2026-03-28 13:55:22 +1100" + }, + "done": true + }, + "minecraft:story/smelt_iron": { + "criteria": { + "iron": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/decorations/crafting_table": { + "criteria": { + "unlock_right_away": "2026-03-28 13:55:12 +1100" + }, + "done": true + }, + "minecraft:story/shiny_gear": { + "criteria": { + "diamond_chestplate": "2026-03-28 13:55:19 +1100" + }, + "done": true + }, + "minecraft:recipes/tools/shears": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/building_blocks/iron_block": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/decorations/smithing_table": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/decorations/lodestone": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/combat/iron_sword": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/tools/iron_pickaxe": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/combat/shield": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/redstone/hopper": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/decorations/iron_bars": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/combat/iron_boots": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/decorations/lantern": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/decorations/iron_chain": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/tools/iron_shovel": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/misc/sentry_armor_trim_smithing_template_smithing_trim": { + "criteria": { + "has_smithing_trim_template": "2026-03-28 13:55:22 +1100" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_trapdoor": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/tools/iron_axe": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/combat/crossbow": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:adventure/adventuring_time": { + "criteria": { + "minecraft:ice_spikes": "2026-03-28 13:55:13 +1100" + }, + "done": false + }, + "minecraft:recipes/combat/iron_spear": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_door": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "minecraft:recipes/redstone/heavy_weighted_pressure_plate": { + "criteria": { + "has_iron_ingot": "2026-03-28 13:55:24 +1100" + }, + "done": true + }, + "DataVersion": 4786 +} \ No newline at end of file diff --git a/neoforge/runs/client/saves/New World/players/data/380df991-f603-344c-a090-369bad2a924a.dat b/neoforge/runs/client/saves/New World/players/data/380df991-f603-344c-a090-369bad2a924a.dat new file mode 100644 index 0000000..912e09e Binary files /dev/null and b/neoforge/runs/client/saves/New World/players/data/380df991-f603-344c-a090-369bad2a924a.dat differ diff --git a/neoforge/runs/client/saves/New World/players/data/380df991-f603-344c-a090-369bad2a924a.dat_old b/neoforge/runs/client/saves/New World/players/data/380df991-f603-344c-a090-369bad2a924a.dat_old new file mode 100644 index 0000000..912e09e Binary files /dev/null and b/neoforge/runs/client/saves/New World/players/data/380df991-f603-344c-a090-369bad2a924a.dat_old differ diff --git a/neoforge/runs/client/saves/New World/players/stats/380df991-f603-344c-a090-369bad2a924a.json b/neoforge/runs/client/saves/New World/players/stats/380df991-f603-344c-a090-369bad2a924a.json new file mode 100644 index 0000000..0b630cb --- /dev/null +++ b/neoforge/runs/client/saves/New World/players/stats/380df991-f603-344c-a090-369bad2a924a.json @@ -0,0 +1,17 @@ +{ + "stats": { + "minecraft:used": { + "minecraft:smithing_table": 1 + }, + "minecraft:custom": { + "minecraft:interact_with_smithing_table": 1, + "minecraft:time_since_rest": 738, + "minecraft:walk_one_cm": 108, + "minecraft:total_world_time": 377, + "minecraft:leave_game": 1, + "minecraft:play_time": 369, + "minecraft:time_since_death": 369 + } + }, + "DataVersion": 4786 +} \ No newline at end of file diff --git a/neoforge/runs/client/saves/New World/serverconfig/readme.txt b/neoforge/runs/client/saves/New World/serverconfig/readme.txt new file mode 100644 index 0000000..c782a9f --- /dev/null +++ b/neoforge/runs/client/saves/New World/serverconfig/readme.txt @@ -0,0 +1,3 @@ +Any server configs put in this folder will override the corresponding server config from /config/. +If the config being transferred is in a subfolder of the base config folder make sure to include that folder here in the path to the file you are overwriting. +For example if you are overwriting a config with the path /config/ExampleMod/config-server.toml, you would need to put it in serverconfig/ExampleMod/config-server.toml diff --git a/neoforge/runs/client/saves/New World/session.lock b/neoforge/runs/client/saves/New World/session.lock new file mode 100644 index 0000000..0d7e5f8 --- /dev/null +++ b/neoforge/runs/client/saves/New World/session.lock @@ -0,0 +1 @@ +☃ \ No newline at end of file diff --git a/neoforge/runs/client/usercache.json b/neoforge/runs/client/usercache.json new file mode 100644 index 0000000..d744040 --- /dev/null +++ b/neoforge/runs/client/usercache.json @@ -0,0 +1 @@ +[{"uuid":"380df991-f603-344c-a090-369bad2a924a","name":"Dev","expiresOn":"2026-04-28 13:55:12 +1000"}] \ No newline at end of file diff --git a/neoforge/runs/client/usernamecache.json b/neoforge/runs/client/usernamecache.json new file mode 100644 index 0000000..ab4a85d --- /dev/null +++ b/neoforge/runs/client/usernamecache.json @@ -0,0 +1,3 @@ +{ + "380df991-f603-344c-a090-369bad2a924a": "Dev" +} \ No newline at end of file diff --git a/neoforge/src/main/java/net/frozenblock/trimpatcher/TrimPatcherNeoForgeClient.java b/neoforge/src/main/java/net/frozenblock/trimpatcher/TrimPatcherNeoForgeClient.java new file mode 100644 index 0000000..dca7e61 --- /dev/null +++ b/neoforge/src/main/java/net/frozenblock/trimpatcher/TrimPatcherNeoForgeClient.java @@ -0,0 +1,15 @@ +package net.frozenblock.trimpatcher; + +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.loading.FMLLoader; + +@Mod(value = TPConstants.MOD_ID, dist = Dist.CLIENT) +public class TrimPatcherNeoForgeClient { + + public TrimPatcherNeoForgeClient(IEventBus modEventBus) { + TPConstants.UNSTABLE_LOGGING = !FMLLoader.getCurrent().isProduction(); + TrimPatcherClient.init(); + } +} diff --git a/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 0000000..d329f94 --- /dev/null +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,36 @@ +modLoader="javafml" +loaderVersion="[1,)" +license="${license}" +issueTrackerURL="https://github.com/FrozenBlock/TrimPatcher/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}-neoforge" +displayName="${mod_name}" +displayURL="https://github.com/FrozenBlock/TrimPatcher" +logoFile="assets/icon.png" +authors="${mod_author}" +description=''' +${mod_description} +''' + +[[dependencies.${mod_id}]] +modId="neoforge" +type="required" +ordering="NONE" +side="BOTH" + +[[dependencies.${mod_id}]] +modId="minecraft" +type="required" +versionRange="${neoforge_minecraft_version}" +ordering="NONE" +side="BOTH" + +[[accessTransformers]] +file="META-INF/accesstransformer.cfg" + +[[mixins]] +config = "trimpatcher.mixins.json" +[[mixins]] +config = "trimpatcher-neoforge.mixins.json" diff --git a/neoforge/src/main/resources/trimpatcher-neoforge.mixins.json b/neoforge/src/main/resources/trimpatcher-neoforge.mixins.json new file mode 100644 index 0000000..69ae8ba --- /dev/null +++ b/neoforge/src/main/resources/trimpatcher-neoforge.mixins.json @@ -0,0 +1,12 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.frozenblock.trimpatcher.mixin", + "compatibilityLevel": "JAVA_25", + "mixins": [], + "client": [], + "server": [], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..1ef95fd --- /dev/null +++ b/settings.gradle @@ -0,0 +1,38 @@ +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + exclusiveContent { + forRepository { + maven { + name = 'Fabric' + url = uri('https://maven.fabricmc.net') + } + } + filter { + includeGroupAndSubgroups('net.fabricmc') + } + } + exclusiveContent { + forRepository { + maven { + name = 'Sponge' + url = uri('https://repo.spongepowered.org/repository/maven-public') + } + } + filter { + includeGroupAndSubgroups("org.spongepowered") + } + } + } +} + +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' +} + +// This should match the folder name of the project, or else IDEA may complain (see https://youtrack.jetbrains.com/issue/IDEA-317606) +rootProject.name = 'Trim Patcher' +include('common') +include('fabric') +include('neoforge') diff --git a/settings.gradle.kts b/settings.gradle.kts deleted file mode 100644 index e6b48e4..0000000 --- a/settings.gradle.kts +++ /dev/null @@ -1,28 +0,0 @@ -pluginManagement { - repositories { - maven { - name = "Quilt" - setUrl("https://maven.quiltmc.org/repository/release/") - } - maven { - name = "Quilt Snapshot" - setUrl("https://maven.quiltmc.org/repository/snapshot/") - } - maven { - name = "Fabric" - setUrl("https://maven.fabricmc.net/") - } - maven { - name = "Forge" - setUrl("https://files.minecraftforge.net/maven/") - } - maven { - name = "Jitpack" - setUrl("https://jitpack.io/") - } - mavenCentral() - gradlePluginPortal() - } -} - -rootProject.name = "Trim Patcher" diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json deleted file mode 100644 index 234030b..0000000 --- a/src/main/resources/fabric.mod.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "schemaVersion": 1, - "id": "${mod_id}", - "version": "${version}", - "name": "Trim Patcher", - "description": "Makes Armor Trims and Trim Materials from any mod work together seamlessly on all Armor items!", - "authors": [ - "AViewFromTheTop/Lunade" - ], - "contact": { - "homepage": "https://modrinth.com/mod/trim-patcher", - "sources": "https://github.com/FrozenBlock/TrimPatcher", - "issues": "https://github.com/FrozenBlock/TrimPatcher/issues" - }, - "license": "GPL-3.0", - "icon": "assets/trimpatcher/icon.png", - "environment": "*", - "entrypoints": { - "client": [ - "net.frozenblock.trimpatcher.TrimPatcherClient" - ] - }, - "mixins": [ - "trimpatcher.mixins.json" - ], - "accessWidener": "trimpatcher.classtweaker", - "depends": { - "fabric-api": "*", - "minecraft": "${minecraft_version}", - "java": ">=25" - }, - "custom": { - "modmenu": { - "links": { - "X": "https://x.com/FB_Oasis", - "Bluesky": "https://bsky.app/profile/frozenblock.bsky.social", - "modmenu.discord": "https://discord.gg/frozenblock", - "modmenu.modrinth": "https://modrinth.com/organization/frozenblock", - "modmenu.youtube": "https://www.youtube.com/@frozenblockmoddingoasismod", - "modmenu.kofi": "https://ko-fi.com/frozenblock" - } - } - } -}