package joshie.harvest.quests.packet;
import io.netty.buffer.ByteBuf;
import joshie.harvest.core.network.Packet;
import joshie.harvest.core.network.Packet.Side;
import joshie.harvest.core.network.PenguinPacket;
import joshie.harvest.quests.town.festivals.contest.QuestContest;
import joshie.harvest.town.TownHelper;
import joshie.harvest.town.data.TownDataClient;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import org.apache.commons.lang3.tuple.Pair;
import java.util.ArrayList;
import java.util.List;
@Packet(Side.CLIENT)
public class PacketQuestUpdateNames extends PenguinPacket {
private List<Pair<String, Integer>> list;
@SuppressWarnings("unused")
public PacketQuestUpdateNames() {}
public PacketQuestUpdateNames(List<Pair<String, Integer>> list) {
this.list = list;
}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(list.size());
for (Pair<String, Integer> pair : list) {
ByteBufUtils.writeUTF8String(buf, pair.getKey());
buf.writeInt(pair.getValue());
}
}
@Override
public void fromBytes(ByteBuf buf) {
int amount = buf.readInt();
list = new ArrayList<>();
for (int i = 0; i < amount; i++) {
String name = ByteBufUtils.readUTF8String(buf);
int stall = buf.readInt();
list.add(Pair.of(name, stall));
}
}
@Override
public void handlePacket(EntityPlayer player) {
TownDataClient town = TownHelper.getClosestTownToEntity(player, false);
QuestContest quest = town.getQuests().getAQuest(town.getFestival().getQuest());
if (quest != null) {
quest.getEntries().setEntryNames(list);
}
}
}