This commit is contained in:
nossr50
2019-06-21 10:46:27 -07:00
parent 099dfcb0e5
commit 0050a73be8
17 changed files with 62 additions and 56 deletions

View File

@@ -0,0 +1,50 @@
package com.gmail.nossr50.util.nbt;
import com.gmail.nossr50.mcMMO;
import net.minecraft.server.v1_13_R2.NBTBase;
import net.minecraft.server.v1_13_R2.NBTTagCompound;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_13_R2.util.CraftNBTTagConfigSerializer;
import org.bukkit.inventory.ItemStack;
public class NBTManager {
private static final String CRAFT_META_ITEM_CLASS_PATH = "org.bukkit.craftbukkit.inventory.CraftMetaItem";
private Class<?> craftMetaItemClass;
public NBTManager() {
init(); //Setup method references etc
}
private void init() {
try {
Class<?> craftMetaItemClass = Class.forName(CRAFT_META_ITEM_CLASS_PATH); //for type comparisons
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public RawNBT<?> constructNBT(String nbtString) {
try {
return new RawNBT<NBTBase>(nbtString, CraftNBTTagConfigSerializer.deserialize(nbtString));
} catch (Exception e) {
e.printStackTrace();
mcMMO.p.getLogger().severe("mcMMO was unable parse the NBT string from your config! Double check that it is proper NBT!");
return null;
}
}
public void printNBT(ItemStack itemStack) {
Bukkit.broadcastMessage("Checking NBT for "+itemStack.toString());
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(itemStack);
NBTTagCompound rootTag = nmsItemStack.getTag();
for(String key : rootTag.getKeys()) {
Bukkit.broadcastMessage("NBT Key found: "+key);
}
}
}

View File

@@ -1,26 +0,0 @@
package com.gmail.nossr50.util.nbt;
import com.gmail.nossr50.mcMMO;
import net.minecraft.server.v1_13_R2.NBTBase;
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftItem;
import org.bukkit.craftbukkit.v1_13_R2.util.CraftNBTTagConfigSerializer;
import org.bukkit.inventory.ItemStack;
public class NBTUtils {
public RawNBT<?> constructNBT(String nbtString) {
try {
return new RawNBT<NBTBase>(nbtString, CraftNBTTagConfigSerializer.deserialize(nbtString));
} catch (Exception e) {
e.printStackTrace();
mcMMO.p.getLogger().severe("mcMMO was unable parse the NBT string from your config! Double check that it is proper NBT!");
return null;
}
}
public boolean hasNBT(ItemStack itemStack) {
if(CraftItem)
}
}

View File

@@ -16,7 +16,7 @@ public class RawNBT<T> {
public RawNBT(String nbtContents, T nbtTree) {
this.nbtContents = nbtContents;
NBTUtils
NBTManager
}
public String getNbtContents() {