From 785854f4a8bf4f6db2e67269659f551678a803e9 Mon Sep 17 00:00:00 2001 From: NichtStudioCode <51272202+NichtStudioCode@users.noreply.github.com> Date: Thu, 12 Oct 2023 16:02:35 +0200 Subject: [PATCH] Remove ItemUtils#setSkullGameProfile Because both Paper 1.14.4 and 1.15.0 are not up-to-date with the changes of Spigot 1.14.4 (CraftMetaSkull#setProfile exists on Spigot 1.14.4, but not Paper 1.14.4 and 1.15.0), it does not make sense to put this behind inventory-access revisions. Instead, the SkullBuilder will now just check every time whether CraftMetaSkull#setProfile exists. --- .../xenondevs/inventoryaccess/r1/ItemUtilsImpl.java | 11 ----------- .../inventoryaccess/r10/ItemUtilsImpl.java | 11 +---------- .../inventoryaccess/r11/ItemUtilsImpl.java | 11 +---------- .../inventoryaccess/r12/ItemUtilsImpl.java | 13 +------------ .../inventoryaccess/r13/ItemUtilsImpl.java | 13 +------------ .../inventoryaccess/r14/ItemUtilsImpl.java | 5 ----- .../inventoryaccess/r15/ItemUtilsImpl.java | 13 +------------ .../inventoryaccess/r16/ItemUtilsImpl.java | 13 +------------ .../inventoryaccess/r17/ItemUtilsImpl.java | 5 ----- .../xenondevs/inventoryaccess/r2/ItemUtilsImpl.java | 11 ----------- .../xenondevs/inventoryaccess/r3/ItemUtilsImpl.java | 11 ----------- .../xenondevs/inventoryaccess/r4/ItemUtilsImpl.java | 11 +---------- .../xenondevs/inventoryaccess/r5/ItemUtilsImpl.java | 12 +----------- .../xenondevs/inventoryaccess/r6/ItemUtilsImpl.java | 11 +---------- .../xenondevs/inventoryaccess/r7/ItemUtilsImpl.java | 11 +---------- .../xenondevs/inventoryaccess/r8/ItemUtilsImpl.java | 5 ----- .../xenondevs/inventoryaccess/r9/ItemUtilsImpl.java | 11 +---------- .../inventoryaccess/abstraction/util/ItemUtils.java | 9 --------- .../inventoryaccess/util/ReflectionRegistry.java | 3 +++ .../xenondevs/invui/item/builder/SkullBuilder.java | 12 +++++++++--- 20 files changed, 23 insertions(+), 179 deletions(-) diff --git a/inventoryaccess/inventory-access-r1/src/main/java/xyz/xenondevs/inventoryaccess/r1/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r1/src/main/java/xyz/xenondevs/inventoryaccess/r1/ItemUtilsImpl.java index 7622912..f46418c 100644 --- a/inventoryaccess/inventory-access-r1/src/main/java/xyz/xenondevs/inventoryaccess/r1/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r1/src/main/java/xyz/xenondevs/inventoryaccess/r1/ItemUtilsImpl.java @@ -1,6 +1,5 @@ package xyz.xenondevs.inventoryaccess.r1; -import com.mojang.authlib.GameProfile; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.NBTCompressedStreamTools; import net.minecraft.server.v1_14_R1.NBTTagCompound; @@ -13,16 +12,11 @@ import xyz.xenondevs.inventoryaccess.util.ReflectionRegistry; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import java.io.*; -import java.lang.reflect.Field; import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - private static final Field CRAFT_META_SKULL_GAME_PROFILE_FIELD = ReflectionUtils.getField( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "profile" - ); - @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +88,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.setFieldValue(CRAFT_META_SKULL_GAME_PROFILE_FIELD, itemMeta, gameProfile); - } - } diff --git a/inventoryaccess/inventory-access-r10/src/main/java/xyz/xenondevs/inventoryaccess/r10/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r10/src/main/java/xyz/xenondevs/inventoryaccess/r10/ItemUtilsImpl.java index 2c7c998..00ff976 100644 --- a/inventoryaccess/inventory-access-r10/src/main/java/xyz/xenondevs/inventoryaccess/r10/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r10/src/main/java/xyz/xenondevs/inventoryaccess/r10/ItemUtilsImpl.java @@ -18,11 +18,7 @@ import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +90,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r11/src/main/java/xyz/xenondevs/inventoryaccess/r11/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r11/src/main/java/xyz/xenondevs/inventoryaccess/r11/ItemUtilsImpl.java index 6090c91..9edaf45 100644 --- a/inventoryaccess/inventory-access-r11/src/main/java/xyz/xenondevs/inventoryaccess/r11/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r11/src/main/java/xyz/xenondevs/inventoryaccess/r11/ItemUtilsImpl.java @@ -18,11 +18,7 @@ import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +90,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r12/src/main/java/xyz/xenondevs/inventoryaccess/r12/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r12/src/main/java/xyz/xenondevs/inventoryaccess/r12/ItemUtilsImpl.java index 2cc2342..fb382a4 100644 --- a/inventoryaccess/inventory-access-r12/src/main/java/xyz/xenondevs/inventoryaccess/r12/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r12/src/main/java/xyz/xenondevs/inventoryaccess/r12/ItemUtilsImpl.java @@ -1,6 +1,5 @@ package xyz.xenondevs.inventoryaccess.r12; -import com.mojang.authlib.GameProfile; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; import net.minecraft.world.item.ItemStack; @@ -13,16 +12,11 @@ import xyz.xenondevs.inventoryaccess.util.ReflectionRegistry; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import java.io.*; -import java.lang.reflect.Method; import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +88,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r13/src/main/java/xyz/xenondevs/inventoryaccess/r13/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r13/src/main/java/xyz/xenondevs/inventoryaccess/r13/ItemUtilsImpl.java index 50214eb..1bb94d5 100644 --- a/inventoryaccess/inventory-access-r13/src/main/java/xyz/xenondevs/inventoryaccess/r13/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r13/src/main/java/xyz/xenondevs/inventoryaccess/r13/ItemUtilsImpl.java @@ -1,6 +1,5 @@ package xyz.xenondevs.inventoryaccess.r13; -import com.mojang.authlib.GameProfile; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; import net.minecraft.world.item.ItemStack; @@ -13,16 +12,11 @@ import xyz.xenondevs.inventoryaccess.util.ReflectionRegistry; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import java.io.*; -import java.lang.reflect.Method; import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +88,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r14/src/main/java/xyz/xenondevs/inventoryaccess/r14/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r14/src/main/java/xyz/xenondevs/inventoryaccess/r14/ItemUtilsImpl.java index 320a030..012d194 100644 --- a/inventoryaccess/inventory-access-r14/src/main/java/xyz/xenondevs/inventoryaccess/r14/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r14/src/main/java/xyz/xenondevs/inventoryaccess/r14/ItemUtilsImpl.java @@ -94,9 +94,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r15/src/main/java/xyz/xenondevs/inventoryaccess/r15/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r15/src/main/java/xyz/xenondevs/inventoryaccess/r15/ItemUtilsImpl.java index c50a725..d8b41a6 100644 --- a/inventoryaccess/inventory-access-r15/src/main/java/xyz/xenondevs/inventoryaccess/r15/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r15/src/main/java/xyz/xenondevs/inventoryaccess/r15/ItemUtilsImpl.java @@ -1,6 +1,5 @@ package xyz.xenondevs.inventoryaccess.r15; -import com.mojang.authlib.GameProfile; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; import net.minecraft.world.item.ItemStack; @@ -13,16 +12,11 @@ import xyz.xenondevs.inventoryaccess.util.ReflectionRegistry; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import java.io.*; -import java.lang.reflect.Method; import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +88,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r16/src/main/java/xyz/xenondevs/inventoryaccess/r16/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r16/src/main/java/xyz/xenondevs/inventoryaccess/r16/ItemUtilsImpl.java index fb59278..0f9cf7e 100644 --- a/inventoryaccess/inventory-access-r16/src/main/java/xyz/xenondevs/inventoryaccess/r16/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r16/src/main/java/xyz/xenondevs/inventoryaccess/r16/ItemUtilsImpl.java @@ -1,6 +1,5 @@ package xyz.xenondevs.inventoryaccess.r16; -import com.mojang.authlib.GameProfile; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; import net.minecraft.world.item.ItemStack; @@ -13,16 +12,11 @@ import xyz.xenondevs.inventoryaccess.util.ReflectionRegistry; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import java.io.*; -import java.lang.reflect.Method; import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +88,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r17/src/main/java/xyz/xenondevs/inventoryaccess/r17/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r17/src/main/java/xyz/xenondevs/inventoryaccess/r17/ItemUtilsImpl.java index f8420cf..f698b6d 100644 --- a/inventoryaccess/inventory-access-r17/src/main/java/xyz/xenondevs/inventoryaccess/r17/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r17/src/main/java/xyz/xenondevs/inventoryaccess/r17/ItemUtilsImpl.java @@ -94,9 +94,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r2/src/main/java/xyz/xenondevs/inventoryaccess/r2/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r2/src/main/java/xyz/xenondevs/inventoryaccess/r2/ItemUtilsImpl.java index a020b32..c9f443a 100644 --- a/inventoryaccess/inventory-access-r2/src/main/java/xyz/xenondevs/inventoryaccess/r2/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r2/src/main/java/xyz/xenondevs/inventoryaccess/r2/ItemUtilsImpl.java @@ -1,6 +1,5 @@ package xyz.xenondevs.inventoryaccess.r2; -import com.mojang.authlib.GameProfile; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.NBTCompressedStreamTools; import net.minecraft.server.v1_14_R1.NBTTagCompound; @@ -13,16 +12,11 @@ import xyz.xenondevs.inventoryaccess.util.ReflectionRegistry; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import java.io.*; -import java.lang.reflect.Field; import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - private static final Field CRAFT_META_SKULL_GAME_PROFILE_FIELD = ReflectionUtils.getField( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "profile" - ); - @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +88,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.setFieldValue(CRAFT_META_SKULL_GAME_PROFILE_FIELD, itemMeta, gameProfile); - } - } diff --git a/inventoryaccess/inventory-access-r3/src/main/java/xyz/xenondevs/inventoryaccess/r3/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r3/src/main/java/xyz/xenondevs/inventoryaccess/r3/ItemUtilsImpl.java index 5908ecf..94deb93 100644 --- a/inventoryaccess/inventory-access-r3/src/main/java/xyz/xenondevs/inventoryaccess/r3/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r3/src/main/java/xyz/xenondevs/inventoryaccess/r3/ItemUtilsImpl.java @@ -1,6 +1,5 @@ package xyz.xenondevs.inventoryaccess.r3; -import com.mojang.authlib.GameProfile; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.NBTCompressedStreamTools; import net.minecraft.server.v1_14_R1.NBTTagCompound; @@ -13,16 +12,11 @@ import xyz.xenondevs.inventoryaccess.util.ReflectionRegistry; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import java.io.*; -import java.lang.reflect.Method; import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +88,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } diff --git a/inventoryaccess/inventory-access-r4/src/main/java/xyz/xenondevs/inventoryaccess/r4/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r4/src/main/java/xyz/xenondevs/inventoryaccess/r4/ItemUtilsImpl.java index a791eb4..f9ba0b0 100644 --- a/inventoryaccess/inventory-access-r4/src/main/java/xyz/xenondevs/inventoryaccess/r4/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r4/src/main/java/xyz/xenondevs/inventoryaccess/r4/ItemUtilsImpl.java @@ -18,11 +18,7 @@ import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +90,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } diff --git a/inventoryaccess/inventory-access-r5/src/main/java/xyz/xenondevs/inventoryaccess/r5/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r5/src/main/java/xyz/xenondevs/inventoryaccess/r5/ItemUtilsImpl.java index ee4c416..aabb02f 100644 --- a/inventoryaccess/inventory-access-r5/src/main/java/xyz/xenondevs/inventoryaccess/r5/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r5/src/main/java/xyz/xenondevs/inventoryaccess/r5/ItemUtilsImpl.java @@ -18,11 +18,7 @@ import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,10 +90,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r6/src/main/java/xyz/xenondevs/inventoryaccess/r6/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r6/src/main/java/xyz/xenondevs/inventoryaccess/r6/ItemUtilsImpl.java index a8cb17b..73ea1cb 100644 --- a/inventoryaccess/inventory-access-r6/src/main/java/xyz/xenondevs/inventoryaccess/r6/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r6/src/main/java/xyz/xenondevs/inventoryaccess/r6/ItemUtilsImpl.java @@ -18,11 +18,7 @@ import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +90,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r7/src/main/java/xyz/xenondevs/inventoryaccess/r7/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r7/src/main/java/xyz/xenondevs/inventoryaccess/r7/ItemUtilsImpl.java index 1479c77..11a9078 100644 --- a/inventoryaccess/inventory-access-r7/src/main/java/xyz/xenondevs/inventoryaccess/r7/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r7/src/main/java/xyz/xenondevs/inventoryaccess/r7/ItemUtilsImpl.java @@ -18,11 +18,7 @@ import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +90,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r8/src/main/java/xyz/xenondevs/inventoryaccess/r8/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r8/src/main/java/xyz/xenondevs/inventoryaccess/r8/ItemUtilsImpl.java index 6eb82e4..79aa6c3 100644 --- a/inventoryaccess/inventory-access-r8/src/main/java/xyz/xenondevs/inventoryaccess/r8/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r8/src/main/java/xyz/xenondevs/inventoryaccess/r8/ItemUtilsImpl.java @@ -94,9 +94,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access-r9/src/main/java/xyz/xenondevs/inventoryaccess/r9/ItemUtilsImpl.java b/inventoryaccess/inventory-access-r9/src/main/java/xyz/xenondevs/inventoryaccess/r9/ItemUtilsImpl.java index c2d1649..2ef07d8 100644 --- a/inventoryaccess/inventory-access-r9/src/main/java/xyz/xenondevs/inventoryaccess/r9/ItemUtilsImpl.java +++ b/inventoryaccess/inventory-access-r9/src/main/java/xyz/xenondevs/inventoryaccess/r9/ItemUtilsImpl.java @@ -18,11 +18,7 @@ import java.util.List; import java.util.stream.Collectors; class ItemUtilsImpl implements ItemUtils { - - private static final Method CRAFT_META_SKULL_SET_PROFILE_METHOD = ReflectionUtils.getMethod( - ReflectionRegistry.CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class - ); - + @Override public byte[] serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack, boolean compressed) { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -94,9 +90,4 @@ class ItemUtilsImpl implements ItemUtils { ); } - @Override - public void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile) { - ReflectionUtils.invokeMethod(CRAFT_META_SKULL_SET_PROFILE_METHOD, itemMeta, gameProfile); - } - } \ No newline at end of file diff --git a/inventoryaccess/inventory-access/src/main/java/xyz/xenondevs/inventoryaccess/abstraction/util/ItemUtils.java b/inventoryaccess/inventory-access/src/main/java/xyz/xenondevs/inventoryaccess/abstraction/util/ItemUtils.java index 82ef207..a3c2412 100644 --- a/inventoryaccess/inventory-access/src/main/java/xyz/xenondevs/inventoryaccess/abstraction/util/ItemUtils.java +++ b/inventoryaccess/inventory-access/src/main/java/xyz/xenondevs/inventoryaccess/abstraction/util/ItemUtils.java @@ -1,6 +1,5 @@ package xyz.xenondevs.inventoryaccess.abstraction.util; -import com.mojang.authlib.GameProfile; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; @@ -68,12 +67,4 @@ public interface ItemUtils { */ void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore); - /** - * Sets the game profile of a player skull, thereby changing its owner and texture. - * - * @param itemMeta The {@link ItemMeta} of the skull - * @param gameProfile The game profile to apply to the skull - */ - void setSkullGameProfile(@NotNull ItemMeta itemMeta, @NotNull GameProfile gameProfile); - } diff --git a/inventoryaccess/inventory-access/src/main/java/xyz/xenondevs/inventoryaccess/util/ReflectionRegistry.java b/inventoryaccess/inventory-access/src/main/java/xyz/xenondevs/inventoryaccess/util/ReflectionRegistry.java index eaed421..3df956a 100644 --- a/inventoryaccess/inventory-access/src/main/java/xyz/xenondevs/inventoryaccess/util/ReflectionRegistry.java +++ b/inventoryaccess/inventory-access/src/main/java/xyz/xenondevs/inventoryaccess/util/ReflectionRegistry.java @@ -1,5 +1,6 @@ package xyz.xenondevs.inventoryaccess.util; +import com.mojang.authlib.GameProfile; import org.bukkit.Bukkit; import java.lang.reflect.Field; @@ -19,11 +20,13 @@ public class ReflectionRegistry { // Methods public static final Method PAPER_PLUGIN_CLASS_LOADER_GET_LOADED_JAVA_PLUGIN_METHOD; + public static final Method CB_CRAFT_META_SKULL_SET_PROFILE_METHOD = getMethodOrNull(CB_CRAFT_META_SKULL_CLASS, true, "setProfile", GameProfile.class); // since spigot 1.14.4 or paper 1.15.1 // Fields public static final Field PLUGIN_CLASS_LOADER_PLUGIN_FIELD = getField(PLUGIN_CLASS_LOADER_CLASS, true, "plugin"); public static final Field CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD = getField(CB_CRAFT_META_ITEM_CLASS, true, "displayName"); public static final Field CB_CRAFT_META_ITEM_LORE_FIELD = getField(CB_CRAFT_META_ITEM_CLASS, true, "lore"); + public static final Field CB_CRAFT_META_SKULL_PROFILE_FIELD = getField(CB_CRAFT_META_SKULL_CLASS, true, "profile"); static { Method getPlugin = getMethodOrNull(PAPER_PLUGIN_CLASS_LOADER_CLASS, false, "getLoadedJavaPlugin"); diff --git a/invui-core/src/main/java/xyz/xenondevs/invui/item/builder/SkullBuilder.java b/invui-core/src/main/java/xyz/xenondevs/invui/item/builder/SkullBuilder.java index 0d650c8..71447c4 100644 --- a/invui-core/src/main/java/xyz/xenondevs/invui/item/builder/SkullBuilder.java +++ b/invui-core/src/main/java/xyz/xenondevs/invui/item/builder/SkullBuilder.java @@ -14,7 +14,8 @@ import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import xyz.xenondevs.inventoryaccess.InventoryAccess; +import xyz.xenondevs.inventoryaccess.util.ReflectionRegistry; +import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.invui.util.MojangApiUtils; import java.io.Serializable; @@ -66,8 +67,13 @@ public final class SkullBuilder extends AbstractItemBuilder { ItemStack item = super.get(lang); ItemMeta meta = item.getItemMeta(); - if (gameProfile != null) - InventoryAccess.getItemUtils().setSkullGameProfile(meta, gameProfile); + if (gameProfile != null) { + if (ReflectionRegistry.CB_CRAFT_META_SKULL_SET_PROFILE_METHOD != null) { + ReflectionUtils.invokeMethod(ReflectionRegistry.CB_CRAFT_META_SKULL_SET_PROFILE_METHOD, meta, gameProfile); + } else { + ReflectionUtils.setFieldValue(ReflectionRegistry.CB_CRAFT_META_SKULL_PROFILE_FIELD, meta, gameProfile); + } + } item.setItemMeta(meta);