Fixed NPE in ItemUtils#serializeItemStack

This commit is contained in:
NichtStudioCode 2022-01-07 10:52:59 +01:00
parent c5d7861ac1
commit 873fae0d7b
8 changed files with 16 additions and 80 deletions

@ -12,14 +12,11 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
public class ItemUtilsImpl implements ItemUtils {
private static final Field CRAFT_ITEM_STACK_HANDLE_FIELD = ReflectionUtils.getField(CraftItemStack.class, true, "handle");
@Override
public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
@ -30,12 +27,7 @@ public class ItemUtilsImpl implements ItemUtils {
@Override
public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, @NotNull OutputStream out, boolean compressed) {
try {
ItemStack nmsStack;
if (itemStack instanceof CraftItemStack)
nmsStack = (ItemStack) CRAFT_ITEM_STACK_HANDLE_FIELD.get(itemStack);
else nmsStack = CraftItemStack.asNMSCopy(itemStack);
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
NBTTagCompound nbt = nmsStack.save(new NBTTagCompound());
if (compressed) {
@ -46,7 +38,7 @@ public class ItemUtilsImpl implements ItemUtils {
}
out.flush();
} catch (IllegalAccessException | IOException e) {
} catch (IOException e) {
e.printStackTrace();
}
}

@ -12,14 +12,11 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
public class ItemUtilsImpl implements ItemUtils {
private static final Field CRAFT_ITEM_STACK_HANDLE_FIELD = ReflectionUtils.getField(CraftItemStack.class, true, "handle");
@Override
public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
@ -30,12 +27,7 @@ public class ItemUtilsImpl implements ItemUtils {
@Override
public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, @NotNull OutputStream out, boolean compressed) {
try {
ItemStack nmsStack;
if (itemStack instanceof CraftItemStack)
nmsStack = (ItemStack) CRAFT_ITEM_STACK_HANDLE_FIELD.get(itemStack);
else nmsStack = CraftItemStack.asNMSCopy(itemStack);
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
NBTTagCompound nbt = nmsStack.save(new NBTTagCompound());
if (compressed) {
@ -46,7 +38,7 @@ public class ItemUtilsImpl implements ItemUtils {
}
out.flush();
} catch (IllegalAccessException | IOException e) {
} catch (IOException e) {
e.printStackTrace();
}
}

@ -12,14 +12,11 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
public class ItemUtilsImpl implements ItemUtils {
private static final Field CRAFT_ITEM_STACK_HANDLE_FIELD = ReflectionUtils.getField(CraftItemStack.class, true, "handle");
@Override
public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
@ -30,12 +27,7 @@ public class ItemUtilsImpl implements ItemUtils {
@Override
public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, @NotNull OutputStream out, boolean compressed) {
try {
ItemStack nmsStack;
if (itemStack instanceof CraftItemStack)
nmsStack = (ItemStack) CRAFT_ITEM_STACK_HANDLE_FIELD.get(itemStack);
else nmsStack = CraftItemStack.asNMSCopy(itemStack);
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
NBTTagCompound nbt = nmsStack.save(new NBTTagCompound());
if (compressed) {
@ -46,7 +38,7 @@ public class ItemUtilsImpl implements ItemUtils {
}
out.flush();
} catch (IllegalAccessException | IOException e) {
} catch (IOException e) {
e.printStackTrace();
}
}

@ -12,14 +12,11 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
public class ItemUtilsImpl implements ItemUtils {
private static final Field CRAFT_ITEM_STACK_HANDLE_FIELD = ReflectionUtils.getField(CraftItemStack.class, true, "handle");
@Override
public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
@ -30,12 +27,7 @@ public class ItemUtilsImpl implements ItemUtils {
@Override
public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, @NotNull OutputStream out, boolean compressed) {
try {
ItemStack nmsStack;
if (itemStack instanceof CraftItemStack)
nmsStack = (ItemStack) CRAFT_ITEM_STACK_HANDLE_FIELD.get(itemStack);
else nmsStack = CraftItemStack.asNMSCopy(itemStack);
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
NBTTagCompound nbt = nmsStack.save(new NBTTagCompound());
if (compressed) {
@ -46,7 +38,7 @@ public class ItemUtilsImpl implements ItemUtils {
}
out.flush();
} catch (IllegalAccessException | IOException e) {
} catch (IOException e) {
e.printStackTrace();
}
}

@ -13,14 +13,11 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
public class ItemUtilsImpl implements ItemUtils {
private static final Field CRAFT_ITEM_STACK_HANDLE_FIELD = ReflectionUtils.getField(CraftItemStack.class, true, "handle");
@Override
public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
@ -31,12 +28,7 @@ public class ItemUtilsImpl implements ItemUtils {
@Override
public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, @NotNull OutputStream out, boolean compressed) {
try {
ItemStack nmsStack;
if (itemStack instanceof CraftItemStack)
nmsStack = (ItemStack) CRAFT_ITEM_STACK_HANDLE_FIELD.get(itemStack);
else nmsStack = CraftItemStack.asNMSCopy(itemStack);
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
NBTTagCompound nbt = nmsStack.save(new NBTTagCompound());
if (compressed) {
@ -47,7 +39,7 @@ public class ItemUtilsImpl implements ItemUtils {
}
out.flush();
} catch (IllegalAccessException | IOException e) {
} catch (IOException e) {
e.printStackTrace();
}
}

@ -13,14 +13,11 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
public class ItemUtilsImpl implements ItemUtils {
private static final Field CRAFT_ITEM_STACK_HANDLE_FIELD = ReflectionUtils.getField(CraftItemStack.class, true, "handle");
@Override
public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
@ -31,12 +28,7 @@ public class ItemUtilsImpl implements ItemUtils {
@Override
public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, @NotNull OutputStream outputStream, boolean compressed) {
try {
ItemStack nmsStack;
if (itemStack instanceof CraftItemStack)
nmsStack = (ItemStack) CRAFT_ITEM_STACK_HANDLE_FIELD.get(itemStack);
else nmsStack = CraftItemStack.asNMSCopy(itemStack);
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
CompoundTag nbt = nmsStack.save(new CompoundTag());
if (compressed) {
@ -47,7 +39,7 @@ public class ItemUtilsImpl implements ItemUtils {
}
outputStream.flush();
} catch (IllegalAccessException | IOException e) {
} catch (IOException e) {
e.printStackTrace();
}
}

@ -13,14 +13,11 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
public class ItemUtilsImpl implements ItemUtils {
private static final Field CRAFT_ITEM_STACK_HANDLE_FIELD = ReflectionUtils.getField(CraftItemStack.class, true, "handle");
@Override
public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
@ -31,12 +28,7 @@ public class ItemUtilsImpl implements ItemUtils {
@Override
public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, @NotNull OutputStream outputStream, boolean compressed) {
try {
ItemStack nmsStack;
if (itemStack instanceof CraftItemStack)
nmsStack = (ItemStack) CRAFT_ITEM_STACK_HANDLE_FIELD.get(itemStack);
else nmsStack = CraftItemStack.asNMSCopy(itemStack);
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
CompoundTag nbt = nmsStack.save(new CompoundTag());
if (compressed) {
@ -47,7 +39,7 @@ public class ItemUtilsImpl implements ItemUtils {
}
outputStream.flush();
} catch (IllegalAccessException | IOException e) {
} catch (IOException e) {
e.printStackTrace();
}
}

@ -13,14 +13,11 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
public class ItemUtilsImpl implements ItemUtils {
private static final Field CRAFT_ITEM_STACK_HANDLE_FIELD = ReflectionUtils.getField(CraftItemStack.class, true, "handle");
@Override
public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
@ -31,12 +28,7 @@ public class ItemUtilsImpl implements ItemUtils {
@Override
public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, @NotNull OutputStream outputStream, boolean compressed) {
try {
ItemStack nmsStack;
if (itemStack instanceof CraftItemStack)
nmsStack = (ItemStack) CRAFT_ITEM_STACK_HANDLE_FIELD.get(itemStack);
else nmsStack = CraftItemStack.asNMSCopy(itemStack);
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
CompoundTag nbt = nmsStack.save(new CompoundTag());
if (compressed) {
@ -47,7 +39,7 @@ public class ItemUtilsImpl implements ItemUtils {
}
outputStream.flush();
} catch (IllegalAccessException | IOException e) {
} catch (IOException e) {
e.printStackTrace();
}
}