From cbae508f04dc38cd2491903ff97ddee8f6b285fe Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Sun, 10 Sep 2023 23:06:36 +0200 Subject: [PATCH] Added random variations of Tropical fish buckets and Axolotl buckets for the trade gui --- .../java/com/alttd/GUI/windows/TradeGUI.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alttd/GUI/windows/TradeGUI.java b/src/main/java/com/alttd/GUI/windows/TradeGUI.java index 924ac45..7c07ce7 100644 --- a/src/main/java/com/alttd/GUI/windows/TradeGUI.java +++ b/src/main/java/com/alttd/GUI/windows/TradeGUI.java @@ -15,10 +15,15 @@ import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; +import org.bukkit.DyeColor; import org.bukkit.Material; +import org.bukkit.entity.Axolotl; import org.bukkit.entity.Player; +import org.bukkit.entity.TropicalFish; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.AxolotlBucketMeta; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.TropicalFishBucketMeta; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -133,7 +138,9 @@ public class TradeGUI extends GUIMerchant { } econ.withdrawPlayer(player, price); villagerType.makeTrade(uuid); - player.getInventory().addItem(new ItemStack(material, amount)); + ItemStack itemStack = new ItemStack(material, amount); + randomizeMetaIfNeeded(material, itemStack); + player.getInventory().addItem(itemStack); player.sendMiniMessage(Config.TRADED_ITEM, TagResolver.resolver( Placeholder.parsed("amount", String.valueOf(amount)), @@ -149,6 +156,25 @@ public class TradeGUI extends GUIMerchant { trade(villagerType, player, material, amount, price); } + private void randomizeMetaIfNeeded(Material material, ItemStack itemStack) { + if (material.equals(Material.AXOLOTL_BUCKET)) { + AxolotlBucketMeta axolotlBucketMeta = (AxolotlBucketMeta) itemStack.getItemMeta(); + int value = new Random().nextInt(0, Axolotl.Variant.values().length - 1); + axolotlBucketMeta.setVariant(Axolotl.Variant.values()[value]); + itemStack.setItemMeta(axolotlBucketMeta); + } else if (material.equals(Material.TROPICAL_FISH_BUCKET)) { + TropicalFishBucketMeta tropicalFishBucketMeta = (TropicalFishBucketMeta) itemStack.getItemMeta(); + Random random = new Random(); + int bodyColor = random.nextInt(0, DyeColor.values().length - 1); + int pattern = random.nextInt(0, TropicalFish.Pattern.values().length - 1); + int patternColor = random.nextInt(0, DyeColor.values().length - 1); + tropicalFishBucketMeta.setBodyColor(DyeColor.values()[bodyColor]); + tropicalFishBucketMeta.setPattern(TropicalFish.Pattern.values()[pattern]); + tropicalFishBucketMeta.setPatternColor(DyeColor.values()[patternColor]); + itemStack.setItemMeta(tropicalFishBucketMeta); + } + } + private ItemStack getPriceItem(double price) { if (price < 0) return nameItem(new ItemStack(Material.BARRIER), -1); else if (price <= 10) return nameItem(new ItemStack(Material.IRON_INGOT), price);