diff --git a/src/main/java/net/minecraft/world/World.java b/src/main/java/net/minecraft/world/World.java index 91b396f..c79dbda 100644 --- a/src/main/java/net/minecraft/world/World.java +++ b/src/main/java/net/minecraft/world/World.java @@ -4173,7 +4173,7 @@ private final ServerLoadBalancer balancer = new ServerLoadBalancer(this); - private final WorldEventProxy eventProxy = FMLCommonHandler.instance().getSide().isServer() && this instanceof WorldServer ? new ServerWorldEventProxy((WorldServer)this) : new WorldEventProxy(); + protected WorldEventProxy eventProxy = new WorldEventProxy(); protected final WorldChunkProfiler chunkProfiler; public Chunk getChunkIfExists(int cx, int cz) diff --git a/src/main/java/net/minecraft/world/WorldServer.java b/src/main/java/net/minecraft/world/WorldServer.java index b9cc5cc..d99f3ed 100644 --- a/src/main/java/net/minecraft/world/WorldServer.java +++ b/src/main/java/net/minecraft/world/WorldServer.java @@ -78,6 +78,7 @@ import org.ultramine.server.WorldsConfig.WorldConfig.Settings.WorldTime; import org.ultramine.server.chunk.ChunkHash; import org.ultramine.server.chunk.PendingBlockUpdate; +import org.ultramine.server.event.ServerWorldEventProxy; import org.ultramine.server.event.WorldUpdateObjectType; import org.ultramine.server.mobspawn.MobSpawnManager; @@ -1056,13 +1057,22 @@ public void setConfig(WorldConfig config) { this.config = config; - this.border = new WorldBorder(config.borders); - if(isServer && config.mobSpawn.spawnEngine == WorldConfig.MobSpawn.MobSpawnEngine.NEW) + if(isServer) + initOnServer(); + } + + @SideOnly(Side.SERVER) + private void initOnServer() + { + if(config.mobSpawn.spawnEngine == WorldConfig.MobSpawn.MobSpawnEngine.NEW) { if(mobSpawner == null) mobSpawner = new MobSpawnManager(this); mobSpawner.configure(config); } + + this.border = new WorldBorder(config.borders); + this.eventProxy = new ServerWorldEventProxy(this); } public WorldConfig getConfig() @@ -1081,6 +1091,7 @@ return config.chunkLoading.enableChunkLoaders; } + @SideOnly(Side.SERVER) public WorldBorder getBorder() { return border; diff --git a/src/main/java/org/ultramine/server/UMEventHandler.java b/src/main/java/org/ultramine/server/UMEventHandler.java index ade2fd4..a0db082 100644 --- a/src/main/java/org/ultramine/server/UMEventHandler.java +++ b/src/main/java/org/ultramine/server/UMEventHandler.java @@ -132,7 +132,8 @@ } @SubscribeEvent - public void onPlayerTick(TickEvent.PlayerTickEvent e) + @SideOnly(Side.SERVER) + public void onPlayerTickServer(TickEvent.PlayerTickEvent e) { if(e.phase == TickEvent.Phase.END && e.side.isServer()) { diff --git a/src/main/java/org/ultramine/server/WorldBorder.java b/src/main/java/org/ultramine/server/WorldBorder.java index fa8eeaf..d08b1cd 100644 --- a/src/main/java/org/ultramine/server/WorldBorder.java +++ b/src/main/java/org/ultramine/server/WorldBorder.java @@ -5,6 +5,10 @@ import org.ultramine.server.WorldsConfig.WorldConfig.Border; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(Side.SERVER) public class WorldBorder { private final OneBorder[] borders; @@ -59,6 +63,7 @@ return found.correctPosition(x, z); } + @SideOnly(Side.SERVER) private static class OneBorder { private final int x; diff --git a/src/main/java/org/ultramine/server/event/ServerWorldEventProxy.java b/src/main/java/org/ultramine/server/event/ServerWorldEventProxy.java index ec93825..fbe04fb 100644 --- a/src/main/java/org/ultramine/server/event/ServerWorldEventProxy.java +++ b/src/main/java/org/ultramine/server/event/ServerWorldEventProxy.java @@ -2,6 +2,8 @@ import org.ultramine.server.chunk.ChunkHash; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gnu.trove.list.TLongList; import gnu.trove.list.array.TLongArrayList; import net.minecraft.block.Block; @@ -13,6 +15,7 @@ import net.minecraft.world.WorldServer; import net.minecraftforge.common.MinecraftForge; +@SideOnly(Side.SERVER) public class ServerWorldEventProxy extends WorldEventProxy { private final WorldServer world;