From bd7e38ad824fd4094519c6d9bbbc35de713b5aad Mon Sep 17 00:00:00 2001 From: Micle Date: Mon, 26 May 2025 20:28:46 +0100 Subject: [PATCH] WIP: Created proxy. --- .../GeologistPickTweaks.java | 2 + .../geologistpicktweaks/proxy/IProxy.java | 11 ++ .../geologistpicktweaks/proxy/Proxy.java | 103 ++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 src/main/java/dev/micle/geologistpicktweaks/proxy/IProxy.java create mode 100644 src/main/java/dev/micle/geologistpicktweaks/proxy/Proxy.java diff --git a/src/main/java/dev/micle/geologistpicktweaks/GeologistPickTweaks.java b/src/main/java/dev/micle/geologistpicktweaks/GeologistPickTweaks.java index c53bba7..9b10be9 100644 --- a/src/main/java/dev/micle/geologistpicktweaks/GeologistPickTweaks.java +++ b/src/main/java/dev/micle/geologistpicktweaks/GeologistPickTweaks.java @@ -1,6 +1,8 @@ package dev.micle.geologistpicktweaks; import com.mojang.logging.LogUtils; +import dev.micle.geologistpicktweaks.proxy.IProxy; +import dev.micle.geologistpicktweaks.proxy.Proxy; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; diff --git a/src/main/java/dev/micle/geologistpicktweaks/proxy/IProxy.java b/src/main/java/dev/micle/geologistpicktweaks/proxy/IProxy.java new file mode 100644 index 0000000..8282e1b --- /dev/null +++ b/src/main/java/dev/micle/geologistpicktweaks/proxy/IProxy.java @@ -0,0 +1,11 @@ +package dev.micle.geologistpicktweaks.proxy; + +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; + +public interface IProxy { + MinecraftServer getServer(); + Player getClientPlayer(); + Level getClientLevel(); +} diff --git a/src/main/java/dev/micle/geologistpicktweaks/proxy/Proxy.java b/src/main/java/dev/micle/geologistpicktweaks/proxy/Proxy.java new file mode 100644 index 0000000..425a6fb --- /dev/null +++ b/src/main/java/dev/micle/geologistpicktweaks/proxy/Proxy.java @@ -0,0 +1,103 @@ +package dev.micle.geologistpicktweaks.proxy; + +import dev.micle.geologistpicktweaks.GeologistPickTweaks; +import net.minecraft.client.Minecraft; +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.AddReloadListenerEvent; +import net.minecraftforge.event.server.ServerStartedEvent; +import net.minecraftforge.event.server.ServerStoppingEvent; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.event.lifecycle.*; + +public class Proxy implements IProxy { + private static MinecraftServer server = null; + + // Common setup + public Proxy() { + Config.register(); + + // Register mod event bus listeners + IEventBus modEventBus = GeologistPickTweaks.getFMLJavaModLoadingContext().getModEventBus(); + modEventBus.addListener(Proxy::setup); + modEventBus.addListener(Proxy::imcEnqueue); + modEventBus.addListener(Proxy::imcProcess); + + // Register event bus listeners + MinecraftForge.EVENT_BUS.addListener(Proxy::onAddReloadListeners); + MinecraftForge.EVENT_BUS.addListener(Proxy::serverStarted); + MinecraftForge.EVENT_BUS.addListener(Proxy::serverStopping); + } + + private static void setup(FMLCommonSetupEvent event) {} + + private static void imcEnqueue(InterModEnqueueEvent event) {} + + private static void imcProcess(InterModProcessEvent event) {} + + private static void onAddReloadListeners(AddReloadListenerEvent event) {} + + private static void serverStarted(ServerStartedEvent event) { + server = event.getServer(); + } + + private static void serverStopping(ServerStoppingEvent event) { + server = null; + } + + @Override + public MinecraftServer getServer() { + return server; + } + + @Override + public Player getClientPlayer() { + return null; + } + + @Override + public Level getClientLevel() { + return null; + } + + // Client setup + public static class Client extends Proxy { + public Client() { + // Register mod event bus listeners + IEventBus modEventBus = GeologistPickTweaks.getFMLJavaModLoadingContext().getModEventBus(); + modEventBus.addListener(Client::setup); + modEventBus.addListener(Client::postSetup); + } + + private static void setup(FMLClientSetupEvent event) {} + + private static void postSetup(FMLLoadCompleteEvent event) {} + + @Override + @OnlyIn(Dist.CLIENT) + public Player getClientPlayer() { + return Minecraft.getInstance().player; + } + + @Override + @OnlyIn(Dist.CLIENT) + public Level getClientLevel() { + return Minecraft.getInstance().level; + } + } + + // Server setup + public static class Server extends Proxy { + public Server() { + // Register mod event bus listeners + IEventBus modEventBus = GeologistPickTweaks.getFMLJavaModLoadingContext().getModEventBus(); + modEventBus.addListener(Server::setup); + } + + private static void setup(FMLDedicatedServerSetupEvent event) {} + } +}