1 package com.irtimaled.bbor.common.interop;
3 import com.irtimaled.bbor.common.EventBus;
4 import com.irtimaled.bbor.common.events.*;
5 import com.irtimaled.bbor.common.models.ServerPlayer;
6 import com.irtimaled.bbor.config.ConfigManager;
7 import net.minecraft.entity.player.EntityPlayerMP;
8 import net.minecraft.network.NetHandlerPlayServer;
9 import net.minecraft.network.NetworkManager;
10 import net.minecraft.world.WorldServer;
11 import net.minecraft.world.chunk.Chunk;
12 import net.minecraft.world.gen.feature.structure.StructureStart;
15 import java.util.Collection;
18 public class CommonInterop {
19 public static void init() {
20 ConfigManager.loadConfig(new File("."));
23 public static void chunkLoaded(Chunk chunk) {
24 int dimensionId = chunk.getWorld().getDimension().getType().getId();
25 Map<String, StructureStart> structures = chunk.getStructureStarts();
26 if(structures.size() > 0) EventBus.publish(new StructuresLoaded(structures, dimensionId));
29 public static void loadWorlds(Collection<WorldServer> worlds) {
30 for (WorldServer world : worlds) {
35 public static void loadWorld(WorldServer world) {
36 EventBus.publish(new WorldLoaded(world));
39 public static void tick() {
40 EventBus.publish(new ServerTick());
43 public static void worldTick(WorldServer worldServer) {
44 EventBus.publish(new ServerWorldTick(worldServer));
47 public static void playerLoggedIn(EntityPlayerMP player) {
48 NetHandlerPlayServer connection = player.connection;
49 if (connection == null) return;
51 NetworkManager networkManager = connection.netManager;
52 if (networkManager.isLocalChannel()) return;
54 EventBus.publish(new PlayerLoggedIn(new ServerPlayer(player)));
57 public static void playerLoggedOut(EntityPlayerMP player) {
58 EventBus.publish(new PlayerLoggedOut(player.getEntityId()));
61 public static void playerSubscribed(EntityPlayerMP player) {
62 EventBus.publish(new PlayerSubscribed(player.getEntityId(), new ServerPlayer(player)));