package codechicken.wirelessredstone.core; import codechicken.core.ServerUtils; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedOutEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerRespawnEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.event.world.ChunkDataEvent; import net.minecraftforge.event.world.ChunkEvent; import net.minecraftforge.event.world.WorldEvent; public class WRCoreEventHandler { @SubscribeEvent public void onWorldLoad(WorldEvent.Load event) { if (event.world.isRemote) RedstoneEther.loadClientEther(event.world); else RedstoneEther.loadServerWorld(event.world); } @SubscribeEvent public void onChunkDataLoad(ChunkDataEvent.Load event) { RedstoneEther.loadServerWorld(event.world); } @SubscribeEvent public void onWorldUnload(WorldEvent.Unload event) { if (event.world.isRemote) return; RedstoneEther.unloadServerWorld(event.world); if (!ServerUtils.mc().isServerRunning()) RedstoneEther.unloadServer(); } @SubscribeEvent public void onWorldSave(WorldEvent.Save event) { if (event.world.isRemote || RedstoneEther.server() == null) return; RedstoneEther.server().saveEther(event.world); } @SubscribeEvent public void onChunkLoad(ChunkEvent.Load event) { if (event.world.isRemote) return; if (RedstoneEther.server() != null)//new world { RedstoneEther.loadServerWorld(event.world); RedstoneEther.server().verifyChunkTransmitters(event.world, event.getChunk().xPosition, event.getChunk().zPosition); } } @SubscribeEvent @SideOnly(Side.CLIENT) public void onRenderWorldLast(RenderWorldLastEvent event) { RenderWirelessBolt.render(event.partialTicks, Minecraft.getMinecraft().renderViewEntity); } @SubscribeEvent public void playerLogin(PlayerLoggedInEvent event) { RedstoneEther.server().resetPlayer(event.player); } @SubscribeEvent public void playerDimensionChange(PlayerChangedDimensionEvent event) { RedstoneEther.server().resetPlayer(event.player); } @SubscribeEvent public void playerLogout(PlayerLoggedOutEvent event) { RedstoneEther.server().removePlayer(event.player); } @SubscribeEvent public void playerRespawn(PlayerRespawnEvent event) { RedstoneEther.server().resetPlayer(event.player); } @SubscribeEvent public void clientTick(ClientTickEvent event) { if(event.phase == Phase.START) WirelessBolt.update(WirelessBolt.clientboltlist); } @SubscribeEvent public void serverTick(ServerTickEvent event) { if(event.phase == Phase.START) WirelessBolt.update(WirelessBolt.serverboltlist); } @SubscribeEvent public void serverTick(WorldTickEvent event) { if(event.phase == Phase.END && !event.world.isRemote) RedstoneEther.server().tick(event.world); } }