[MAJOR] Implement new NOJANG modding system

This commit is contained in:
2024-05-01 13:26:18 +02:00
parent 76bc39ec33
commit bcbf91b39f
112 changed files with 1336 additions and 920 deletions

View File

@@ -3,6 +3,8 @@ package com.hypherionmc.craterlib.common;
import com.hypherionmc.craterlib.core.network.CraterNetworkHandler;
import com.hypherionmc.craterlib.core.platform.CommonPlatform;
import com.hypherionmc.craterlib.network.NeoForgeNetworkHandler;
import com.hypherionmc.craterlib.nojang.client.BridgedMinecraft;
import com.hypherionmc.craterlib.nojang.server.BridgedMinecraftServer;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.item.CreativeModeTab;
@@ -16,19 +18,11 @@ import java.util.Map;
*/
public class NeoForgeCommonHelper implements CommonPlatform {
public static Map<ResourceLocation, CreativeModeTab> TABS = new HashMap<>();
public NeoForgeCommonHelper() {
}
@Override
public CraterNetworkHandler createPacketHandler(String modid, boolean requiredClient, boolean requiredServer) {
return new NeoForgeNetworkHandler(modid, requiredClient, requiredServer);
//return NeoForgeNetworkHandler.of(modid, requiredClient, requiredServer);
}
@Override
public MinecraftServer getMCServer() {
return ServerLifecycleHooks.getCurrentServer();
public BridgedMinecraftServer getMCServer() {
return BridgedMinecraftServer.of(ServerLifecycleHooks.getCurrentServer());
}
}

View File

@@ -1,8 +1,10 @@
package com.hypherionmc.craterlib.common;
import com.hypherionmc.craterlib.api.event.server.CraterRegisterCommandEvent;
import com.hypherionmc.craterlib.api.event.server.CraterServerLifecycleEvent;
import com.hypherionmc.craterlib.api.events.server.CraterRegisterCommandEvent;
import com.hypherionmc.craterlib.api.events.server.CraterServerLifecycleEvent;
import com.hypherionmc.craterlib.core.event.CraterEventBus;
import com.hypherionmc.craterlib.nojang.commands.CommandsRegistry;
import com.hypherionmc.craterlib.nojang.server.BridgedMinecraftServer;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.neoforge.event.RegisterCommandsEvent;
import net.neoforged.neoforge.event.server.ServerStartedEvent;
@@ -14,27 +16,28 @@ public class NeoForgeServerEvents {
@SubscribeEvent
public void serverStarting(ServerStartingEvent event) {
CraterEventBus.INSTANCE.postEvent(new CraterServerLifecycleEvent.Starting(event.getServer()));
CraterEventBus.INSTANCE.postEvent(new CraterServerLifecycleEvent.Starting(BridgedMinecraftServer.of(event.getServer())));
}
@SubscribeEvent
public void serverStarted(ServerStartedEvent event) {
CraterEventBus.INSTANCE.postEvent(new CraterServerLifecycleEvent.Started());
CraterEventBus.INSTANCE.postEvent(new CraterServerLifecycleEvent.Started(BridgedMinecraftServer.of(event.getServer())));
}
@SubscribeEvent
public void serverStopping(ServerStoppingEvent event) {
CraterEventBus.INSTANCE.postEvent(new CraterServerLifecycleEvent.Stopping());
CraterEventBus.INSTANCE.postEvent(new CraterServerLifecycleEvent.Stopping(BridgedMinecraftServer.of(event.getServer())));
}
@SubscribeEvent
public void serverStopped(ServerStoppedEvent event) {
CraterEventBus.INSTANCE.postEvent(new CraterServerLifecycleEvent.Stopped());
CraterEventBus.INSTANCE.postEvent(new CraterServerLifecycleEvent.Stopped(BridgedMinecraftServer.of(event.getServer())));
}
@SubscribeEvent
public void onCommandRegister(RegisterCommandsEvent event) {
CraterEventBus.INSTANCE.postEvent(new CraterRegisterCommandEvent(event.getDispatcher()));
CraterEventBus.INSTANCE.postEvent(new CraterRegisterCommandEvent());
CommandsRegistry.INSTANCE.registerCommands(event.getDispatcher());
}
}