|  | @@ -30,6 +30,23 @@ public class NBTManager {
 | 
	
		
			
				|  |  |  //        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * Used for testing NBT stuff, will be deleted later
 | 
	
		
			
				|  |  | +     * @param player target player
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  | +    //TODO: DELETE
 | 
	
		
			
				|  |  |      public void debugNBTInMainHandItem(Player player) {
 | 
	
		
			
				|  |  |          player.sendMessage("Starting NBT Debug Dump...");
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -52,10 +69,20 @@ public class NBTManager {
 | 
	
		
			
				|  |  |          player.updateInventory();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * Gets the NMS.ItemStack Copy of a Bukkit.ItemStack
 | 
	
		
			
				|  |  | +     * @param itemStack target bukkit ItemStack
 | 
	
		
			
				|  |  | +     * @return the NMS.ItemStack "copy" of the Bukkit ItemStack
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  |      public net.minecraft.server.v1_14_R1.ItemStack getNMSItemStack(ItemStack itemStack) {
 | 
	
		
			
				|  |  |          return CraftItemStack.asNMSCopy(itemStack);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * Copies the NBT off an ItemStack and adds a tag compound if it doesn't exist
 | 
	
		
			
				|  |  | +     * @param itemStack target ItemStack
 | 
	
		
			
				|  |  | +     * @return the NBT copy of an ItemStack
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  |      @NonNull
 | 
	
		
			
				|  |  |      public NBTTagCompound getNBTCopy(ItemStack itemStack) {
 | 
	
		
			
				|  |  |          net.minecraft.server.v1_14_R1.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(itemStack);
 | 
	
	
		
			
				|  | @@ -68,6 +95,12 @@ public class NBTManager {
 | 
	
		
			
				|  |  |          return freshNBTCopy;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * Adds a Float Value to an ItemStack's NBT
 | 
	
		
			
				|  |  | +     * @param itemStack target ItemStack
 | 
	
		
			
				|  |  | +     * @param key the key for the new NBT float kv pair
 | 
	
		
			
				|  |  | +     * @param value the value of the new NBT float kv pair
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  |      public void addFloatNBT(ItemStack itemStack, String key, float value) {
 | 
	
		
			
				|  |  |          //NBT Copied off Item
 | 
	
		
			
				|  |  |          net.minecraft.server.v1_14_R1.ItemStack nmsIS = getNMSItemStack(itemStack);
 | 
	
	
		
			
				|  | @@ -88,13 +121,21 @@ public class NBTManager {
 | 
	
		
			
				|  |  |          itemStack.setItemMeta(craftItemStack.getItemMeta());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * Merges the modification compound into the target compound's tag NBT node
 | 
	
		
			
				|  |  | +     * @param targetCompound target NBT to merge into
 | 
	
		
			
				|  |  | +     * @param modificationCompound data to merge
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  |      public void mergeToTagCompound(NBTTagCompound targetCompound, NBTTagCompound modificationCompound) {
 | 
	
		
			
				|  |  |          NBTTagCompound tagCompound = (NBTTagCompound) targetCompound.get("tag");
 | 
	
		
			
				|  |  |          tagCompound.a(modificationCompound);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * Applies NBT to an NMS.ItemStack
 | 
	
		
			
				|  |  | +     * @param nmsItemStack target NMS.ItemStack
 | 
	
		
			
				|  |  | +     * @param nbtTagCompound the new NBT data for the NMS.ItemStack
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  |      public void applyNBT(net.minecraft.server.v1_14_R1.ItemStack nmsItemStack, NBTTagCompound nbtTagCompound) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          try {
 | 
	
	
		
			
				|  | @@ -118,6 +159,11 @@ public class NBTManager {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * Prints all the NBT KV pairs on an ItemStack
 | 
	
		
			
				|  |  | +     * @param itemStack target ItemStack
 | 
	
		
			
				|  |  | +     * @param player target player to send the message to
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  |      public void printNBT(ItemStack itemStack, Player player) {
 | 
	
		
			
				|  |  |          NBTTagCompound tagCompoundCopy = getNBTCopy(itemStack);
 | 
	
		
			
				|  |  |          for(String key : tagCompoundCopy.getKeys()) {
 |