Package net.mcft.copy.betterstorage.network

Source Code of net.mcft.copy.betterstorage.network.AbstractPacket

package net.mcft.copy.betterstorage.network;

import io.netty.buffer.ByteBuf;

import java.io.IOException;

import net.mcft.copy.betterstorage.utils.PlayerUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.PacketBuffer;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;

public abstract class AbstractPacket<T extends AbstractPacket<T>> implements IMessage, IMessageHandler<T, IMessage> {
 
  public abstract void encode(PacketBuffer buffer) throws IOException;
 
  public abstract void decode(PacketBuffer buffer) throws IOException;
 
  public abstract void handle(EntityPlayer player);
 
  // IMessage implementation
 
  @Override
  public final void fromBytes(ByteBuf buffer) {
    try { decode(new PacketBuffer(buffer)); }
    catch (IOException ex) { throw new RuntimeException(ex); }
  }
 
  @Override
  public final void toBytes(ByteBuf buffer) {
    try { encode(new PacketBuffer(buffer)); }
    catch (IOException ex) { throw new RuntimeException(ex); }
  }
 
  // IMessageHandler implementation
 
  @Override
  public final IMessage onMessage(T message, MessageContext context) {
    message.handle(context.side.isServer() ? context.getServerHandler().playerEntity
                                           : PlayerUtils.getLocalPlayer());
    return null;
  }
 
}
TOP

Related Classes of net.mcft.copy.betterstorage.network.AbstractPacket

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.