From 4442fda70a2b3291dbe6ba87d249276b411658fc Mon Sep 17 00:00:00 2001 From: coolGi Date: Mon, 13 Feb 2023 18:10:27 +1030 Subject: [PATCH] Did the bear minimum to make forge "work" so we can do testing on the new build system --- 1.18.2.properties | 8 +-- build.gradle | 18 +++--- .../common/wrappers/chunk/ChunkWrapper.java | 4 +- forge/build.gradle | 5 +- .../java/com/seibel/lod/forge/ForgeMain.java | 63 ++++++++++--------- .../forge/wrappers/ForgeDependencySetup.java | 3 + .../resources/DistantHorizons.mixins.json | 18 +++--- 7 files changed, 68 insertions(+), 51 deletions(-) diff --git a/1.18.2.properties b/1.18.2.properties index 501c080a6..c175a485c 100644 --- a/1.18.2.properties +++ b/1.18.2.properties @@ -2,12 +2,12 @@ java_version = 17 minecraft_version=1.18.2 -parchment_version=2022.03.13 +parchment_version=2022.11.06 compatible_minecraft_versions=["1.18.2"] # Fabric loader -fabric_loader_version=0.13.3 -fabric_api_version=0.48.0+1.18.2 +fabric_loader_version=0.14.14 +fabric_api_version=0.67.1+1.18.2 architectury_version=4.4.59 # Fabric mod versions modmenu_version=3.1.0 @@ -33,7 +33,7 @@ architectury_version=4.4.59 enable_canvas=0 # Forge loader -forge_version=40.0.18 +forge_version=40.2.1 # Forge mod versions starlight_version_forge= terraforged_version= diff --git a/build.gradle b/build.gradle index f677f44cf..b8543de69 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ plugins { // Plugin to help in developing multi-loader mods id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "0.12.0-SNAPSHOT" apply false + id "dev.architectury.loom" version "1.0-SNAPSHOT" apply false // Plugin to handle dependencies id 'com.github.johnrengelman.shadow' version '7.0.0' apply false @@ -195,7 +195,7 @@ subprojects { p -> implementation("org.junit.jupiter:junit-jupiter:5.8.2") implementation("org.junit.jupiter:junit-jupiter-engine:5.8.2") implementation("junit:junit:4.13") - + // Compression shadowMe("org.tukaani:xz:1.9") shadowMe("org.apache.commons:commons-compress:1.21") @@ -204,13 +204,15 @@ subprojects { p -> shadowMe("com.electronwill.night-config:toml:${rootProject.nightconfig_version}") shadowMe("com.electronwill.night-config:json:${rootProject.nightconfig_version}") - // Theming - shadowMe("com.formdev:flatlaf:${rootProject.flatlaf_version}") + if (p == project(":core")) { + // Theming + shadowMe("com.formdev:flatlaf:${rootProject.flatlaf_version}") + + // SVG + shadowMe("com.formdev:flatlaf-extras:${rootProject.flatlaf_version}") + shadowMe("com.formdev:svgSalamander:${rootProject.svgSalamander_version}") + } - // SVG - shadowMe("com.formdev:flatlaf-extras:${rootProject.flatlaf_version}") - shadowMe("com.formdev:svgSalamander:${rootProject.svgSalamander_version}") - //==========================// diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkWrapper.java index 665874da5..65a8103c5 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkWrapper.java @@ -40,7 +40,9 @@ import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.levelgen.Heightmap; -import javax.annotation.Nullable; +// Which nullable should be used??? +import org.jetbrains.annotations.Nullable; +//import javax.annotation.Nullable; /** * diff --git a/forge/build.gradle b/forge/build.gradle index 0d592b9bc..2ce6ba5a3 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -51,12 +51,15 @@ dependencies { // Starlight addMod("curse.maven:starlight-forge-526854:${rootProject.starlight_version_forge}", rootProject.enable_starlight_forge) - annotationProcessor "org.spongepowered:mixin:0.8.4:processor" +// annotationProcessor "org.spongepowered:mixin:0.8.4:processor" addMod("curse.maven:TerraForged-363820:${rootProject.terraforged_version}", rootProject.enable_terraforged) common(project(path: ":common", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive false } +// shadowMe files(project(":common").file("build/libs/DistantHorizons-${rootProject.mod_version}-transformProductionFabric.jar")) + shadowMe files(project(":core").file("build/libs/DistantHorizons-${rootProject.mod_version}.jar")) + shadowMe files(project(":api").file("build/libs/DistantHorizons-API-${rootProject.mod_version}.jar")) } processResources { diff --git a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java index bb3815b41..21793d32a 100644 --- a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java +++ b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java @@ -29,9 +29,13 @@ import com.seibel.lod.common.wrappers.minecraft.MinecraftClientWrapper; import com.seibel.lod.core.DependencyInjection.ApiEventInjector; import com.seibel.lod.core.ModInfo; import com.seibel.lod.core.ReflectionHandler; +import com.seibel.lod.core.config.Config; import com.seibel.lod.core.dependencyInjection.ModAccessorInjector; import com.seibel.lod.core.dependencyInjection.SingletonInjector; import com.seibel.lod.core.logging.DhLoggerBuilder; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper; +import com.seibel.lod.core.wrapperInterfaces.modAccessor.IBCLibAccessor; +import com.seibel.lod.core.wrapperInterfaces.modAccessor.IModChecker; import com.seibel.lod.core.wrapperInterfaces.modAccessor.IOptifineAccessor; import com.seibel.lod.forge.wrappers.ForgeDependencySetup; @@ -84,6 +88,10 @@ public class ForgeMain implements LodForgeMethodCaller public ForgeMain() { + DependencySetup.createClientBindings(); + +// initDedicated(null); +// initDedicated(null); // Register the mod initializer (Actual event registration is done in the different proxies) FMLJavaModLoadingContext.get().getModEventBus().addListener(this::initClient); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::initDedicated); @@ -91,36 +99,18 @@ public class ForgeMain implements LodForgeMethodCaller private void initClient(final FMLClientSetupEvent event) { - DependencySetup.createClientBindings(); - initCommon(); + ApiEventInjector.INSTANCE.fireAllEvents(DhApiBeforeDhInitEvent.class, null); + + LOGGER.info("Initializing Mod"); + LodCommonMain.startup(this); + ForgeDependencySetup.createInitialBindings(); + LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION); client_proxy = new ForgeClientProxy(); MinecraftForge.EVENT_BUS.register(client_proxy); server_proxy = new ForgeServerProxy(false); MinecraftForge.EVENT_BUS.register(server_proxy); - postInitCommon(); - } - - private void initDedicated(final FMLDedicatedServerSetupEvent event) - { - DependencySetup.createServerBindings(); - initCommon(); - - server_proxy = new ForgeServerProxy(true); - MinecraftForge.EVENT_BUS.register(server_proxy); - - postInitCommon(); - } - - private void initCommon() - { - ApiEventInjector.INSTANCE.fireAllEvents(DhApiBeforeDhInitEvent.class, null); - - LodCommonMain.startup(this); - ForgeDependencySetup.createInitialBindings(); - LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION); - if (ReflectionHandler.INSTANCE.optifinePresent()) { ModAccessorInjector.INSTANCE.bind(IOptifineAccessor.class, new OptifineAccessor()); } @@ -131,16 +121,33 @@ public class ForgeMain implements LodForgeMethodCaller ModLoadingContext.get().registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class, () -> new ConfigGuiHandler.ConfigGuiFactory((client, parent) -> GetConfigScreen.getScreen(parent))); #endif + + LOGGER.info(ModInfo.READABLE_NAME + " Initialized"); + + ApiEventInjector.INSTANCE.fireAllEvents(DhApiAfterDhInitEvent.class, null); + + // Init config + // The reason im initialising in this rather than the post init process is cus im using this for the auto updater + LodCommonMain.initConfig(); + } + + private void initDedicated(final FMLDedicatedServerSetupEvent event) + { +// DependencySetup.createServerBindings(); +// initCommon(); + +// server_proxy = new ForgeServerProxy(true); +// MinecraftForge.EVENT_BUS.register(server_proxy); +// + postInitCommon(); } private void postInitCommon() { LOGGER.info("Post-Initializing Mod"); - SingletonInjector.INSTANCE.runDelayedSetup(); - LodCommonMain.initConfig(); + ForgeDependencySetup.runDelayedSetup(); + LOGGER.info("Mod Post-Initialized"); - - ApiEventInjector.INSTANCE.fireAllEvents(DhApiAfterDhInitEvent.class, null); } private final ModelDataMap dataMap = new ModelDataMap.Builder().build(); diff --git a/forge/src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java b/forge/src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java index 3eaacb9fd..7f48d2147 100644 --- a/forge/src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java +++ b/forge/src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java @@ -40,4 +40,7 @@ public class ForgeDependencySetup SingletonInjector.INSTANCE.bind(IModChecker.class, ModChecker.INSTANCE); } + public static void runDelayedSetup() { + SingletonInjector.INSTANCE.runDelayedSetup(); + } } diff --git a/forge/src/main/resources/DistantHorizons.mixins.json b/forge/src/main/resources/DistantHorizons.mixins.json index ea64d31cb..3254ee23b 100644 --- a/forge/src/main/resources/DistantHorizons.mixins.json +++ b/forge/src/main/resources/DistantHorizons.mixins.json @@ -3,18 +3,18 @@ "minVersion": "0.8", "package": "com.seibel.lod.forge.mixins", "mixins": [ - "com.seibel.lod.forge.mixins.server.unsafe.MixinThreadingDetector", - "com.seibel.lod.forge.mixins.server.MixinUtilBackgroundThread", - "com.seibel.lod.forge.mixins.server.MixinChunkGenerator", + "server.unsafe.MixinThreadingDetector", + "server.MixinUtilBackgroundThread", + "server.MixinChunkGenerator", "server.MixinTFChunkGenerator" ], "client": [ - "com.seibel.lod.forge.mixins.client.MixinDebugScreenOverlay", - "com.seibel.lod.forge.mixins.client.MixinFogRenderer", - "com.seibel.lod.forge.mixins.client.MixinGameRenderer", - "com.seibel.lod.forge.mixins.client.MixinLevelRenderer", - "com.seibel.lod.forge.mixins.client.MixinLightmap", - "com.seibel.lod.forge.mixins.client.MixinOptionsScreen" + "client.MixinDebugScreenOverlay", + "client.MixinFogRenderer", + "client.MixinGameRenderer", + "client.MixinLevelRenderer", + "client.MixinLightmap", + "client.MixinOptionsScreen" ], "server": [], "plugin": "com.seibel.lod.forge.mixins.ForgeMixinPlugin"