package ttftcuts.physis.common.network.packet; import java.util.ArrayList; import java.util.List; import ttftcuts.physis.Physis; import ttftcuts.physis.client.gui.journal.JournalArticle; import ttftcuts.physis.client.gui.journal.PageDefs; import ttftcuts.physis.client.gui.journal.PageDefs.Category; import ttftcuts.physis.common.file.PhysisWorldSavedData; import ttftcuts.physis.common.network.PacketHandler; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.internal.FMLProxyPacket; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; public class PacketWorldData extends PacketHandler { @Override public void handle(ByteBuf data, EntityPlayer player) { if (player.worldObj.isRemote) { NBTTagCompound tag = ByteBufUtils.readTag(data); NBTTagCompound playerdata = tag.getCompoundTag("p"); NBTTagCompound worlddata = tag.getCompoundTag("w"); List<JournalArticle> locked = new ArrayList<JournalArticle>(); for(Category cat : PageDefs.articleMap.keySet()) { for(JournalArticle article : PageDefs.articleMap.get(cat)) { if (!article.canView()) { locked.add(article); } } } PhysisWorldSavedData.clientPlayerData = playerdata; PhysisWorldSavedData.clientWorldData = worlddata; PhysisWorldSavedData.doCallbacksPost(); for (JournalArticle article : locked) { if (article.canView()) { Physis.proxy.doArticlePopup(article); //Physis.logger.info("Unlocked article: "+article.getTranslatedName()); } } } } public static FMLProxyPacket createPacket(NBTTagCompound playerdata, NBTTagCompound worlddata) { ByteBuf data = PacketHandler.createDataBuffer(PacketWorldData.class); PhysisWorldSavedData.doCallbacksPre(); //Physis.logger.info(worlddata); NBTTagCompound tag = new NBTTagCompound(); tag.setTag("p", playerdata); tag.setTag("w", worlddata); ByteBufUtils.writeTag(data, tag); return buildPacket(data); } }