diff --git a/build.gradle b/build.gradle index 71c5be4..2827219 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.1-SNAPSHOT" apply false + id "dev.architectury.loom" version "1.5-SNAPSHOT" apply false } architectury { @@ -18,7 +18,6 @@ subprojects { apply plugin: "dev.architectury.loom" loom { - silentMojangMappingsLicense() } dependencies { diff --git a/common/build.gradle b/common/build.gradle index e249a2f..62246a9 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -3,8 +3,6 @@ architectury { common(rootProject.enabled_platforms.split(",")) } -loom { -} repositories { maven { url "https://api.modrinth.com/maven" } } @@ -19,17 +17,3 @@ dependencies { // Remove the next line if you don't want to depend on the API //modApi "dev.architectury:architectury:${rootProject.architectury_version}" } - -publishing { - publications { - mavenCommon(MavenPublication) { - artifactId = rootProject.archives_base_name - from components.java - } - } - - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. - repositories { - // Add repositories to publish to here. - } -} diff --git a/common/src/main/resources/resourcepacks/smartleaves/pack.mcmeta b/common/src/main/resources/resourcepacks/smartleaves/pack.mcmeta index abf613c..99bba8a 100755 --- a/common/src/main/resources/resourcepacks/smartleaves/pack.mcmeta +++ b/common/src/main/resources/resourcepacks/smartleaves/pack.mcmeta @@ -1,6 +1,7 @@ { "pack": { "pack_format": 15, + "supported_formats": [15, 99], "description": "ยง2Makes leaves look identical to OptiFine's smart leaves" } } diff --git a/fabric-like/build.gradle b/fabric-like/build.gradle index 5f1e660..f2bbd3e 100644 --- a/fabric-like/build.gradle +++ b/fabric-like/build.gradle @@ -12,5 +12,5 @@ dependencies { // Remove the next line if you don't want to depend on the API //modApi "dev.architectury:architectury-fabric:${rootProject.architectury_version}" - compileClasspath(project(path: ":common", configuration: "namedElements")) { transitive false } + compileOnly(project(path: ":common", configuration: "namedElements")) { transitive false } } diff --git a/fabric/build.gradle b/fabric/build.gradle index c28f9ed..00ba637 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -46,21 +46,18 @@ processResources { } } + shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] - classifier "dev-shadow" + archiveClassifier = "dev-shadow" } remapJar { + injectAccessWidener = true input.set shadowJar.archiveFile dependsOn shadowJar - classifier null -} - -jar { - classifier "dev" } sourcesJar { @@ -78,7 +75,7 @@ components.java { publishing { publications { mavenFabric(MavenPublication) { - artifactId = rootProject.archives_base_name + "-" + project.name + artifactId = archives_base_name + "-" + project.name from components.java } } @@ -87,4 +84,4 @@ publishing { repositories { // Add repositories to publish to here. } -} +} \ No newline at end of file diff --git a/forge/gradle.properties b/forge/gradle.properties deleted file mode 100644 index 32f842a..0000000 --- a/forge/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -loom.platform=forge \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 79f0034..90aec9e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,21 +1,20 @@ org.gradle.jvmargs=-Xmx4096M -minecraft_version=1.20.1 -yarn_mappings=1.20.1+build.9 -enabled_platforms=quilt,fabric,forge +minecraft_version=1.20.4 +yarn_mappings=1.20.4+build.3 +enabled_platforms=fabric,neoforge archives_base_name=cullleaves -mod_version=3.2.0 +mod_version=3.3.0 maven_group=eu.midnightdust -architectury_version=6.2.43 -midnightlib_version=1.4.1 -sodium_version=mc1.20.1-0.5.2 +midnightlib_version=1.5.3 +sodium_version=mc1.20.4-0.5.8 -fabric_loader_version=0.14.21 -fabric_api_version=0.85.0+1.20.1 +fabric_loader_version=0.15.7 +fabric_api_version=0.96.3+1.20.4 -forge_version=1.20.1-47.1.0 +neoforge_version=20.4.170 quilt_loader_version=0.18.9 quilt_fabric_api_version=7.0.6+0.85.0-1.20.1 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f398c33..509c4a2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/forge/build.gradle b/neoforge/build.gradle similarity index 80% rename from forge/build.gradle rename to neoforge/build.gradle index f6edf87..24adb77 100644 --- a/forge/build.gradle +++ b/neoforge/build.gradle @@ -5,16 +5,13 @@ plugins { architectury { injectInjectables = false platformSetupLoomIde() - forge() + neoForge() } -loom { - forge { - mixinConfig "cullleaves.mixins.json" - } -} +loom {} repositories { maven { url "https://api.modrinth.com/maven" } + maven {url "https://maven.neoforged.net/releases"} } configurations { @@ -23,18 +20,18 @@ configurations { compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common developmentForge.extendsFrom common - archivesBaseName = rootProject.archives_base_name + "-forge" + archivesBaseName = rootProject.archives_base_name + "-neoforge" } dependencies { - forge "net.minecraftforge:forge:${rootProject.forge_version}" + neoForge "net.neoforged:neoforge:${rootProject.neoforge_version}" // Remove the next line if you don't want to depend on the API //modApi "dev.architectury:architectury-forge:${rootProject.architectury_version}" - modImplementation "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-forge" + modImplementation "maven.modrinth:midnightlib:1.5.2-neoforge" //include "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-forge" common(project(path: ":common", configuration: "namedElements")) { transitive false } - shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false } + shadowCommon(project(path: ":common", configuration: "transformProductionNeoForge")) { transitive = false } } processResources { @@ -50,17 +47,12 @@ shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] - classifier "dev-shadow" + archiveClassifier = "dev-shadow" } remapJar { input.set shadowJar.archiveFile dependsOn shadowJar - classifier null -} - -jar { - classifier "dev" } sourcesJar { @@ -77,7 +69,7 @@ components.java { publishing { publications { - mavenForge(MavenPublication) { + mavenNeoForge(MavenPublication) { artifactId = rootProject.archives_base_name + "-" + project.name from components.java } @@ -87,4 +79,4 @@ publishing { repositories { // Add repositories to publish to here. } -} +} \ No newline at end of file diff --git a/neoforge/gradle.properties b/neoforge/gradle.properties new file mode 100644 index 0000000..2914393 --- /dev/null +++ b/neoforge/gradle.properties @@ -0,0 +1 @@ +loom.platform=neoforge \ No newline at end of file diff --git a/forge/src/main/java/eu/midnightdust/cullleaves/forge/CullLeavesClientEvents.java b/neoforge/src/main/java/eu/midnightdust/cullleaves/neoforge/CullLeavesClientEvents.java similarity index 50% rename from forge/src/main/java/eu/midnightdust/cullleaves/forge/CullLeavesClientEvents.java rename to neoforge/src/main/java/eu/midnightdust/cullleaves/neoforge/CullLeavesClientEvents.java index 28bd18d..5469225 100644 --- a/forge/src/main/java/eu/midnightdust/cullleaves/forge/CullLeavesClientEvents.java +++ b/neoforge/src/main/java/eu/midnightdust/cullleaves/neoforge/CullLeavesClientEvents.java @@ -1,15 +1,17 @@ -package eu.midnightdust.cullleaves.forge; +package eu.midnightdust.cullleaves.neoforge; -import net.minecraft.resource.*; +import net.minecraft.resource.DirectoryResourcePack; +import net.minecraft.resource.ResourcePackProfile; +import net.minecraft.resource.ResourcePackSource; +import net.minecraft.resource.ResourceType; import net.minecraft.text.Text; import net.minecraft.util.Identifier; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.event.AddPackFindersEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.forgespi.locating.IModFile; -import net.minecraftforge.resource.PathPackResources; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.ModList; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.event.AddPackFindersEvent; +import net.neoforged.neoforgespi.locating.IModFile; @Mod.EventBusSubscriber(modid = "cullleaves", bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) public class CullLeavesClientEvents { @@ -22,9 +24,10 @@ public class CullLeavesClientEvents { private static void registerResourcePack(AddPackFindersEvent event, Identifier id, boolean alwaysEnabled) { event.addRepositorySource((profileAdder -> { IModFile file = ModList.get().getModFileById(id.getNamespace()).getFile(); - try (PathPackResources pack = new PathPackResources(id.toString(), true, file.findResource("resourcepacks/"+id.getPath()))) { - profileAdder.accept(ResourcePackProfile.create(id.toString(), Text.of(id.getNamespace()+"/"+id.getPath()), alwaysEnabled, a -> pack, ResourceType.CLIENT_RESOURCES, ResourcePackProfile.InsertionPosition.TOP, ResourcePackSource.BUILTIN)); - } catch (NullPointerException e) {e.printStackTrace();} + try { + ResourcePackProfile.PackFactory pack = new DirectoryResourcePack.DirectoryBackedFactory(file.findResource("resourcepacks/" + id.getPath()), true); + profileAdder.accept(ResourcePackProfile.create(id.toString(), Text.of(id.getNamespace()+"/"+id.getPath()), alwaysEnabled, pack, ResourceType.CLIENT_RESOURCES, ResourcePackProfile.InsertionPosition.TOP, ResourcePackSource.BUILTIN)); + } catch (NullPointerException e) {e.fillInStackTrace();} })); } } diff --git a/forge/src/main/java/eu/midnightdust/cullleaves/forge/CullLeavesClientForge.java b/neoforge/src/main/java/eu/midnightdust/cullleaves/neoforge/CullLeavesClientForge.java similarity index 57% rename from forge/src/main/java/eu/midnightdust/cullleaves/forge/CullLeavesClientForge.java rename to neoforge/src/main/java/eu/midnightdust/cullleaves/neoforge/CullLeavesClientForge.java index a982f39..eb078a4 100644 --- a/forge/src/main/java/eu/midnightdust/cullleaves/forge/CullLeavesClientForge.java +++ b/neoforge/src/main/java/eu/midnightdust/cullleaves/neoforge/CullLeavesClientForge.java @@ -1,21 +1,20 @@ -package eu.midnightdust.cullleaves.forge; +package eu.midnightdust.cullleaves.neoforge; import eu.midnightdust.cullleaves.config.CullLeavesConfig; import eu.midnightdust.lib.config.MidnightConfig; -import net.minecraftforge.client.ConfigScreenHandler; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.IExtensionPoint; -import net.minecraftforge.fml.ModLoadingContext; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.network.NetworkConstants; +import net.neoforged.fml.IExtensionPoint; +import net.neoforged.fml.ModLoadingContext; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.client.ConfigScreenHandler; + +import static net.neoforged.fml.IExtensionPoint.DisplayTest.IGNORESERVERONLY; @Mod("cullleaves") public class CullLeavesClientForge { public CullLeavesClientForge() { MidnightConfig.init("cullleaves", CullLeavesConfig.class); - ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> NetworkConstants.IGNORESERVERONLY, (remote, server) -> true)); + ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> IGNORESERVERONLY, (remote, server) -> true)); ModLoadingContext.get().registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () -> new ConfigScreenHandler.ConfigScreenFactory((client, parent) -> MidnightConfig.getScreen(parent, "cullleaves"))); - MinecraftForge.EVENT_BUS.register(new CullLeavesClientEvents()); } } \ No newline at end of file diff --git a/forge/src/main/resources/META-INF/mods.toml b/neoforge/src/main/resources/META-INF/mods.toml similarity index 73% rename from forge/src/main/resources/META-INF/mods.toml rename to neoforge/src/main/resources/META-INF/mods.toml index adbc11d..5dc29f9 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/neoforge/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader = "javafml" -loaderVersion = "[43,)" +loaderVersion = "[1,)" #issueTrackerURL = "" license = "MIT License" @@ -13,23 +13,26 @@ Adds culling to leaf blocks, providing a huge performance boost over vanilla. ''' logoFile = "icon.png" +[[mixins]] +config = "cullleaves.mixins.json" + [[dependencies.cullleaves]] -modId = "forge" -mandatory = true -versionRange = "[43,)" +modId = "neoforge" +required = true +versionRange = "[20.3,)" ordering = "NONE" side = "CLIENT" [[dependencies.cullleaves]] modId = "minecraft" -mandatory = true -versionRange = "[1.19.2,)" +required = true +versionRange = "[1.20,)" ordering = "NONE" side = "CLIENT" [[dependencies.cullleaves]] modId = "midnightlib" -mandatory = true +required = true versionRange = "[1.0.0,)" ordering = "BEFORE" side = "CLIENT" \ No newline at end of file diff --git a/forge/src/main/resources/icon.png b/neoforge/src/main/resources/icon.png similarity index 100% rename from forge/src/main/resources/icon.png rename to neoforge/src/main/resources/icon.png diff --git a/forge/src/main/resources/pack.mcmeta b/neoforge/src/main/resources/pack.mcmeta similarity index 100% rename from forge/src/main/resources/pack.mcmeta rename to neoforge/src/main/resources/pack.mcmeta diff --git a/settings.gradle b/settings.gradle index 231e72f..40a5f36 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,7 +2,7 @@ pluginManagement { repositories { maven { url "https://maven.fabricmc.net/" } maven { url "https://maven.architectury.dev/" } - maven { url "https://maven.minecraftforge.net/" } + maven { url "https://maven.neoforged.net/releases" } gradlePluginPortal() } } @@ -10,7 +10,7 @@ pluginManagement { include("common") include("fabric-like") include("fabric") -include("quilt") -include("forge") +//include("quilt") +include("neoforge") rootProject.name = "cullleaves"