package matteroverdrive.data.quest.rewards; import matteroverdrive.api.quest.IQuestReward; import matteroverdrive.api.quest.QuestStack; import matteroverdrive.entity.player.MOExtendedProperties; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; /** * Created by Simeon on 1/3/2016. */ public class QuestStackReward implements IQuestReward { QuestStack questStack; String[] copyNBT; public QuestStackReward(QuestStack questStack) { this.questStack = questStack; } public QuestStackReward setCopyNBT(String... copyNBT) { this.copyNBT = copyNBT; return this; } @Override public void giveReward(QuestStack completedQuest,EntityPlayer entityPlayer) { if (this.questStack != null && this.questStack.canAccept(entityPlayer,this.questStack)) { MOExtendedProperties extendedProperties = MOExtendedProperties.get(entityPlayer); if (extendedProperties != null) { QuestStack questStack = this.questStack.copy(); questStack.getQuest().initQuestStack(entityPlayer.getRNG(),questStack); if (copyNBT != null && copyNBT.length > 0 && completedQuest.getTagCompound() != null) { if (questStack.getTagCompound() == null) questStack.setTagCompound(new NBTTagCompound()); for (int i = 0;i < copyNBT.length;i++) { NBTBase nbtBase = completedQuest.getTagCompound().getTag(copyNBT[i]); if (nbtBase != null) { questStack.getTagCompound().setTag(copyNBT[i],nbtBase.copy()); } } } extendedProperties.addQuest(questStack); } } } }