Showing with 16 additions and 8 deletions.
  1. +16 −8 src/main/java/codechicken/lib/world/WorldExtensionManager.java
24 changes: 16 additions & 8 deletions src/main/java/codechicken/lib/world/WorldExtensionManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,25 @@ public void onWorldUnLoad(WorldEvent.Unload event) {

@SubscribeEvent
public void onChunkWatch(Watch event) {
Chunk chunk = event.player.worldObj.getChunkFromChunkCoords(event.chunk.chunkXPos, event.chunk.chunkZPos);
for (WorldExtension extension : worldMap.get(event.player.worldObj))
extension.watchChunk(chunk, event.player);
WorldExtension[] extensions = worldMap.get(event.player.worldObj);

if (extensions != null) {
Chunk chunk = event.player.worldObj
.getChunkFromChunkCoords(event.chunk.chunkXPos, event.chunk.chunkZPos);
for (WorldExtension extension : extensions) extension.watchChunk(chunk, event.player);
}
}

@SubscribeEvent
@SideOnly(Side.CLIENT)
public void onChunkUnWatch(UnWatch event) {
Chunk chunk = event.player.worldObj.getChunkFromChunkCoords(event.chunk.chunkXPos, event.chunk.chunkZPos);
for (WorldExtension extension : worldMap.get(event.player.worldObj))
extension.unwatchChunk(chunk, event.player);
WorldExtension[] extensions = worldMap.get(event.player.worldObj);

if (extensions != null) {
Chunk chunk = event.player.worldObj
.getChunkFromChunkCoords(event.chunk.chunkXPos, event.chunk.chunkZPos);
for (WorldExtension extension : extensions) extension.unwatchChunk(chunk, event.player);
}
}

@SubscribeEvent
Expand All @@ -110,7 +118,7 @@ public void serverTick(TickEvent.WorldTickEvent event) {
}

private static boolean initialised;
private static ArrayList<WorldExtensionInstantiator> extensionIntialisers = new ArrayList<WorldExtensionInstantiator>();
private static ArrayList<WorldExtensionInstantiator> extensionIntialisers = new ArrayList<>();

public static void registerWorldExtension(WorldExtensionInstantiator init) {
if (!initialised) init();
Expand All @@ -125,7 +133,7 @@ private static void init() {
FMLCommonHandler.instance().bus().register(new WorldExtensionEventHandler());
}

private static HashMap<World, WorldExtension[]> worldMap = new HashMap<World, WorldExtension[]>();
private static HashMap<World, WorldExtension[]> worldMap = new HashMap<>();

private static void onWorldLoad(World world) {
WorldExtension[] extensions = new WorldExtension[extensionIntialisers.size()];
Expand Down