From 433f6d085d6549ac1763d897ee72f2468d399e90 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 30 Sep 2019 17:53:57 -0700 Subject: [PATCH] Time for a break --- .../gmail/nossr50/util/nbt/NBTManager.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/mcmmo-core/src/main/java/com/gmail/nossr50/util/nbt/NBTManager.java b/mcmmo-core/src/main/java/com/gmail/nossr50/util/nbt/NBTManager.java index ab0385e2d..aa3da4416 100644 --- a/mcmmo-core/src/main/java/com/gmail/nossr50/util/nbt/NBTManager.java +++ b/mcmmo-core/src/main/java/com/gmail/nossr50/util/nbt/NBTManager.java @@ -1,9 +1,11 @@ package com.gmail.nossr50.util.nbt; +import net.minecraft.server.v1_14_R1.Item; import net.minecraft.server.v1_14_R1.NBTBase; import net.minecraft.server.v1_14_R1.NBTList; import net.minecraft.server.v1_14_R1.NBTTagCompound; +import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; import org.bukkit.craftbukkit.v1_14_R1.util.CraftNBTTagConfigSerializer; import org.bukkit.entity.Player; @@ -41,6 +43,29 @@ public class NBTManager { player.sendMessage("Total NBT Entries: "+nbtTagCompound.getKeys().size()); printNBT(nbtTagCompound, player); player.sendMessage("-- END OF NBT REPORT --"); + + player.sendMessage("Attempting to add NBT key named - Herp"); + addFloatNBT(nbtTagCompound, "herp", 13.37F); + + player.sendMessage("(After HERP) Total NBT Entries: "+nbtTagCompound.getKeys().size()); + printNBT(nbtTagCompound, player); + player.sendMessage("-- END OF NBT REPORT --"); + + player.sendMessage("Attempting to save NBT data..."); + player.getInventory().setItemInMainHand(saveNBT(itemStack, nbtTagCompound)); + player.updateInventory(); + } + + public static ItemStack saveNBT(ItemStack itemStack, NBTTagCompound nbtTagCompound) { + net.minecraft.server.v1_14_R1.ItemStack nmsItemStack = getNMSItemStack(itemStack); + nmsItemStack.save(nbtTagCompound); + CraftItemStack craftItemStack = CraftItemStack.asCraftMirror(nmsItemStack); + itemStack.setItemMeta(craftItemStack.getItemMeta()); + return itemStack; + } + + public static net.minecraft.server.v1_14_R1.ItemStack getNMSItemStack(ItemStack itemStack) { + return CraftItemStack.asNMSCopy(itemStack); } @Nullable @@ -49,6 +74,10 @@ public class NBTManager { return nmsItemStack.getTag(); } + public static void addFloatNBT(NBTTagCompound nbtTagCompound, String key, float value) { + nbtTagCompound.setFloat(key, value); + } + public static NBTBase constructNBT(String nbtString) { try { return CraftNBTTagConfigSerializer.deserialize(nbtString);