package pixlepix.auracascade.network; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; import pixlepix.auracascade.data.Quest; import java.util.ArrayList; /** * Created by localmacaccount on 5/31/15. */ public class PacketSyncQuestData implements IMessage { public ArrayList<Quest> completed; public EntityPlayer entityPlayer; public PacketSyncQuestData(EntityPlayer entityPlayer) { this.entityPlayer = entityPlayer; // this.completed = ((QuestData) entityPlayer.getExtendedProperties(QuestData.EXT_PROP_NAME)).completedQuests; } public PacketSyncQuestData() { } /** * Convert from the supplied buffer into your specific message type * * @param data */ @Override public void fromBytes(ByteBuf data) { /* World world = DimensionManager.getWorld(data.readInt()); if (world != null) { entityPlayer = (EntityPlayer) world.getEntityByID(data.readInt()); int desiredSize = data.readByte(); completed = new ArrayList<Quest>(); for (int i = 0; i < desiredSize; i++) { completed.add(QuestManager.quests.get(data.readByte())); } } */ } /** * Deconstruct your message into the supplied byte buffer * * @param data */ @Override public void toBytes(ByteBuf data) { // data.writeInt(entityPlayer.worldObj.provider.getDimension()); // data.writeInt(entityPlayer.getEntityId()); // data.writeByte(completed.size()); // for (Quest Quest : completed) { // data.writeByte(Quest.id); // } } public static class PacketSyncQuestDataHandler implements IMessageHandler<PacketSyncQuestData, IMessage> { public PacketSyncQuestDataHandler() { } /** * Called when a message is received of the appropriate type. You can optionally return a reply message, or null if no reply * is needed. * * @param message The message * @param ctx * @return an optional return message */ @Override public IMessage onMessage(final PacketSyncQuestData message, MessageContext ctx) { Minecraft.getMinecraft().addScheduledTask(new Runnable() { @Override public void run() { if (message.entityPlayer != null) { // QuestData data = (QuestData) message.entityPlayer.getExtendedProperties(QuestData.EXT_PROP_NAME); // data.completedQuests = message.completed; } } }); return null; } } }