]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java
0dbfb795cba21370d1b9520f6909a6333fdfd23f
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / common / interop / CommonInterop.java
1 package com.irtimaled.bbor.common.interop;
2
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;
12
13 import java.util.Collection;
14 import java.util.Map;
15
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));
21     }
22
23     public static void loadWorlds(Collection<WorldServer> worlds) {
24         for (WorldServer world : worlds) {
25             loadWorld(world);
26         }
27     }
28
29     public static void loadWorld(WorldServer world) {
30         EventBus.publish(new WorldLoaded(world));
31     }
32
33     public static void tick() {
34         EventBus.publish(new ServerTick());
35     }
36
37     public static void worldTick(WorldServer worldServer) {
38         EventBus.publish(new ServerWorldTick(worldServer));
39     }
40
41     public static void playerLoggedIn(EntityPlayerMP player) {
42         NetHandlerPlayServer connection = player.connection;
43         if (connection == null) return;
44
45         NetworkManager networkManager = connection.netManager;
46         if (networkManager.isLocalChannel()) return;
47
48         EventBus.publish(new PlayerLoggedIn(new ServerPlayer(player)));
49     }
50
51     public static void playerLoggedOut(EntityPlayerMP player) {
52         EventBus.publish(new PlayerLoggedOut(player.getEntityId()));
53     }
54
55     public static void playerSubscribed(EntityPlayerMP player) {
56         EventBus.publish(new PlayerSubscribed(player.getEntityId(), new ServerPlayer(player)));
57     }
58 }