Ported side proxy.

This commit is contained in:
2026-01-09 00:02:21 +01:00
parent aff7f9ae54
commit 681ebeeeb7
3 changed files with 37 additions and 32 deletions

View File

@ -3,10 +3,11 @@ package dev.micle.totemofreviving;
import dev.micle.totemofreviving.proxy.IProxy;
import dev.micle.totemofreviving.proxy.Proxy;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.fml.ModContainer;
import net.minecraftforge.fml.ModList;
import net.minecraftforge.fml.common.Mod;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.loading.FMLEnvironment;
import java.util.Optional;
@ -16,11 +17,10 @@ public final class TotemOfReviving {
private static IProxy proxy;
public TotemOfReviving() {
proxy = DistExecutor.safeRunForDist(
() -> Proxy.Client::new,
() -> Proxy.Server::new
);
public TotemOfReviving(IEventBus modEventBus) {
proxy = FMLEnvironment.dist == Dist.CLIENT
? new Proxy.Client(modEventBus)
: new Proxy.Server(modEventBus);
}
public static ResourceLocation createResourceLocation(String name) {

View File

@ -4,8 +4,15 @@ import net.minecraft.server.MinecraftServer;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import javax.annotation.Nullable;
public interface IProxy {
@Nullable
MinecraftServer getServer();
@Nullable
Player getClientPlayer();
Level getClientWorld();
@Nullable
Level getClientLevel();
}

View File

@ -7,37 +7,35 @@ 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.*;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.event.lifecycle.*;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.event.AddReloadListenerEvent;
import net.neoforged.neoforge.event.server.ServerStartedEvent;
import net.neoforged.neoforge.event.server.ServerStoppingEvent;
public class Proxy implements IProxy {
// Initialize variables
private static MinecraftServer server = null;
// Common setup
public Proxy() {
public Proxy(IEventBus modEventBus) {
// Initialize setup
Registration.register();
Config.init();
NetworkManager.init();
// Register mod event bus listeners
IEventBus modEventBus = FMLJavaModLoadingContext.get().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);
NeoForge.EVENT_BUS.addListener(Proxy::onAddReloadListeners);
NeoForge.EVENT_BUS.addListener(Proxy::serverStarted);
NeoForge.EVENT_BUS.addListener(Proxy::serverStopping);
}
private static void setup(FMLCommonSetupEvent event) {}
@ -67,15 +65,15 @@ public class Proxy implements IProxy {
}
@Override
public Level getClientWorld() {
public Level getClientLevel() {
return null;
}
// Client setup
public static class Client extends Proxy {
public Client() {
public Client(IEventBus modEventBus) {
super(modEventBus);
// Register mod event bus listeners
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
modEventBus.addListener(Client::setup);
modEventBus.addListener(Client::postSetup);
}
@ -92,16 +90,16 @@ public class Proxy implements IProxy {
@Override
@OnlyIn(Dist.CLIENT)
public Level getClientWorld() {
public Level getClientLevel() {
return Minecraft.getInstance().level;
}
}
// Server setup
public static class Server extends Proxy {
public Server() {
public Server(IEventBus modEventBus) {
super(modEventBus);
// Register mod event bus listeners
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
modEventBus.addListener(Server::setup);
}