Fix ItemStack serializer being unable to serialize some items

Fix PlayerDisguise using code I forgot to use, instead of real code
This commit is contained in:
libraryaddict
2020-03-24 11:54:26 +13:00
parent 761c4b77cd
commit 7a0f107687
4 changed files with 18 additions and 17 deletions

View File

@@ -64,6 +64,11 @@ public class ParamInfoItemStack extends ParamInfoEnum {
return name;
}
// If its not a CraftItemStack
if (item.getClass().getSimpleName().equals("ItemStack") && item.hasItemMeta()) {
item = ReflectionManager.getCraftItem(item);
}
String itemName = ReflectionManager.getItemName(item.getType());
ArrayList<String> mcArray = new ArrayList<>();

View File

@@ -18,6 +18,7 @@ import org.apache.commons.lang.StringUtils;
import org.bukkit.*;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack;
import org.bukkit.entity.*;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
@@ -361,6 +362,17 @@ public class ReflectionManager {
return null;
}
public static ItemStack getCraftItem(ItemStack bukkitItem) {
try {
return (ItemStack) craftItemClass.getMethod("asCraftMirror", ItemStack.class).invoke(null, bukkitItem);
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static NmsVersion getVersion() {
if (version == null) {
getBukkitVersion();