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.Coords;
6 import com.irtimaled.bbor.common.models.ServerPlayer;
7 import com.irtimaled.bbor.config.ConfigManager;
8 import net.minecraft.block.Block;
9 import net.minecraft.block.BlockMobSpawner;
10 import net.minecraft.entity.player.EntityPlayerMP;
11 import net.minecraft.network.NetHandlerPlayServer;
12 import net.minecraft.network.NetworkManager;
13 import net.minecraft.util.math.BlockPos;
14 import net.minecraft.world.World;
15 import net.minecraft.world.WorldServer;
16 import net.minecraft.world.chunk.Chunk;
19 import java.util.Collection;
21 public class CommonInterop {
22 public static void init() {
23 ConfigManager.loadConfig(new File("."));
26 public static void chunkLoaded(Chunk chunk) {
27 EventBus.publish(new ChunkLoaded(chunk));
30 public static void loadWorlds(Collection<WorldServer> worlds) {
31 for (WorldServer world : worlds) {
36 public static void loadWorld(WorldServer world) {
37 EventBus.publish(new WorldLoaded(world));
40 public static void tick() {
41 EventBus.publish(new ServerTick());
44 public static void worldTick(WorldServer worldServer) {
45 EventBus.publish(new ServerWorldTick(worldServer));
48 public static void playerLoggedIn(EntityPlayerMP player) {
49 NetHandlerPlayServer connection = player.connection;
50 if (connection == null) return;
52 NetworkManager networkManager = connection.netManager;
53 if (networkManager.isLocalChannel()) return;
55 EventBus.publish(new PlayerLoggedIn(new ServerPlayer(player)));
58 public static void playerLoggedOut(EntityPlayerMP player) {
59 EventBus.publish(new PlayerLoggedOut(player.getEntityId()));
62 public static void playerSubscribed(EntityPlayerMP player) {
63 EventBus.publish(new PlayerSubscribed(player.getEntityId(), new ServerPlayer(player)));
66 public static void tryHarvestBlock(Block block, BlockPos pos, World world) {
67 if (block instanceof BlockMobSpawner) {
68 EventBus.publish(new MobSpawnerBroken(world.dimension.getType().getId(), new Coords(pos)));