From f1eed817ff06660977987d07d9a3caae49067eec Mon Sep 17 00:00:00 2001 From: Nick1st Date: Sat, 22 Apr 2023 18:56:15 +0200 Subject: [PATCH] Try to move Fabric stuff to the platform packages. And resolve it where ever possible. --- .../java/qouteall/imm_ptl/core/IPModMain.java | 9 ++----- .../core/commands/ClientDebugCommand.java | 2 ++ .../core/commands/SubCommandArgumentType.java | 1 + .../imm_ptl/core/compat/IPFlywheelCompat.java | 4 +-- .../core/compat/IPModInfoChecking.java | 3 +++ .../core/compat/IPPortingLibCompat.java | 6 ++--- .../core/compat/mixin/MixinIrisIris.java | 1 - .../core/platform_specific/IPModEntry.java | 13 +++++++++- .../platform_specific/IPModEntryClient.java | 6 +++++ .../q_misc_util/ImplRemoteProcedureCall.java | 1 + .../qouteall/q_misc_util/MiscGlobals.java | 2 -- .../java/qouteall/q_misc_util/MiscHelper.java | 4 +-- .../q_misc_util/api/DimensionAPI.java | 2 ++ .../dimension/DynamicDimensionsImpl.java | 3 +-- ...ixinServerGamePacketListenerImpl_Misc.java | 2 +- ...inClientboundCustomPayloadPacket_Misc.java | 2 +- .../mixin/dimension/MixinPlayerList_Misc.java | 2 +- .../platform_specific/EnvType.java | 11 ++++++++ .../MiscNetworking.java | 5 +++- .../MiscUtilModEntry.java | 4 +-- .../MiscUtilModEntryClient.java | 2 +- .../platform_specific/PlatformHelper.java | 26 +++++++++++++++++++ .../src/main/resources/fabric.mod.json | 4 +-- 23 files changed, 86 insertions(+), 29 deletions(-) create mode 100644 q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/EnvType.java rename q_misc_util/src/main/java/qouteall/q_misc_util/{ => platform_specific}/MiscNetworking.java (95%) rename q_misc_util/src/main/java/qouteall/q_misc_util/{ => platform_specific}/MiscUtilModEntry.java (90%) rename q_misc_util/src/main/java/qouteall/q_misc_util/{ => platform_specific}/MiscUtilModEntryClient.java (81%) create mode 100644 q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/PlatformHelper.java diff --git a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/IPModMain.java b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/IPModMain.java index 880d5f229..3864645e7 100644 --- a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/IPModMain.java +++ b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/IPModMain.java @@ -2,7 +2,6 @@ import me.shedaniel.autoconfig.AutoConfig; import me.shedaniel.autoconfig.serializer.GsonConfigSerializer; -import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; import net.minecraft.world.InteractionResult; import qouteall.imm_ptl.core.chunk_loading.ChunkDataSyncManager; import qouteall.imm_ptl.core.chunk_loading.EntitySync; @@ -11,7 +10,6 @@ import qouteall.imm_ptl.core.chunk_loading.ServerPerformanceMonitor; import qouteall.imm_ptl.core.chunk_loading.WorldInfoSender; import qouteall.imm_ptl.core.commands.AxisArgumentType; -import qouteall.imm_ptl.core.commands.PortalCommand; import qouteall.imm_ptl.core.commands.SubCommandArgumentType; import qouteall.imm_ptl.core.commands.TimingFunctionArgumentType; import qouteall.imm_ptl.core.compat.IPPortingLibCompat; @@ -72,10 +70,7 @@ public static void init() { MyLoadingTicket.init(); IPPortingLibCompat.init(); - - CommandRegistrationCallback.EVENT.register( - (dispatcher, registryAccess, environment) -> PortalCommand.register(dispatcher) - ); + SubCommandArgumentType.init(); TimingFunctionArgumentType.init(); AxisArgumentType.init(); @@ -84,7 +79,7 @@ public static void init() { RotationAnimation.init(); NormalAnimation.init(); } - + private static void loadConfig() { // upgrade old config Path gameDir = O_O.getGameDir(); diff --git a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/commands/ClientDebugCommand.java b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/commands/ClientDebugCommand.java index cf488b090..bdccb2664 100644 --- a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/commands/ClientDebugCommand.java +++ b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/commands/ClientDebugCommand.java @@ -9,6 +9,8 @@ import com.mojang.datafixers.util.Pair; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +// FIXME Usage of Fabric Api Outside of Fabric package. I'm still thinking about an approach to fix this, +// as I don't want to move it to the platform specific package in the long term. import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; import net.minecraft.client.Minecraft; diff --git a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/commands/SubCommandArgumentType.java b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/commands/SubCommandArgumentType.java index bec62a040..415e3400b 100644 --- a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/commands/SubCommandArgumentType.java +++ b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/commands/SubCommandArgumentType.java @@ -15,6 +15,7 @@ import com.mojang.brigadier.suggestion.SuggestionsBuilder; import com.mojang.brigadier.tree.CommandNode; import com.mojang.brigadier.tree.RootCommandNode; +// FIXME Usage of Fabric Api Outside of Fabric package. import net.fabricmc.fabric.api.command.v2.ArgumentTypeRegistry; import net.minecraft.commands.CommandBuildContext; import net.minecraft.commands.synchronization.ArgumentTypeInfo; diff --git a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPFlywheelCompat.java b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPFlywheelCompat.java index 0bbc8370b..8699ad1b7 100644 --- a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPFlywheelCompat.java +++ b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPFlywheelCompat.java @@ -2,8 +2,8 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.fabricmc.loader.api.FabricLoader; import qouteall.q_misc_util.Helper; +import qouteall.q_misc_util.platform_specific.PlatformHelper; import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -14,7 +14,7 @@ public class IPFlywheelCompat { public static boolean isFlywheelPresent = false; public static void init(){ - if (FabricLoader.getInstance().isModLoaded("flywheel")) { + if (PlatformHelper.isModLoaded("flywheel")) { Helper.log("Flywheel is present"); } diff --git a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPModInfoChecking.java b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPModInfoChecking.java index a337d25bc..cae9a3fb8 100644 --- a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPModInfoChecking.java +++ b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPModInfoChecking.java @@ -2,6 +2,8 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +// FIXME Usage of Fabric Api Outside of Fabric package. I'm still thinking about an approach to fix this, +// as I don't want to move it to the platform specific package in the long term. Maybe a wrapper class? import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; import net.minecraft.ChatFormatting; @@ -24,6 +26,7 @@ import qouteall.imm_ptl.core.platform_specific.O_O; import qouteall.q_misc_util.Helper; import qouteall.q_misc_util.my_util.MyTaskList; +import qouteall.q_misc_util.platform_specific.PlatformHelper; import javax.annotation.Nullable; import java.util.List; diff --git a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPPortingLibCompat.java b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPPortingLibCompat.java index 60e5ae212..9d3435491 100644 --- a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPPortingLibCompat.java +++ b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/IPPortingLibCompat.java @@ -3,10 +3,10 @@ import com.mojang.blaze3d.pipeline.RenderTarget; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.Minecraft; import qouteall.imm_ptl.core.ducks.IEFrameBuffer; import qouteall.q_misc_util.Helper; +import qouteall.q_misc_util.platform_specific.PlatformHelper; import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -18,11 +18,11 @@ public class IPPortingLibCompat { private static Field f_port_lib$stencilEnabled; public static void init() { - if (FabricLoader.getInstance().isModLoaded("porting_lib")) { + if (PlatformHelper.isModLoaded("porting_lib")) { Helper.log("Porting Lib is present"); isPortingLibPresent = true; - if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) { + if (PlatformHelper.getEnvironmentType() == qouteall.q_misc_util.platform_specific.EnvType.CLIENT) { f_port_lib$stencilEnabled = Helper.noError( () -> RenderTarget.class.getDeclaredField("port_lib$stencilEnabled") ); diff --git a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/mixin/MixinIrisIris.java b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/mixin/MixinIrisIris.java index 7a35907b8..f81f1b694 100644 --- a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/mixin/MixinIrisIris.java +++ b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/compat/mixin/MixinIrisIris.java @@ -2,7 +2,6 @@ import net.coderbot.iris.Iris; import net.coderbot.iris.shaderpack.DimensionId; -import net.fabricmc.loader.api.FabricLoader; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; diff --git a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/platform_specific/IPModEntry.java b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/platform_specific/IPModEntry.java index 92d246dca..d61214107 100644 --- a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/platform_specific/IPModEntry.java +++ b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/platform_specific/IPModEntry.java @@ -3,11 +3,15 @@ import com.fusionflux.gravity_api.util.GravityChannel; import com.fusionflux.gravity_api.util.packet.DefaultGravityPacket; import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.command.v2.ArgumentTypeRegistry; +import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import qouteall.imm_ptl.core.IPModMain; +import qouteall.imm_ptl.core.commands.PortalCommand; +import qouteall.imm_ptl.core.commands.SubCommandArgumentType; import qouteall.imm_ptl.core.compat.GravityChangerInterface; import qouteall.q_misc_util.Helper; @@ -15,7 +19,14 @@ public class IPModEntry implements ModInitializer { @Override public void onInitialize() { + CommandRegistrationCallback.EVENT.register( + (dispatcher, registryAccess, environment) -> PortalCommand.register(dispatcher) + ); + IPModMain.init(); + + + RequiemCompat.init(); IPRegistry.registerEntitiesFabric(); @@ -51,5 +62,5 @@ public void onInitialize() { } } - + } diff --git a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/platform_specific/IPModEntryClient.java b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/platform_specific/IPModEntryClient.java index e35b9a871..d5962aa15 100644 --- a/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/platform_specific/IPModEntryClient.java +++ b/imm_ptl_core/src/main/java/qouteall/imm_ptl/core/platform_specific/IPModEntryClient.java @@ -1,6 +1,7 @@ package qouteall.imm_ptl.core.platform_specific; import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.renderer.entity.EntityRendererProvider; @@ -11,6 +12,7 @@ import qouteall.imm_ptl.core.IPGlobal; import qouteall.imm_ptl.core.IPMcHelper; import qouteall.imm_ptl.core.IPModMainClient; +import qouteall.imm_ptl.core.commands.ClientDebugCommand; import qouteall.imm_ptl.core.compat.IPModInfoChecking; import qouteall.imm_ptl.core.compat.iris_compatibility.ExperimentalIrisPortalRenderer; import qouteall.imm_ptl.core.compat.iris_compatibility.IrisInterface; @@ -65,6 +67,10 @@ public static void initPortalRenderers() { @Override public void onInitializeClient() { IPModMainClient.init(); + + ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> { + ClientDebugCommand.register(dispatcher); + }); initPortalRenderers(); diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/ImplRemoteProcedureCall.java b/q_misc_util/src/main/java/qouteall/q_misc_util/ImplRemoteProcedureCall.java index 7bc26e382..f4a4a4402 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/ImplRemoteProcedureCall.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/ImplRemoteProcedureCall.java @@ -31,6 +31,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; import org.apache.commons.lang3.Validate; +import qouteall.q_misc_util.platform_specific.MiscNetworking; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/MiscGlobals.java b/q_misc_util/src/main/java/qouteall/q_misc_util/MiscGlobals.java index 68bc53d82..d8c735757 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/MiscGlobals.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/MiscGlobals.java @@ -1,7 +1,5 @@ package qouteall.q_misc_util; -import net.fabricmc.fabric.api.event.Event; -import net.fabricmc.fabric.api.event.EventFactory; import net.minecraft.server.MinecraftServer; import qouteall.q_misc_util.my_util.MyTaskList; import qouteall.q_misc_util.my_util.Signal; diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/MiscHelper.java b/q_misc_util/src/main/java/qouteall/q_misc_util/MiscHelper.java index c093c885a..25687b2bc 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/MiscHelper.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/MiscHelper.java @@ -2,7 +2,6 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.Minecraft; import net.minecraft.core.MappedRegistry; import net.minecraft.resources.ResourceKey; @@ -12,6 +11,7 @@ import org.apache.logging.log4j.Logger; import qouteall.q_misc_util.ducks.IEMinecraftServer_Misc; import qouteall.q_misc_util.mixin.IELevelStorageAccess_Misc; +import qouteall.q_misc_util.platform_specific.PlatformHelper; import java.nio.file.Path; import java.util.Map; @@ -84,7 +84,7 @@ public static void executeOnServerThread(Runnable runnable) { } public static boolean isDedicatedServer() { - return FabricLoader.getInstance().getEnvironmentType() == EnvType.SERVER; + return PlatformHelper.getEnvironmentType() == qouteall.q_misc_util.platform_specific.EnvType.SERVER; } diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/api/DimensionAPI.java b/q_misc_util/src/main/java/qouteall/q_misc_util/api/DimensionAPI.java index 59317f340..83cc5fb6c 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/api/DimensionAPI.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/api/DimensionAPI.java @@ -1,6 +1,8 @@ package qouteall.q_misc_util.api; import com.mojang.serialization.Lifecycle; +// FIXME Usage of Fabric Api Outside of Fabric package. I'm still thinking about an approach to fix this, +// as I don't want to move it to the platform specific package in the long term. import net.fabricmc.fabric.api.event.Event; import net.fabricmc.fabric.api.event.EventFactory; import net.minecraft.core.DefaultedMappedRegistry; diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/dimension/DynamicDimensionsImpl.java b/q_misc_util/src/main/java/qouteall/q_misc_util/dimension/DynamicDimensionsImpl.java index c23797d00..da5f36af3 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/dimension/DynamicDimensionsImpl.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/dimension/DynamicDimensionsImpl.java @@ -1,7 +1,6 @@ package qouteall.q_misc_util.dimension; import com.google.common.collect.ImmutableList; -import net.minecraft.Util; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; @@ -27,7 +26,7 @@ import qouteall.q_misc_util.Helper; import qouteall.q_misc_util.MiscGlobals; import qouteall.q_misc_util.MiscHelper; -import qouteall.q_misc_util.MiscNetworking; +import qouteall.q_misc_util.platform_specific.MiscNetworking; import qouteall.q_misc_util.api.DimensionAPI; import qouteall.q_misc_util.ducks.IEMinecraftServer_Misc; import qouteall.q_misc_util.mixin.dimension.IEWorldBorder; diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/MixinServerGamePacketListenerImpl_Misc.java b/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/MixinServerGamePacketListenerImpl_Misc.java index 9f6d9d9f2..a6d25c2a4 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/MixinServerGamePacketListenerImpl_Misc.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/MixinServerGamePacketListenerImpl_Misc.java @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import qouteall.q_misc_util.MiscNetworking; +import qouteall.q_misc_util.platform_specific.MiscNetworking; @Mixin(ServerGamePacketListenerImpl.class) public class MixinServerGamePacketListenerImpl_Misc { diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/client/MixinClientboundCustomPayloadPacket_Misc.java b/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/client/MixinClientboundCustomPayloadPacket_Misc.java index dc328b178..10b5501f5 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/client/MixinClientboundCustomPayloadPacket_Misc.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/client/MixinClientboundCustomPayloadPacket_Misc.java @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import qouteall.q_misc_util.MiscNetworking; +import qouteall.q_misc_util.platform_specific.MiscNetworking; @Mixin(ClientboundCustomPayloadPacket.class) public class MixinClientboundCustomPayloadPacket_Misc { diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/dimension/MixinPlayerList_Misc.java b/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/dimension/MixinPlayerList_Misc.java index 1c0246e6e..3641ec3e9 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/dimension/MixinPlayerList_Misc.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/mixin/dimension/MixinPlayerList_Misc.java @@ -7,7 +7,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import qouteall.q_misc_util.MiscNetworking; +import qouteall.q_misc_util.platform_specific.MiscNetworking; @Mixin(PlayerList.class) public class MixinPlayerList_Misc { diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/EnvType.java b/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/EnvType.java new file mode 100644 index 000000000..2f13a04fc --- /dev/null +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/EnvType.java @@ -0,0 +1,11 @@ +package qouteall.q_misc_util.platform_specific; + +/** + * An alternative would be to directly implement isClient() and isServer into {@link PlatformHelper}. + * @see net.fabricmc.api.EnvType + */ +public enum EnvType { + CLIENT, + SERVER, + UNIMPLEMENTED +} diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/MiscNetworking.java b/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/MiscNetworking.java similarity index 95% rename from q_misc_util/src/main/java/qouteall/q_misc_util/MiscNetworking.java rename to q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/MiscNetworking.java index 6a4c9484b..691f09f03 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/MiscNetworking.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/MiscNetworking.java @@ -1,4 +1,4 @@ -package qouteall.q_misc_util; +package qouteall.q_misc_util.platform_specific; import io.netty.buffer.Unpooled; import net.fabricmc.api.EnvType; @@ -13,6 +13,9 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.Level; import org.apache.commons.lang3.Validate; +import qouteall.q_misc_util.Helper; +import qouteall.q_misc_util.ImplRemoteProcedureCall; +import qouteall.q_misc_util.MiscHelper; import qouteall.q_misc_util.api.DimensionAPI; import qouteall.q_misc_util.dimension.DimensionIdRecord; import qouteall.q_misc_util.dimension.DimensionTypeSync; diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/MiscUtilModEntry.java b/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/MiscUtilModEntry.java similarity index 90% rename from q_misc_util/src/main/java/qouteall/q_misc_util/MiscUtilModEntry.java rename to q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/MiscUtilModEntry.java index ef3cb44ec..91a945643 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/MiscUtilModEntry.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/MiscUtilModEntry.java @@ -1,9 +1,9 @@ -package qouteall.q_misc_util; +package qouteall.q_misc_util.platform_specific; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; -import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; +import qouteall.q_misc_util.MiscGlobals; import qouteall.q_misc_util.dimension.DimensionMisc; import qouteall.q_misc_util.dimension.DimsCommand; import qouteall.q_misc_util.dimension.DynamicDimensionsImpl; diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/MiscUtilModEntryClient.java b/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/MiscUtilModEntryClient.java similarity index 81% rename from q_misc_util/src/main/java/qouteall/q_misc_util/MiscUtilModEntryClient.java rename to q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/MiscUtilModEntryClient.java index 669223734..5e667d3ef 100644 --- a/q_misc_util/src/main/java/qouteall/q_misc_util/MiscUtilModEntryClient.java +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/MiscUtilModEntryClient.java @@ -1,4 +1,4 @@ -package qouteall.q_misc_util; +package qouteall.q_misc_util.platform_specific; import net.fabricmc.api.ClientModInitializer; diff --git a/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/PlatformHelper.java b/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/PlatformHelper.java new file mode 100644 index 000000000..58f7d371a --- /dev/null +++ b/q_misc_util/src/main/java/qouteall/q_misc_util/platform_specific/PlatformHelper.java @@ -0,0 +1,26 @@ +package qouteall.q_misc_util.platform_specific; + +import net.fabricmc.loader.api.FabricLoader; + +public final class PlatformHelper { + + public static boolean isModLoaded(String id) { + return FabricLoader.getInstance().isModLoaded(id); + } + + public static boolean isDevelopmentEnvironment() { + return FabricLoader.getInstance().isDevelopmentEnvironment(); + } + + public static EnvType getEnvironmentType() { + switch (FabricLoader.getInstance().getEnvironmentType()) { + case CLIENT -> {return EnvType.CLIENT;} + case SERVER -> {return EnvType.SERVER;} + default -> {return EnvType.UNIMPLEMENTED;} + } + } + + private PlatformHelper() { + throw new UnsupportedOperationException("This is a static only class."); + } +} diff --git a/q_misc_util/src/main/resources/fabric.mod.json b/q_misc_util/src/main/resources/fabric.mod.json index f3b20b8a1..1a4b219c3 100644 --- a/q_misc_util/src/main/resources/fabric.mod.json +++ b/q_misc_util/src/main/resources/fabric.mod.json @@ -14,10 +14,10 @@ "environment": "*", "entrypoints": { "main": [ - "qouteall.q_misc_util.MiscUtilModEntry" + "qouteall.q_misc_util.platform_specific.MiscUtilModEntry" ], "client": [ - "qouteall.q_misc_util.MiscUtilModEntryClient" + "qouteall.q_misc_util.platform_specific.MiscUtilModEntryClient" ], "server": [