package buildcraft.core.network;
import io.netty.channel.ChannelHandlerContext;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetHandler;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side;
import buildcraft.core.lib.network.Packet;
import buildcraft.core.lib.network.PacketHandler;
import buildcraft.core.proxy.CoreProxy;
import buildcraft.core.tablet.PacketTabletMessage;
import buildcraft.core.tablet.TabletBase;
import buildcraft.core.tablet.manager.TabletManagerClient;
import buildcraft.core.tablet.manager.TabletManagerServer;
public class PacketHandlerCore extends PacketHandler {
@Override
protected void channelRead0(ChannelHandlerContext ctx, Packet packet) {
super.channelRead0(ctx, packet);
INetHandler netHandler = ctx.channel().attr(NetworkRegistry.NET_HANDLER).get();
EntityPlayer player = CoreProxy.proxy.getPlayerFromNetHandler(netHandler);
switch (packet.getID()) {
case PacketIds.TABLET_MESSAGE: {
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
handleTabletClient((PacketTabletMessage) packet);
} else {
handleTabletServer(player, (PacketTabletMessage) packet);
}
}
break;
}
}
private void handleTabletClient(PacketTabletMessage packet) {
TabletBase tablet = TabletManagerClient.INSTANCE.get().getTablet();
tablet.receiveMessage(packet.getTag());
}
private void handleTabletServer(EntityPlayer player, PacketTabletMessage packet) {
TabletBase tablet = TabletManagerServer.INSTANCE.get(player);
tablet.receiveMessage(packet.getTag());
}
}