Remade Main class and created Proxy interface and implementation.
This commit is contained in:
@ -1,28 +1,30 @@
|
||||
package dev.micle.xptools;
|
||||
|
||||
import com.mojang.logging.LogUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.world.item.CreativeModeTabs;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
|
||||
import net.minecraftforge.event.server.ServerStartingEvent;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.ModLoadingContext;
|
||||
import dev.micle.xptools.proxy.IProxy;
|
||||
import dev.micle.xptools.proxy.Proxy;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.config.ModConfig;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
@Mod(XpTools.MOD_ID)
|
||||
public class XpTools {
|
||||
public static final String MOD_ID = "xp_tools";
|
||||
private static final Logger LOGGER = LogUtils.getLogger();
|
||||
private static FMLJavaModLoadingContext fmlJavaModLoadingContext;
|
||||
private static IProxy proxy;
|
||||
|
||||
public XpTools() {}
|
||||
public XpTools(FMLJavaModLoadingContext context) {
|
||||
fmlJavaModLoadingContext = context;
|
||||
|
||||
proxy = DistExecutor.safeRunForDist(
|
||||
() -> Proxy.Client::new,
|
||||
() -> Proxy.Server::new
|
||||
);
|
||||
}
|
||||
|
||||
public static FMLJavaModLoadingContext getFMLJavaModLoadingContext() {
|
||||
return fmlJavaModLoadingContext;
|
||||
}
|
||||
}
|
||||
|
11
src/main/java/dev/micle/xptools/proxy/IProxy.java
Normal file
11
src/main/java/dev/micle/xptools/proxy/IProxy.java
Normal 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();
|
||||
}
|
97
src/main/java/dev/micle/xptools/proxy/Proxy.java
Normal file
97
src/main/java/dev/micle/xptools/proxy/Proxy.java
Normal 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) {}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user