com.freyja.FES.common.packets.PacketHandler.java Source code

Java tutorial

Introduction

Here is the source code for com.freyja.FES.common.packets.PacketHandler.java

Source

package com.freyja.FES.common.packets;

import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteStreams;
import cpw.mods.fml.common.network.IPacketHandler;
import cpw.mods.fml.common.network.Player;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;

/**
 * Enchanting Plus
 *
 * @user odininon
 * @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html)
 */

public class PacketHandler implements IPacketHandler {

    @Override
    public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) {
        try {
            EntityPlayer entityPlayer = (EntityPlayer) player;
            ByteArrayDataInput input = ByteStreams.newDataInput(packet.data);
            int packetId = input.readUnsignedByte();

            BasePacket basePacket = BasePacket.constructPacket(packetId);
            basePacket.read(input);
            basePacket.execute(entityPlayer, entityPlayer.worldObj.isRemote ? Side.CLIENT : Side.SERVER);
        } catch (BasePacket.ProtocolException ex) {
            if (player instanceof EntityPlayerMP) {
                ((EntityPlayerMP) player).playerNetServerHandler.kickPlayerFromServer("Protocol Exception!");
            }
        } catch (Exception ex) {
            throw new RuntimeException("Unexpected Reflection exception during Packet construction!", ex);
        }
    }
}