package minefantasy.mf2.network.packet; import java.util.Hashtable; import java.util.Map; import minefantasy.mf2.MineFantasyII; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.NetHandlerPlayServer; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.network.FMLEventChannel; import cpw.mods.fml.common.network.FMLNetworkEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.internal.FMLProxyPacket; public class PacketHandlerMF { public Map<String, PacketMF> packetList = new Hashtable<String, PacketMF>(); public Map<String, FMLEventChannel> channels = new Hashtable<String, FMLEventChannel>(); public PacketHandlerMF() { packetList.put(StaminaPacket.packetName, new StaminaPacket()); packetList.put(ParryPacket.packetName, new ParryPacket()); packetList.put(HitSoundPacket.packetName, new HitSoundPacket()); packetList.put(AnvilPacket.packetName, new AnvilPacket()); packetList.put(CarpenterPacket.packetName, new CarpenterPacket()); packetList.put(KnowledgePacket.packetName, new KnowledgePacket()); packetList.put(ResearchRequest.packetName, new ResearchRequest()); packetList.put(ChimneyPacket.packetName, new ChimneyPacket()); packetList.put(SkillPacket.packetName, new SkillPacket()); packetList.put(LevelupPacket.packetName, new LevelupPacket()); packetList.put(ForgePacket.packetName, new ForgePacket()); packetList.put(ResearchTablePacket.packetName, new ResearchTablePacket()); packetList.put(TroughPacket.packetName, new TroughPacket()); packetList.put(BombBenchPacket.packetName, new BombBenchPacket()); packetList.put(TannerPacket.packetName, new TannerPacket()); packetList.put(RoadPacket.packetName, new RoadPacket()); packetList.put(BloomeryPacket.packetName, new BloomeryPacket()); packetList.put(CrossbowBenchPacket.packetName, new CrossbowBenchPacket()); } @SubscribeEvent public void onServerPacket(FMLNetworkEvent.ServerCustomPacketEvent event) { packetList.get(event.packet.channel()).process(event.packet.payload(), ((NetHandlerPlayServer)event.handler).playerEntity); } @SubscribeEvent public void onClientPacket(FMLNetworkEvent.ClientCustomPacketEvent event) { packetList.get(event.packet.channel()).process(event.packet.payload(), MineFantasyII.proxy.getClientPlayer()); } public void sendPacketToPlayer(FMLProxyPacket packet, EntityPlayerMP player) { channels.get(packet.channel()).sendTo(packet, player); } public void sendPacketToServer(FMLProxyPacket packet) { channels.get(packet.channel()).sendToServer(packet); } public void sendPacketAround(Entity entity, double range, FMLProxyPacket packet) { channels.get(packet.channel()).sendToAllAround(packet, new NetworkRegistry.TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, range)); } public void sendPacketToAll(FMLProxyPacket packet) { channels.get(packet.channel()).sendToAll(packet); } }