From 176da26b2e83a3f83e17056cbea86b4e4d61b992 Mon Sep 17 00:00:00 2001 From: Kiran Hart Date: Fri, 29 Sep 2023 13:08:00 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20update=20and=20adjust=20nbtapi?= =?UTF-8?q?=20methods?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Took 9 minutes --- .../ca/tweetzy/auctionhouse/api/AuctionAPI.java | 6 +++--- .../tweetzy/auctionhouse/helpers/BundleUtil.java | 14 +++++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java b/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java index d686f51..54d86bc 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java +++ b/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java @@ -458,7 +458,7 @@ public class AuctionAPI { } public String getHeadTexture(final ItemStack item) { - final String textureBase64 = NBT.get(item, nbt -> nbt.getCompound("SkullOwner").getCompound("Properties").getCompoundList("textures").get(0).getString("Value")); + final String textureBase64 = NBT.get(item, nbt -> (String) nbt.getCompound("SkullOwner").getCompound("Properties").getCompoundList("textures").get(0).getString("Value")); final String textureJson = new String(Base64.getDecoder().decode(textureBase64)); final JsonObject object = JsonParser.parseString(textureJson).getAsJsonObject(); @@ -612,7 +612,7 @@ public class AuctionAPI { } public boolean isRepaired(final ItemStack item) { - return NBT.get(item, nbt -> nbt.hasTag("AuctionHouseRepaired")); + return NBT.get(item, nbt -> (boolean) nbt.hasTag("AuctionHouseRepaired")); } public double calculateListingFee(double basePrice) { @@ -790,7 +790,7 @@ public class AuctionAPI { // Check NBT tags for (String nbtTag : Settings.BLOCKED_NBT_TAGS.getStringList()) { - if (NBT.get(itemStack, nbt -> nbt.hasTag(nbtTag))) { + if (NBT.get(itemStack, nbt -> (boolean) nbt.hasTag(nbtTag))) { AuctionHouse.getInstance().getLocale().getMessage("general.blockednbttag").processPlaceholder("nbttag", nbtTag).sendPrefixedMessage(player); return false; } diff --git a/src/main/java/ca/tweetzy/auctionhouse/helpers/BundleUtil.java b/src/main/java/ca/tweetzy/auctionhouse/helpers/BundleUtil.java index 4788fcb..948b097 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/helpers/BundleUtil.java +++ b/src/main/java/ca/tweetzy/auctionhouse/helpers/BundleUtil.java @@ -21,6 +21,7 @@ package ca.tweetzy.auctionhouse.helpers; import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.core.compatibility.XMaterial; import ca.tweetzy.flight.nbtapi.NBT; +import ca.tweetzy.flight.nbtapi.iface.ReadableItemNBT; import lombok.NonNull; import lombok.experimental.UtilityClass; import org.bukkit.inventory.ItemStack; @@ -28,30 +29,33 @@ import org.bukkit.inventory.ItemStack; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.function.Function; @UtilityClass public final class BundleUtil { public boolean isBundledItem(@NonNull final ItemStack itemStack) { - return itemStack.getType() != XMaterial.AIR.parseMaterial() && NBT.get(itemStack, nbt -> nbt.hasTag("AuctionBundleItem")); + final boolean hasBundleTag = NBT.get(itemStack, nbt -> (boolean) nbt.hasTag("AuctionBundleItem")); + return itemStack.getType() != XMaterial.AIR.parseMaterial() && hasBundleTag; } + public List extractBundleItems(@NonNull final ItemStack itemStack) { final List items = new ArrayList<>(); - final int totalBundledItems = NBT.get(itemStack, nbt -> nbt.getInteger("AuctionBundleItem")); + final int totalBundledItems = NBT.get(itemStack, nbt -> (int) nbt.getInteger("AuctionBundleItem")); for (int i = 0; i < totalBundledItems; i++) { int finalI = i; - if (NBT.get(itemStack, nbt -> nbt.hasTag("AuctionBundleItem-" + finalI))) - items.add(AuctionAPI.getInstance().deserializeItem(NBT.get(itemStack, nbt -> nbt.getByteArray("AuctionBundleItem-" + finalI)))); + if (NBT.get(itemStack, (Function) nbt -> nbt.hasTag("AuctionBundleItem-" + finalI))) + items.add(AuctionAPI.getInstance().deserializeItem(NBT.get(itemStack, nbt -> (byte[]) nbt.getByteArray("AuctionBundleItem-" + finalI)))); } if (!items.isEmpty()) return items; - final ItemStack[] bundledItems = NBT.get(itemStack, nbt -> nbt.getItemStackArray("AuctionBundleItems")); + final ItemStack[] bundledItems = NBT.get(itemStack, nbt -> (ItemStack[]) nbt.getItemStackArray("AuctionBundleItems")); return new ArrayList<>(Arrays.asList(bundledItems)); } }