From 1fbc37f8e7a55eed588f6e8afd2a16ddab1b7d92 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sun, 14 Jan 2024 16:55:55 -0600 Subject: [PATCH] Initializer code reduction and reformatting --- .../common/AbstractModInitializer.java | 135 ++++++++-------- .../distanthorizons/common/IEventProxy.java | 6 - .../block/TintGetterOverrideFast.java | 13 +- .../block/TintGetterOverrideSmooth.java | 148 ++++-------------- .../fabric/FabricClientProxy.java | 12 +- .../distanthorizons/fabric/FabricMain.java | 37 +---- .../fabric/FabricServerProxy.java | 5 +- .../wrappers/FabricDependencySetup.java | 48 ------ .../forge/ForgeClientProxy.java | 5 +- .../distanthorizons/forge/ForgeMain.java | 35 +---- .../forge/ForgeServerProxy.java | 7 +- .../forge/wrappers/ForgeDependencySetup.java | 48 ------ .../neoforge/NeoforgeClientProxy.java | 5 +- .../neoforge/NeoforgeMain.java | 42 ++--- .../neoforge/NeoforgeServerProxy.java | 4 +- .../wrappers/NeoforgeDependencySetup.java | 48 ------ 16 files changed, 139 insertions(+), 459 deletions(-) delete mode 100644 common/src/main/java/com/seibel/distanthorizons/common/IEventProxy.java delete mode 100644 fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/FabricDependencySetup.java delete mode 100644 forge/src/main/java/com/seibel/distanthorizons/forge/wrappers/ForgeDependencySetup.java delete mode 100644 neoforge/src/main/java/com/seibel/distanthorizons/neoforge/wrappers/NeoforgeDependencySetup.java diff --git a/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java b/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java index c811a78c4..1c9def3a3 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java @@ -1,13 +1,6 @@ package com.seibel.distanthorizons.common; -import com.mojang.brigadier.Command; import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.arguments.BoolArgumentType; -import com.mojang.brigadier.arguments.DoubleArgumentType; -import com.mojang.brigadier.arguments.IntegerArgumentType; -import com.mojang.brigadier.builder.LiteralArgumentBuilder; -import com.mojang.brigadier.context.CommandContext; import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiAfterDhInitEvent; import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiBeforeDhInitEvent; import com.seibel.distanthorizons.common.wrappers.DependencySetup; @@ -16,13 +9,10 @@ import com.seibel.distanthorizons.core.api.internal.SharedApi; import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.config.ConfigBase; import com.seibel.distanthorizons.core.config.eventHandlers.presets.ThreadPresetConfigEventHandler; -import com.seibel.distanthorizons.core.config.types.AbstractConfigType; -import com.seibel.distanthorizons.core.config.types.ConfigEntry; import com.seibel.distanthorizons.core.dependencyInjection.ModAccessorInjector; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.jar.ModJarInfo; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; -import com.seibel.distanthorizons.core.util.objects.Pair; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IModAccessor; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IModChecker; import com.seibel.distanthorizons.coreapi.DependencyInjection.ApiEventInjector; @@ -32,35 +22,32 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.server.dedicated.DedicatedServer; import org.apache.logging.log4j.Logger; -#if MC_VER >= MC_1_19_2 -import net.minecraft.network.chat.Component; -#else // < 1.19.2 -import net.minecraft.network.chat.TranslatableComponent; -#endif - import java.lang.invoke.MethodHandles; -import java.util.HashMap; -import java.util.function.BiFunction; import java.util.function.Consumer; -import java.util.function.Function; import java.util.function.Supplier; -import static com.mojang.brigadier.arguments.DoubleArgumentType.doubleArg; -import static com.mojang.brigadier.arguments.IntegerArgumentType.integer; -import static net.minecraft.commands.Commands.argument; -import static net.minecraft.commands.Commands.literal; - +/** + * Base for all mod loader initializers + * and handles most setup. + */ public abstract class AbstractModInitializer { protected static final Logger LOGGER = DhLoggerBuilder.getLogger(MethodHandles.lookup().lookupClass().getSimpleName()); + private CommandDispatcher commandDispatcher; + + + + //==================// + // abstract methods // + //==================// + protected abstract void createInitialBindings(); protected abstract IEventProxy createClientProxy(); protected abstract IEventProxy createServerProxy(boolean isDedicated); protected abstract void initializeModCompat(); protected abstract void subscribeRegisterCommandsEvent(Consumer> eventHandler); - private CommandDispatcher commandDispatcher; protected abstract void subscribeClientStartedEvent(Runnable eventHandler); protected abstract void subscribeServerStartingEvent(Consumer eventHandler); @@ -68,41 +55,9 @@ public abstract class AbstractModInitializer - private void startup() - { - DependencySetup.createSharedBindings(); - SharedApi.init(); - this.createInitialBindings(); - } - - private void printModInfo(boolean printGitInfo) - { - LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION); - - if (printGitInfo) - { - // Useful for dev builds - LOGGER.info("DH Branch: " + ModJarInfo.Git_Branch); - LOGGER.info("DH Commit: " + ModJarInfo.Git_Commit); - LOGGER.info("DH Jar Build Source: " + ModJarInfo.Build_Source); - } - } - - protected void tryCreateModCompatAccessor(String modId, Class accessorClass, Supplier accessorConstructor) - { - IModChecker modChecker = SingletonInjector.INSTANCE.get(IModChecker.class); - if (modChecker.isModLoaded(modId)) - { - //noinspection unchecked - ModAccessorInjector.INSTANCE.bind((Class) accessorClass, accessorConstructor.get()); - } - } - - private void initConfig() - { - ConfigBase.INSTANCE = new ConfigBase(ModInfo.ID, ModInfo.NAME, Config.class, 2); - Config.completeDelayedSetup(); - } + //===================// + // initialize events // + //===================// public void onInitializeClient() { @@ -148,11 +103,10 @@ public abstract class AbstractModInitializer LOGGER.info(ModInfo.READABLE_NAME + " Initialized"); ApiEventInjector.INSTANCE.fireAllEvents(DhApiAfterDhInitEvent.class, null); - this.subscribeRegisterCommandsEvent(dispatcher -> { - this.commandDispatcher = dispatcher; - }); + this.subscribeRegisterCommandsEvent(dispatcher -> { this.commandDispatcher = dispatcher; }); - this.subscribeServerStartingEvent(server -> { + this.subscribeServerStartingEvent(server -> + { MinecraftDedicatedServerWrapper.INSTANCE.dedicatedServer = (DedicatedServer)server; this.initConfig(); @@ -163,6 +117,48 @@ public abstract class AbstractModInitializer }); } + + + //===========================// + // inner initializer methods // + //===========================// + + private void startup() + { + DependencySetup.createSharedBindings(); + SharedApi.init(); + this.createInitialBindings(); + } + + private void printModInfo(boolean printGitInfo) + { + LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION); + + if (printGitInfo) + { + // Useful for dev builds + LOGGER.info("DH Branch: " + ModJarInfo.Git_Branch); + LOGGER.info("DH Commit: " + ModJarInfo.Git_Commit); + LOGGER.info("DH Jar Build Source: " + ModJarInfo.Build_Source); + } + } + + protected void tryCreateModCompatAccessor(String modId, Class accessorClass, Supplier accessorConstructor) + { + IModChecker modChecker = SingletonInjector.INSTANCE.get(IModChecker.class); + if (modChecker.isModLoaded(modId)) + { + //noinspection unchecked + ModAccessorInjector.INSTANCE.bind((Class) accessorClass, accessorConstructor.get()); + } + } + + private void initConfig() + { + ConfigBase.INSTANCE = new ConfigBase(ModInfo.ID, ModInfo.NAME, Config.class, 2); + Config.completeDelayedSetup(); + } + private void postInit() { LOGGER.info("Post-Initializing Mod"); @@ -175,4 +171,15 @@ public abstract class AbstractModInitializer // TODO } + + + //================// + // helper classes // + //================// + + public interface IEventProxy + { + void registerEvents(); + } + } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/IEventProxy.java b/common/src/main/java/com/seibel/distanthorizons/common/IEventProxy.java deleted file mode 100644 index 0f2e6b896..000000000 --- a/common/src/main/java/com/seibel/distanthorizons/common/IEventProxy.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.seibel.distanthorizons.common; - -public interface IEventProxy -{ - void registerEvents(); -} diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java index 543747c2c..f71095818 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java @@ -57,18 +57,7 @@ public class TintGetterOverrideFast implements BlockAndTintGetter } @Override - public int getBlockTint(BlockPos blockPos, ColorResolver colorResolver) - { - //if (LodCommonMain.forgeMethodCaller != null) - //{ - // return LodCommonMain.forgeMethodCaller.colorResolverGetColor(colorResolver, _getBiome(blockPos), - // blockPos.getX(), blockPos.getZ()); - //} - //else - //{ - return colorResolver.getColor(this._getBiome(blockPos), blockPos.getX(), blockPos.getZ()); - //} - } + public int getBlockTint(BlockPos blockPos, ColorResolver colorResolver) { return colorResolver.getColor(this._getBiome(blockPos), blockPos.getX(), blockPos.getZ()); } @Override public float getShade(Direction direction, boolean bl) { return this.parent.getShade(direction, bl); } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java index 4e8ff00c5..a840f3868 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java @@ -73,16 +73,7 @@ public class TintGetterOverrideSmooth implements BlockAndTintGetter while (cursor3D.advance()) { mutableBlockPos.set(cursor3D.nextX(), cursor3D.nextY(), cursor3D.nextZ()); - int n; - //if (LodCommonMain.forgeMethodCaller != null) - //{ - // n = LodCommonMain.forgeMethodCaller.colorResolverGetColor(colorResolver, _getBiome(mutableBlockPos), - // mutableBlockPos.getX(), mutableBlockPos.getZ()); - //} - //else - //{ - n = colorResolver.getColor(this._getBiome(mutableBlockPos), mutableBlockPos.getX(), mutableBlockPos.getZ()); - //} + int n = colorResolver.getColor(this._getBiome(mutableBlockPos), mutableBlockPos.getX(), mutableBlockPos.getZ()); k += (n & 0xFF0000) >> 16; l += (n & 0xFF00) >> 8; @@ -92,177 +83,96 @@ public class TintGetterOverrideSmooth implements BlockAndTintGetter } @Override - public int getBlockTint(BlockPos blockPos, ColorResolver colorResolver) - { - return calculateBlockTint(blockPos, colorResolver); - } + public int getBlockTint(BlockPos blockPos, ColorResolver colorResolver) { return this.calculateBlockTint(blockPos, colorResolver); } @Override public float getShade(Direction direction, boolean bl) { return this.parent.getShade(direction, bl); } @Override - public LevelLightEngine getLightEngine() - { - return parent.getLightEngine(); - } + public LevelLightEngine getLightEngine() { return this.parent.getLightEngine(); } @Override - public int getBrightness(LightLayer lightLayer, BlockPos blockPos) - { - return parent.getBrightness(lightLayer, blockPos); - } + public int getBrightness(LightLayer lightLayer, BlockPos blockPos) { return this.parent.getBrightness(lightLayer, blockPos); } @Override - public int getRawBrightness(BlockPos blockPos, int i) - { - return parent.getRawBrightness(blockPos, i); - } + public int getRawBrightness(BlockPos blockPos, int i) { return this.parent.getRawBrightness(blockPos, i); } @Override - public boolean canSeeSky(BlockPos blockPos) - { - return parent.canSeeSky(blockPos); - } + public boolean canSeeSky(BlockPos blockPos) { return this.parent.canSeeSky(blockPos); } @Override @Nullable - public BlockEntity getBlockEntity(BlockPos blockPos) - { - return parent.getBlockEntity(blockPos); - } + public BlockEntity getBlockEntity(BlockPos blockPos) { return this.parent.getBlockEntity(blockPos); } @Override - public BlockState getBlockState(BlockPos blockPos) - { - return parent.getBlockState(blockPos); - } + public BlockState getBlockState(BlockPos blockPos) { return this.parent.getBlockState(blockPos); } @Override - public FluidState getFluidState(BlockPos blockPos) - { - return parent.getFluidState(blockPos); - } + public FluidState getFluidState(BlockPos blockPos) { return this.parent.getFluidState(blockPos); } @Override - public int getLightEmission(BlockPos blockPos) - { - return parent.getLightEmission(blockPos); - } + public int getLightEmission(BlockPos blockPos) { return this.parent.getLightEmission(blockPos); } @Override - public int getMaxLightLevel() - { - return parent.getMaxLightLevel(); - } + public int getMaxLightLevel() { return this.parent.getMaxLightLevel(); } @Override - public Stream getBlockStates(AABB aABB) - { - return parent.getBlockStates(aABB); - } + public Stream getBlockStates(AABB aABB) { return this.parent.getBlockStates(aABB); } @Override - public BlockHitResult clip(ClipContext clipContext) - { - return parent.clip(clipContext); - } + public BlockHitResult clip(ClipContext clipContext) { return this.parent.clip(clipContext); } @Override @Nullable public BlockHitResult clipWithInteractionOverride(Vec3 vec3, Vec3 vec32, BlockPos blockPos, VoxelShape voxelShape, BlockState blockState) { - return parent.clipWithInteractionOverride(vec3, vec32, blockPos, voxelShape, blockState); + return this.parent.clipWithInteractionOverride(vec3, vec32, blockPos, voxelShape, blockState); } @Override - public double getBlockFloorHeight(VoxelShape voxelShape, Supplier supplier) - { - return parent.getBlockFloorHeight(voxelShape, supplier); - } + public double getBlockFloorHeight(VoxelShape voxelShape, Supplier supplier) { return this.parent.getBlockFloorHeight(voxelShape, supplier); } @Override - public double getBlockFloorHeight(BlockPos blockPos) - { - return parent.getBlockFloorHeight(blockPos); - } + public double getBlockFloorHeight(BlockPos blockPos) { return this.parent.getBlockFloorHeight(blockPos); } @Override - public int getMaxBuildHeight() - { - return parent.getMaxBuildHeight(); - } + public int getMaxBuildHeight() { return this.parent.getMaxBuildHeight(); } #if MC_VER >= MC_1_17_1 @Override - public Optional getBlockEntity(BlockPos blockPos, BlockEntityType blockEntityType) - { - return parent.getBlockEntity(blockPos, blockEntityType); - } + public Optional getBlockEntity(BlockPos blockPos, BlockEntityType blockEntityType) { return this.parent.getBlockEntity(blockPos, blockEntityType); } @Override - public BlockHitResult isBlockInLine(ClipBlockStateContext clipBlockStateContext) - { - return parent.isBlockInLine(clipBlockStateContext); - } + public BlockHitResult isBlockInLine(ClipBlockStateContext clipBlockStateContext) { return this.parent.isBlockInLine(clipBlockStateContext); } @Override - public int getHeight() - { - return parent.getHeight(); - } + public int getHeight() { return this.parent.getHeight(); } @Override - public int getMinBuildHeight() - { - return parent.getMinBuildHeight(); - } + public int getMinBuildHeight() { return this.parent.getMinBuildHeight(); } @Override - public int getSectionsCount() - { - return parent.getSectionsCount(); - } + public int getSectionsCount() { return this.parent.getSectionsCount(); } @Override - public int getMinSection() - { - return parent.getMinSection(); - } + public int getMinSection() { return this.parent.getMinSection(); } @Override - public int getMaxSection() - { - return parent.getMaxSection(); - } + public int getMaxSection() { return this.parent.getMaxSection(); } @Override - public boolean isOutsideBuildHeight(BlockPos blockPos) - { - return parent.isOutsideBuildHeight(blockPos); - } + public boolean isOutsideBuildHeight(BlockPos blockPos) { return this.parent.isOutsideBuildHeight(blockPos); } @Override - public boolean isOutsideBuildHeight(int i) - { - return parent.isOutsideBuildHeight(i); - } + public boolean isOutsideBuildHeight(int i) { return this.parent.isOutsideBuildHeight(i); } @Override - public int getSectionIndex(int i) - { - return parent.getSectionIndex(i); - } + public int getSectionIndex(int i) { return this.parent.getSectionIndex(i); } @Override - public int getSectionIndexFromSectionY(int i) - { - return parent.getSectionIndexFromSectionY(i); - } + public int getSectionIndexFromSectionY(int i) { return this.parent.getSectionIndexFromSectionY(i); } @Override - public int getSectionYFromSectionIndex(int i) - { - return parent.getSectionYFromSectionIndex(i); - } + public int getSectionYFromSectionIndex(int i) { return this.parent.getSectionYFromSectionIndex(i); } #endif } diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java index 9a5920656..7fcebe40d 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java @@ -19,7 +19,7 @@ package com.seibel.distanthorizons.fabric; -import com.seibel.distanthorizons.common.IEventProxy; +import com.seibel.distanthorizons.common.AbstractModInitializer; import com.seibel.distanthorizons.common.rendering.SeamlessOverdraw; import com.seibel.distanthorizons.common.wrappers.McObjectConverter; import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; @@ -35,34 +35,26 @@ import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.ISodiumAccessor; import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper; -import com.seibel.distanthorizons.coreapi.ModInfo; import com.seibel.distanthorizons.fabric.wrappers.modAccessor.SodiumAccessor; //import io.netty.buffer.ByteBuf; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientChunkEvents; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; -import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; import net.fabricmc.fabric.api.event.player.AttackBlockCallback; import net.fabricmc.fabric.api.event.player.UseBlockCallback; -import net.fabricmc.fabric.api.networking.v1.PacketSender; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.TitleScreen; -import java.nio.FloatBuffer; import java.util.HashSet; import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.multiplayer.ClientPacketListener; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.InteractionResult; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.phys.HitResult; import org.apache.logging.log4j.Logger; import org.lwjgl.glfw.GLFW; -import org.lwjgl.opengl.GL15; /** * This handles all events sent to the client, @@ -73,7 +65,7 @@ import org.lwjgl.opengl.GL15; * @version 2023-7-27 */ @Environment(EnvType.CLIENT) -public class FabricClientProxy implements IEventProxy +public class FabricClientProxy implements AbstractModInitializer.IEventProxy { private final ClientApi clientApi = ClientApi.INSTANCE; private static final IMinecraftClientWrapper MC = SingletonInjector.INSTANCE.get(IMinecraftClientWrapper.class); diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java index b047bbfdd..2de23a193 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java @@ -21,7 +21,6 @@ package com.seibel.distanthorizons.fabric; import com.mojang.brigadier.CommandDispatcher; import com.seibel.distanthorizons.common.AbstractModInitializer; -import com.seibel.distanthorizons.common.IEventProxy; import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.config.ConfigBase; import com.seibel.distanthorizons.core.dependencyInjection.ModAccessorInjector; @@ -29,7 +28,6 @@ import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.*; import com.seibel.distanthorizons.coreapi.ModInfo; -import com.seibel.distanthorizons.fabric.wrappers.FabricDependencySetup; import com.seibel.distanthorizons.fabric.wrappers.modAccessor.*; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.DedicatedServerModInitializer; @@ -47,10 +45,6 @@ import java.util.function.Consumer; * Initialize and setup the Mod.
* If you are looking for the real start of the mod * check out the ClientProxy. - * - * @author coolGi - * @author Ran - * @version 9-2-2022 */ public class FabricMain extends AbstractModInitializer implements ClientModInitializer, DedicatedServerModInitializer { @@ -59,22 +53,13 @@ public class FabricMain extends AbstractModInitializer implements ClientModIniti @Override - protected void createInitialBindings() - { - FabricDependencySetup.createInitialBindings(); - } + protected void createInitialBindings() { SingletonInjector.INSTANCE.bind(IModChecker.class, ModChecker.INSTANCE); } @Override - protected IEventProxy createClientProxy() - { - return new FabricClientProxy(); - } + protected IEventProxy createClientProxy() { return new FabricClientProxy(); } @Override - protected IEventProxy createServerProxy(boolean isDedicated) - { - return new FabricServerProxy(isDedicated); - } + protected IEventProxy createServerProxy(boolean isDedicated) { return new FabricServerProxy(isDedicated); } @Override protected void initializeModCompat() @@ -109,19 +94,10 @@ public class FabricMain extends AbstractModInitializer implements ClientModIniti } @Override - protected void subscribeRegisterCommandsEvent(Consumer> eventHandler) - { - // fabric-command-api-v1/v2 - //CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess #if MC_VER >= MC_1_19_2 , environment #endif ) -> { - // eventHandler.accept(dispatcher); - //}); - } + protected void subscribeRegisterCommandsEvent(Consumer> eventHandler) { } @Override - protected void subscribeClientStartedEvent(Runnable eventHandler) - { - ClientLifecycleEvents.CLIENT_STARTED.register((mc) -> eventHandler.run()); - } + protected void subscribeClientStartedEvent(Runnable eventHandler) { ClientLifecycleEvents.CLIENT_STARTED.register((mc) -> eventHandler.run()); } @Override protected void subscribeServerStartingEvent(Consumer eventHandler) @@ -133,10 +109,11 @@ public class FabricMain extends AbstractModInitializer implements ClientModIniti @Override protected void runDelayedSetup() { - FabricDependencySetup.runDelayedSetup(); + SingletonInjector.INSTANCE.runDelayedSetup(); if (Config.Client.Advanced.Graphics.Fog.disableVanillaFog.get() && SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("bclib")) ModAccessorInjector.INSTANCE.get(IBCLibAccessor.class).setRenderCustomFog(false); // Remove BCLib's fog + #if MC_VER >= MC_1_20_1 if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("sodium")) ModAccessorInjector.INSTANCE.get(ISodiumAccessor.class).setFogOcclusion(false); // FIXME: This is a tmp fix for sodium 0.5.0, and 0.5.1. This is fixed in sodium 0.5.2 diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricServerProxy.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricServerProxy.java index 7754f5bfb..71a0d8af7 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricServerProxy.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricServerProxy.java @@ -1,12 +1,11 @@ package com.seibel.distanthorizons.fabric; -import com.seibel.distanthorizons.common.IEventProxy; +import com.seibel.distanthorizons.common.AbstractModInitializer; import com.seibel.distanthorizons.common.wrappers.chunk.ChunkWrapper; import com.seibel.distanthorizons.common.wrappers.misc.ServerPlayerWrapper; import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; import com.seibel.distanthorizons.common.wrappers.world.ServerLevelWrapper; import com.seibel.distanthorizons.common.wrappers.worldGeneration.BatchGenerationEnvironment; -import com.seibel.distanthorizons.core.api.internal.ClientApi; import com.seibel.distanthorizons.core.api.internal.ServerApi; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper; @@ -33,7 +32,7 @@ import java.util.function.Supplier; * @author Tomlee * @version 5-11-2022 */ -public class FabricServerProxy implements IEventProxy +public class FabricServerProxy implements AbstractModInitializer.IEventProxy { private static final ServerApi SERVER_API = ServerApi.INSTANCE; private static final Logger LOGGER = DhLoggerBuilder.getLogger(); diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/FabricDependencySetup.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/FabricDependencySetup.java deleted file mode 100644 index 13eb0b7eb..000000000 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/FabricDependencySetup.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * This file is part of the Distant Horizons mod - * licensed under the GNU LGPL v3 License. - * - * Copyright (C) 2020-2023 James Seibel - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package com.seibel.distanthorizons.fabric.wrappers; - -import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; -import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IModChecker; -import com.seibel.distanthorizons.fabric.wrappers.modAccessor.ModChecker; - -/** - * Binds all necessary dependencies, so we - * can access them in Core.
- * This needs to be called before any Core classes - * are loaded. - * - * @author James Seibel - * @author Ran - * @version 3-5-2022 - */ -public class FabricDependencySetup -{ - public static void createInitialBindings() - { - SingletonInjector.INSTANCE.bind(IModChecker.class, ModChecker.INSTANCE); - } - - public static void runDelayedSetup() - { - SingletonInjector.INSTANCE.runDelayedSetup(); - } - -} diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeClientProxy.java b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeClientProxy.java index 6b225b68f..469f7b134 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeClientProxy.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeClientProxy.java @@ -19,7 +19,7 @@ package com.seibel.distanthorizons.forge; -import com.seibel.distanthorizons.common.IEventProxy; +import com.seibel.distanthorizons.common.AbstractModInitializer; import com.seibel.distanthorizons.common.util.ProxyUtil; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper; import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; @@ -52,7 +52,6 @@ import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; //import net.minecraftforge.network.NetworkRegistry; //import net.minecraftforge.network.simple.SimpleChannel; import org.apache.logging.log4j.Logger; @@ -73,7 +72,7 @@ import org.lwjgl.opengl.GL32; * @author James_Seibel * @version 2023-7-27 */ -public class ForgeClientProxy implements IEventProxy +public class ForgeClientProxy implements AbstractModInitializer.IEventProxy { private static final IMinecraftClientWrapper MC = SingletonInjector.INSTANCE.get(IMinecraftClientWrapper.class); private static final Logger LOGGER = DhLoggerBuilder.getLogger(); diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeMain.java b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeMain.java index bd928126d..3a853f08e 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeMain.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeMain.java @@ -21,12 +21,13 @@ package com.seibel.distanthorizons.forge; import com.mojang.brigadier.CommandDispatcher; import com.seibel.distanthorizons.common.AbstractModInitializer; -import com.seibel.distanthorizons.common.IEventProxy; import com.seibel.distanthorizons.common.wrappers.gui.GetConfigScreen; +import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; +import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IModChecker; import com.seibel.distanthorizons.coreapi.ModInfo; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IOptifineAccessor; -import com.seibel.distanthorizons.forge.wrappers.ForgeDependencySetup; +import com.seibel.distanthorizons.forge.wrappers.modAccessor.ModChecker; import com.seibel.distanthorizons.forge.wrappers.modAccessor.OptifineAccessor; import net.minecraft.commands.CommandSourceStack; @@ -68,11 +69,6 @@ import java.util.function.Consumer; * Initialize and setup the Mod.
* If you are looking for the real start of the mod * check out the ClientProxy. - * - * @author coolGi - * @author Ran - * @author James Seibel - * @version 8-15-2022 */ @Mod(ModInfo.ID) public class ForgeMain extends AbstractModInitializer @@ -85,22 +81,13 @@ public class ForgeMain extends AbstractModInitializer } @Override - protected void createInitialBindings() - { - ForgeDependencySetup.createInitialBindings(); - } + protected void createInitialBindings() { SingletonInjector.INSTANCE.bind(IModChecker.class, ModChecker.INSTANCE); } @Override - protected IEventProxy createClientProxy() - { - return new ForgeClientProxy(); - } + protected IEventProxy createClientProxy() { return new ForgeClientProxy(); } @Override - protected IEventProxy createServerProxy(boolean isDedicated) - { - return new ForgeServerProxy(isDedicated); - } + protected IEventProxy createServerProxy(boolean isDedicated) { return new ForgeServerProxy(isDedicated); } @Override protected void initializeModCompat() @@ -122,10 +109,7 @@ public class ForgeMain extends AbstractModInitializer @Override protected void subscribeRegisterCommandsEvent(Consumer> eventHandler) { - MinecraftForge.EVENT_BUS.addListener((RegisterCommandsEvent e) -> - { - eventHandler.accept(e.getDispatcher()); - }); + MinecraftForge.EVENT_BUS.addListener((RegisterCommandsEvent e) -> { eventHandler.accept(e.getDispatcher()); }); } @Override @@ -144,9 +128,6 @@ public class ForgeMain extends AbstractModInitializer } @Override - protected void runDelayedSetup() - { - ForgeDependencySetup.runDelayedSetup(); - } + protected void runDelayedSetup() { SingletonInjector.INSTANCE.runDelayedSetup(); } } diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeServerProxy.java b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeServerProxy.java index 0d92d8188..0c9521e0c 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeServerProxy.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeServerProxy.java @@ -1,18 +1,15 @@ package com.seibel.distanthorizons.forge; -import com.seibel.distanthorizons.common.IEventProxy; +import com.seibel.distanthorizons.common.AbstractModInitializer; import com.seibel.distanthorizons.common.util.ProxyUtil; import com.seibel.distanthorizons.common.wrappers.chunk.ChunkWrapper; -import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; import com.seibel.distanthorizons.common.wrappers.world.ServerLevelWrapper; import com.seibel.distanthorizons.common.wrappers.worldGeneration.BatchGenerationEnvironment; import com.seibel.distanthorizons.core.api.internal.ServerApi; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.wrapperInterfaces.chunk.IChunkWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.world.ILevelWrapper; -import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.TickEvent; @@ -41,7 +38,7 @@ import org.apache.logging.log4j.Logger; import java.util.function.Supplier; -public class ForgeServerProxy implements IEventProxy +public class ForgeServerProxy implements AbstractModInitializer.IEventProxy { #if MC_VER < MC_1_19_2 private static LevelAccessor GetEventLevel(WorldEvent e) { return e.getWorld(); } diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/wrappers/ForgeDependencySetup.java b/forge/src/main/java/com/seibel/distanthorizons/forge/wrappers/ForgeDependencySetup.java deleted file mode 100644 index 5008ee6c0..000000000 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/wrappers/ForgeDependencySetup.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * This file is part of the Distant Horizons mod - * licensed under the GNU LGPL v3 License. - * - * Copyright (C) 2020-2023 James Seibel - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package com.seibel.distanthorizons.forge.wrappers; - -import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; -import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IModChecker; -import com.seibel.distanthorizons.forge.wrappers.modAccessor.ModChecker; - -/** - * Binds all necessary dependencies so we - * can access them in Core.
- * This needs to be called before any Core classes - * are loaded. - * - * @author James Seibel - * @author Ran - * @version 12-1-2021 - */ -public class ForgeDependencySetup -{ - public static void createInitialBindings() - { - SingletonInjector.INSTANCE.bind(IModChecker.class, ModChecker.INSTANCE); - } - - public static void runDelayedSetup() - { - SingletonInjector.INSTANCE.runDelayedSetup(); - } - -} diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeClientProxy.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeClientProxy.java index 24c6bd50d..d46be455c 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeClientProxy.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeClientProxy.java @@ -19,7 +19,7 @@ package com.seibel.distanthorizons.neoforge; -import com.seibel.distanthorizons.common.IEventProxy; +import com.seibel.distanthorizons.common.AbstractModInitializer; import com.seibel.distanthorizons.common.util.ProxyUtil; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper; import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; @@ -45,7 +45,6 @@ import net.neoforged.neoforge.event.level.LevelEvent; import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent; import net.minecraft.world.level.chunk.ChunkAccess; -import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; //import net.neoforged.network.NetworkRegistry; //import net.neoforged.network.simple.SimpleChannel; import org.apache.logging.log4j.Logger; @@ -66,7 +65,7 @@ import org.lwjgl.opengl.GL32; * @author James_Seibel * @version 2023-7-27 */ -public class NeoforgeClientProxy implements IEventProxy +public class NeoforgeClientProxy implements AbstractModInitializer.IEventProxy { private static final IMinecraftClientWrapper MC = SingletonInjector.INSTANCE.get(IMinecraftClientWrapper.class); private static final Logger LOGGER = DhLoggerBuilder.getLogger(); diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeMain.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeMain.java index fbb0fec8f..8ee751e5e 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeMain.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeMain.java @@ -17,16 +17,17 @@ * along with this program. If not, see . */ -package com.seibel.distanthorizons.neoforged; +package com.seibel.distanthorizons.neoforge; import com.mojang.brigadier.CommandDispatcher; import com.seibel.distanthorizons.common.AbstractModInitializer; -import com.seibel.distanthorizons.common.IEventProxy; import com.seibel.distanthorizons.common.wrappers.gui.GetConfigScreen; +import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; +import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IModChecker; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IOptifineAccessor; import com.seibel.distanthorizons.coreapi.ModInfo; -import com.seibel.distanthorizons.neoforged.wrappers.NeoforgeDependencySetup; -import com.seibel.distanthorizons.neoforged.wrappers.modAccessor.OptifineAccessor; +import com.seibel.distanthorizons.neoforge.wrappers.modAccessor.ModChecker; +import com.seibel.distanthorizons.neoforge.wrappers.modAccessor.OptifineAccessor; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.MinecraftServer; import net.neoforged.bus.api.IEventBus; @@ -45,11 +46,6 @@ import java.util.function.Consumer; * Initialize and setup the Mod.
* If you are looking for the real start of the mod * check out the ClientProxy. - * - * @author coolGi - * @author Ran - * @author James Seibel - * @version 8-15-2022 */ @Mod(ModInfo.ID) public class NeoforgeMain extends AbstractModInitializer @@ -61,22 +57,13 @@ public class NeoforgeMain extends AbstractModInitializer } @Override - protected void createInitialBindings() - { - NeoforgeDependencySetup.createInitialBindings(); - } + protected IEventProxy createServerProxy(boolean isDedicated) { return new NeoforgeServerProxy(isDedicated); } @Override - protected IEventProxy createClientProxy() - { - return new NeoforgeClientProxy(); - } + protected void createInitialBindings() { SingletonInjector.INSTANCE.bind(IModChecker.class, ModChecker.INSTANCE); } @Override - protected IEventProxy createServerProxy(boolean isDedicated) - { - return new NeoforgeServerProxy(isDedicated); - } + protected IEventProxy createClientProxy() { return new NeoforgeClientProxy(); } @Override protected void initializeModCompat() @@ -90,9 +77,7 @@ public class NeoforgeMain extends AbstractModInitializer @Override protected void subscribeRegisterCommandsEvent(Consumer> eventHandler) { - NeoForge.EVENT_BUS.addListener((RegisterCommandsEvent e) -> { - eventHandler.accept(e.getDispatcher()); - }); + NeoForge.EVENT_BUS.addListener((RegisterCommandsEvent e) -> { eventHandler.accept(e.getDispatcher()); }); } @Override @@ -104,15 +89,10 @@ public class NeoforgeMain extends AbstractModInitializer @Override protected void subscribeServerStartingEvent(Consumer eventHandler) { - NeoForge.EVENT_BUS.addListener((ServerStartingEvent e) -> { - eventHandler.accept(e.getServer()); - }); + NeoForge.EVENT_BUS.addListener((ServerStartingEvent e) -> { eventHandler.accept(e.getServer()); }); } @Override - protected void runDelayedSetup() - { - NeoforgeDependencySetup.runDelayedSetup(); - } + protected void runDelayedSetup() { SingletonInjector.INSTANCE.runDelayedSetup(); } } diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeServerProxy.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeServerProxy.java index a4048e980..505d3dcd6 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeServerProxy.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeServerProxy.java @@ -1,6 +1,6 @@ package com.seibel.distanthorizons.neoforge; -import com.seibel.distanthorizons.common.IEventProxy; +import com.seibel.distanthorizons.common.AbstractModInitializer; import com.seibel.distanthorizons.common.util.ProxyUtil; import com.seibel.distanthorizons.common.wrappers.chunk.ChunkWrapper; import com.seibel.distanthorizons.common.wrappers.world.ServerLevelWrapper; @@ -25,7 +25,7 @@ import org.apache.logging.log4j.Logger; import java.util.function.Supplier; -public class NeoforgeServerProxy implements IEventProxy +public class NeoforgeServerProxy implements AbstractModInitializer.IEventProxy { private static LevelAccessor GetEventLevel(LevelEvent e) { return e.getLevel(); } diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/wrappers/NeoforgeDependencySetup.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/wrappers/NeoforgeDependencySetup.java deleted file mode 100644 index 0679bc769..000000000 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/wrappers/NeoforgeDependencySetup.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * This file is part of the Distant Horizons mod - * licensed under the GNU LGPL v3 License. - * - * Copyright (C) 2020-2023 James Seibel - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package com.seibel.distanthorizons.neoforge.wrappers; - -import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; -import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IModChecker; -import com.seibel.distanthorizons.neoforge.wrappers.modAccessor.ModChecker; - -/** - * Binds all necessary dependencies so we - * can access them in Core.
- * This needs to be called before any Core classes - * are loaded. - * - * @author James Seibel - * @author Ran - * @version 12-1-2021 - */ -public class NeoforgeDependencySetup -{ - public static void createInitialBindings() - { - SingletonInjector.INSTANCE.bind(IModChecker.class, ModChecker.INSTANCE); - } - - public static void runDelayedSetup() - { - SingletonInjector.INSTANCE.runDelayedSetup(); - } - -}