package joshie.harvest.player.packet;
import io.netty.buffer.ByteBuf;
import joshie.harvest.HarvestFestival;
import joshie.harvest.api.npc.NPC;
import joshie.harvest.core.network.PenguinPacket;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import org.apache.logging.log4j.Level;
public abstract class PacketRelationship extends PenguinPacket {
private NPC npc;
public PacketRelationship() {}
public PacketRelationship(NPC npc) {
this.npc = npc;
}
@Override
public void toBytes(ByteBuf buf) {
ByteBufUtils.writeUTF8String(buf, npc.getResource().toString());
}
@Override
public void fromBytes(ByteBuf buf) {
try {
npc = NPC.REGISTRY.get(new ResourceLocation(ByteBufUtils.readUTF8String(buf)));
} catch (Exception e) { HarvestFestival.LOGGER.log(Level.ERROR, "Failed to read a sync gift packet correctly"); }
}
@Override
public void handlePacket(EntityPlayer player) {
handleRelationship(player, npc);
}
protected abstract void handleRelationship(EntityPlayer player, NPC npc);
}