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 net.minecraft.entity.player.EntityPlayerMP;
7 import net.minecraft.network.NetHandlerPlayServer;
8 import net.minecraft.network.NetworkManager;
9 import net.minecraft.world.WorldServer;
10 import net.minecraft.world.chunk.Chunk;
11 import net.minecraft.world.gen.feature.structure.StructureStart;
13 import java.util.Collection;
16 public class CommonInterop {
17 public static void chunkLoaded(Chunk chunk) {
18 int dimensionId = chunk.getWorld().getDimension().getType().getId();
19 Map<String, StructureStart> structures = chunk.getStructureStarts();
20 if(structures.size() > 0) EventBus.publish(new StructuresLoaded(structures, dimensionId));
23 public static void loadWorlds(Collection<WorldServer> worlds) {
24 for (WorldServer world : worlds) {
29 public static void loadWorld(WorldServer world) {
30 EventBus.publish(new WorldLoaded(world));
33 public static void tick() {
34 EventBus.publish(new ServerTick());
37 public static void worldTick(WorldServer worldServer) {
38 EventBus.publish(new ServerWorldTick(worldServer));
41 public static void playerLoggedIn(EntityPlayerMP player) {
42 NetHandlerPlayServer connection = player.connection;
43 if (connection == null) return;
45 NetworkManager networkManager = connection.netManager;
46 if (networkManager.isLocalChannel()) return;
48 EventBus.publish(new PlayerLoggedIn(new ServerPlayer(player)));
51 public static void playerLoggedOut(EntityPlayerMP player) {
52 EventBus.publish(new PlayerLoggedOut(player.getEntityId()));
55 public static void playerSubscribed(EntityPlayerMP player) {
56 EventBus.publish(new PlayerSubscribed(player.getEntityId(), new ServerPlayer(player)));