Port to 1.20.4 & Migrate to NeoForge

This commit is contained in:
Martin Prokoph
2024-02-22 14:23:17 +01:00
parent 1877e7d65d
commit 41a4ddf633
16 changed files with 65 additions and 88 deletions

View File

@@ -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 {

View File

@@ -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.
}
}

View File

@@ -1,6 +1,7 @@
{
"pack": {
"pack_format": 15,
"supported_formats": [15, 99],
"description": "§2Makes leaves look identical to OptiFine's smart leaves"
}
}

View File

@@ -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 }
}

View File

@@ -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.
}
}
}

View File

@@ -1 +0,0 @@
loom.platform=forge

View File

@@ -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

View File

@@ -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

View File

@@ -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.
}
}
}

View File

@@ -0,0 +1 @@
loom.platform=neoforge

View File

@@ -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();}
}));
}
}

View File

@@ -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());
}
}

View File

@@ -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"

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -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"