Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. package com.teamwizardry.wizardry.common.network;
  2.  
  3. import com.teamwizardry.librarianlib.features.helpers.ItemNBTHelper;
  4. import com.teamwizardry.librarianlib.features.network.PacketBase;
  5. import com.teamwizardry.librarianlib.features.saving.Save;
  6. import com.teamwizardry.librarianlib.features.saving.SaveMethodGetter;
  7. import com.teamwizardry.librarianlib.features.saving.SaveMethodSetter;
  8. import com.teamwizardry.wizardry.api.spell.SpellBuilder;
  9. import com.teamwizardry.wizardry.init.ModItems;
  10. import net.minecraft.entity.player.EntityPlayer;
  11. import net.minecraft.item.ItemStack;
  12. import net.minecraft.nbt.NBTTagCompound;
  13. import net.minecraft.nbt.NBTTagList;
  14. import net.minecraftforge.common.util.Constants;
  15. import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
  16. import org.jetbrains.annotations.NotNull;
  17.  
  18. import java.util.ArrayList;
  19.  
  20. /**
  21. * Created by LordSaad.
  22. */
  23. public class PacketSendSpellToBook extends PacketBase {
  24.  
  25. @Save
  26. private int slot;
  27. private ArrayList<ItemStack> inventory;
  28.  
  29. public PacketSendSpellToBook() {
  30. }
  31.  
  32. public PacketSendSpellToBook(int slot, ArrayList<ItemStack> inventory) {
  33. this.slot = slot;
  34. this.inventory = inventory;
  35. }
  36.  
  37. @SaveMethodSetter(saveName = "manual_saver")
  38. private void manualSaveSetter(NBTTagCompound compound) {
  39. if (compound == null) return;
  40. NBTTagList list = compound.getTagList("list", Constants.NBT.TAG_COMPOUND);
  41. for (int i = 0; i < list.tagCount(); i++) {
  42. NBTTagCompound compound1 = list.getCompoundTagAt(i);
  43. ItemStack stack = new ItemStack(compound1);
  44. inventory.add(stack);
  45. }
  46. }
  47.  
  48. @SaveMethodGetter(saveName = "manual_saver")
  49. private NBTTagCompound manualSaveGetter() {
  50. NBTTagCompound nbt = new NBTTagCompound();
  51. NBTTagList list = new NBTTagList();
  52. for (ItemStack stack : inventory) {
  53. list.appendTag(stack.serializeNBT());
  54. }
  55. nbt.setTag("list", list);
  56. return nbt;
  57. }
  58.  
  59. @Override
  60. public void handle(@NotNull MessageContext messageContext) {
  61. EntityPlayer player = messageContext.getServerHandler().player;
  62.  
  63. ItemStack book = player.inventory.getStackInSlot(slot);
  64. if (book.getItem() != ModItems.BOOK) return;
  65.  
  66. SpellBuilder builder = new SpellBuilder(inventory);
  67. ItemNBTHelper.setString(book, "spell_recipe", builder.toJson().toString());
  68. ItemNBTHelper.setBoolean(book, "has_recipe", true);
  69. }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement