Private
Public Access
1
0

Implemented proxy.

This commit is contained in:
2026-06-09 18:57:54 +01:00
parent 6ee252e545
commit d6d8f86148
3 changed files with 136 additions and 1 deletions

View File

@ -1,13 +1,34 @@
package dev.micle.wildflowers_backport; package dev.micle.wildflowers_backport;
import com.mojang.logging.LogUtils; import com.mojang.logging.LogUtils;
import dev.micle.wildflowers_backport.proxy.IProxy;
import dev.micle.wildflowers_backport.proxy.Proxy;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.slf4j.Logger; import org.slf4j.Logger;
@Mod(WildflowersBackport.MOD_ID) @Mod(WildflowersBackport.MOD_ID)
public class WildflowersBackport { public class WildflowersBackport {
public static final String MOD_ID = "wildflowers_backport"; public static final String MOD_ID = "wildflowers_backport";
private static final Logger LOGGER = LogUtils.getLogger(); private static final Logger LOGGER = LogUtils.getLogger();
private static FMLJavaModLoadingContext fmlJavaModLoadingContext;
private static IProxy proxy;
public WildflowersBackport() {} public WildflowersBackport(FMLJavaModLoadingContext context) {
fmlJavaModLoadingContext = context;
proxy = DistExecutor.safeRunForDist(
() -> Proxy.Client::new,
() -> Proxy.Server::new
);
}
public static FMLJavaModLoadingContext getFmlJavaModLoadingContext() {
return fmlJavaModLoadingContext;
}
public static IProxy getProxy() {
return proxy;
}
} }

View File

@ -0,0 +1,11 @@
package dev.micle.wildflowers_backport.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,103 @@
package dev.micle.wildflowers_backport.proxy;
import dev.micle.wildflowers_backport.WildflowersBackport;
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() {
IEventBus modEventBus = WildflowersBackport.getFmlJavaModLoadingContext().getModEventBus();
// Register mod event bus listeners
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() {
IEventBus modEventBus = WildflowersBackport.getFmlJavaModLoadingContext().getModEventBus();
// Register mod event bus listeners
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 = WildflowersBackport.getFmlJavaModLoadingContext().getModEventBus();
modEventBus.addListener(Server::setup);
}
private static void setup(FMLDedicatedServerSetupEvent event) {}
}
}