Remade Main class and created Proxy interface and implementation.

This commit is contained in:
2025-05-24 04:35:44 +01:00
parent 0ef1b70ecd
commit 7ef84de2b5
3 changed files with 125 additions and 15 deletions

View File

@ -0,0 +1,11 @@
package dev.micle.xptools.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();
}

View File

@ -0,0 +1,97 @@
package dev.micle.xptools.proxy;
import dev.micle.xptools.XpTools;
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.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() {
// Register mod event bus listeners
IEventBus modEventBus = XpTools.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 = XpTools.getFMLJavaModLoadingContext().getModEventBus();
modEventBus.addListener(Client::setup);
modEventBus.addListener(Client::postSetup);
}
private static void setup(FMLClientSetupEvent event) {}
private static void postSetup(FMLLoadCompleteEvent event) {}
@Override
public Player getClientPlayer() {
return Minecraft.getInstance().player;
}
@Override
public Level getClientLevel() {
return Minecraft.getInstance().level;
}
}
// Server setup
public static class Server extends Proxy {
public Server() {
// Register mod event bus listeners
IEventBus modEventBus = XpTools.getFMLJavaModLoadingContext().getModEventBus();
modEventBus.addListener(Server::setup);
}
private static void setup(FMLDedicatedServerSetupEvent event) {}
}
}