From a774f147f2a9e4d5ca4777542eecee377b093a9d Mon Sep 17 00:00:00 2001 From: J10a1n15 <45315647+j10a1n15@users.noreply.github.com> Date: Sun, 22 Jun 2025 06:34:48 +0200 Subject: fix: some tabwidget icons being incorrect (#1362) * fix: some tabwidget icons being incorrect * refactor: improve some Ico names --- .../skyblocker/skyblock/dungeon/DungeonClass.java | 10 +- .../hysky/skyblocker/skyblock/tabhud/util/Ico.java | 158 +++++++++++---------- .../skyblock/tabhud/widget/ElectionWidget.java | 4 +- .../skyblock/tabhud/widget/ForgeWidget.java | 2 +- .../skyblock/tabhud/widget/ProfileWidget.java | 2 +- .../skyblock/tabhud/widget/ServerWidget.java | 2 +- .../java/de/hysky/skyblocker/utils/ItemUtils.java | 29 ++-- 7 files changed, 110 insertions(+), 97 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonClass.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonClass.java index 285cc191..66f03dbe 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonClass.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonClass.java @@ -1,19 +1,19 @@ package de.hysky.skyblocker.skyblock.dungeon; +import de.hysky.skyblocker.skyblock.entity.MobGlow; +import de.hysky.skyblocker.skyblock.tabhud.util.Ico; +import net.minecraft.item.ItemStack; + import java.util.Arrays; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; -import de.hysky.skyblocker.skyblock.entity.MobGlow; -import de.hysky.skyblocker.skyblock.tabhud.util.Ico; -import net.minecraft.item.ItemStack; - public enum DungeonClass { UNKNOWN("Unknown", MobGlow.NO_GLOW, Ico.BARRIER), HEALER("Healer", 0x820dd1, Ico.POTION), MAGE("Mage", 0x36c6e3, Ico.B_ROD), - BERSERK("Berserk", 0xfa5b16, Ico.DIASWORD), + BERSERK("Berserk", 0xfa5b16, Ico.DIA_SWORD), ARCHER("Archer", 0xed240e, Ico.BOW), TANK("Tank", 0x138717, Ico.CHESTPLATE); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/Ico.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/Ico.java index 9e4ccc6e..f9a791d5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/Ico.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/Ico.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.tabhud.util; +import de.hysky.skyblocker.utils.ItemUtils; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; @@ -7,82 +8,83 @@ import net.minecraft.item.Items; * Stores convenient shorthands for common ItemStack definitions */ public class Ico { - public static final ItemStack MAP = new ItemStack(Items.FILLED_MAP); - public static final ItemStack NTAG = new ItemStack(Items.NAME_TAG); - public static final ItemStack EMERALD = new ItemStack(Items.EMERALD); - public static final ItemStack MAGMA_CREAM = new ItemStack(Items.MAGMA_CREAM); - public static final ItemStack AMETHYST_SHARD = new ItemStack(Items.AMETHYST_SHARD); - public static final ItemStack CLOCK = new ItemStack(Items.CLOCK); - public static final ItemStack DIASWORD = new ItemStack(Items.DIAMOND_SWORD); - public static final ItemStack DBUSH = new ItemStack(Items.DEAD_BUSH); - public static final ItemStack VILLAGER = new ItemStack(Items.VILLAGER_SPAWN_EGG); - public static final ItemStack SPAWN_EGG = new ItemStack(Items.GHAST_SPAWN_EGG); - public static final ItemStack MOREGOLD = new ItemStack(Items.GOLDEN_APPLE); - public static final ItemStack COMPASS = new ItemStack(Items.COMPASS); - public static final ItemStack SUGAR = new ItemStack(Items.SUGAR); - public static final ItemStack IRON_HOE = new ItemStack(Items.IRON_HOE); - public static final ItemStack GOLDEN_HOE = new ItemStack(Items.GOLDEN_HOE); - public static final ItemStack GOLD = new ItemStack(Items.GOLD_INGOT); - public static final ItemStack IRON = new ItemStack(Items.IRON_INGOT); - public static final ItemStack BONE = new ItemStack(Items.BONE); - public static final ItemStack SIGN = new ItemStack(Items.OAK_SIGN); - public static final ItemStack FISH_ROD = new ItemStack(Items.FISHING_ROD); - public static final ItemStack STONE_SWORD = new ItemStack(Items.STONE_SWORD); - public static final ItemStack IRON_SWORD = new ItemStack(Items.IRON_SWORD); - public static final ItemStack LANTERN = new ItemStack(Items.LANTERN); - public static final ItemStack COOKIE = new ItemStack(Items.COOKIE); - public static final ItemStack POTION = new ItemStack(Items.POTION); - public static final ItemStack S_POTION = new ItemStack(Items.SPLASH_POTION); - public static final ItemStack BARRIER = new ItemStack(Items.BARRIER); - public static final ItemStack PLAYER = new ItemStack(Items.PLAYER_HEAD); - public static final ItemStack WATER = new ItemStack(Items.WATER_BUCKET); - public static final ItemStack LEATHER = new ItemStack(Items.LEATHER); - public static final ItemStack MITHRIL = new ItemStack(Items.PRISMARINE_CRYSTALS); - public static final ItemStack REDSTONE = new ItemStack(Items.REDSTONE); - public static final ItemStack FIRE = new ItemStack(Items.CAMPFIRE); - public static final ItemStack STRING = new ItemStack(Items.STRING); - public static final ItemStack WITHER = new ItemStack(Items.WITHER_SKELETON_SKULL); - public static final ItemStack FLESH = new ItemStack(Items.ROTTEN_FLESH); - public static final ItemStack MUTTON = new ItemStack(Items.MUTTON); - public static final ItemStack DRAGON = new ItemStack(Items.DRAGON_HEAD); - public static final ItemStack DIAMOND = new ItemStack(Items.DIAMOND); - public static final ItemStack ICE = new ItemStack(Items.ICE); - public static final ItemStack CHEST = new ItemStack(Items.CHEST); - public static final ItemStack COMMAND = new ItemStack(Items.COMMAND_BLOCK); - public static final ItemStack SKULL = new ItemStack(Items.SKELETON_SKULL); - public static final ItemStack BOOK = new ItemStack(Items.WRITABLE_BOOK); - public static final ItemStack FURNACE = new ItemStack(Items.FURNACE); - public static final ItemStack CHESTPLATE = new ItemStack(Items.IRON_CHESTPLATE); - public static final ItemStack L_CHESTPLATE = new ItemStack(Items.LEATHER_CHESTPLATE); - public static final ItemStack B_ROD = new ItemStack(Items.BLAZE_ROD); - public static final ItemStack B_POWDER = new ItemStack(Items.BLAZE_POWDER); - public static final ItemStack BOW = new ItemStack(Items.BOW); - public static final ItemStack COPPER = new ItemStack(Items.COPPER_INGOT); - public static final ItemStack NETHERITE_UPGRADE_ST = new ItemStack(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE); - public static final ItemStack COMPOSTER = new ItemStack(Items.COMPOSTER); - public static final ItemStack SAPLING = new ItemStack(Items.OAK_SAPLING); - public static final ItemStack SEEDS = new ItemStack(Items.WHEAT_SEEDS); - public static final ItemStack MILESTONE = new ItemStack(Items.LODESTONE); - public static final ItemStack STONE_PICKAXE = new ItemStack(Items.STONE_PICKAXE); - public static final ItemStack IRON_PICKAXE = new ItemStack(Items.IRON_PICKAXE); - public static final ItemStack NETHER_STAR = new ItemStack(Items.NETHER_STAR); - public static final ItemStack HEART_OF_THE_SEA = new ItemStack(Items.HEART_OF_THE_SEA); - public static final ItemStack EXPERIENCE_BOTTLE = new ItemStack(Items.EXPERIENCE_BOTTLE); - public static final ItemStack PINK_DYE = new ItemStack(Items.PINK_DYE); - public static final ItemStack LIME_DYE = new ItemStack(Items.LIME_DYE); - public static final ItemStack GRAY_DYE = new ItemStack(Items.GRAY_DYE); - public static final ItemStack ENCHANTED_BOOK = new ItemStack(Items.ENCHANTED_BOOK); - public static final ItemStack SPIDER_EYE = new ItemStack(Items.SPIDER_EYE); - public static final ItemStack BLUE_ICE = new ItemStack(Items.BLUE_ICE); - public static final ItemStack JUNGLE_SAPLING = new ItemStack(Items.JUNGLE_SAPLING); - public static final ItemStack ENCHANTING_TABLE = new ItemStack(Items.ENCHANTING_TABLE); - public static final ItemStack BREWING_STAND = new ItemStack(Items.BREWING_STAND); - public static final ItemStack CRAFTING_TABLE = new ItemStack(Items.CRAFTING_TABLE); - public static final ItemStack PAINTING = new ItemStack(Items.PAINTING); - public static final ItemStack E_PEARL = new ItemStack(Items.ENDER_PEARL); - public static final ItemStack FEATHER = new ItemStack(Items.FEATHER); - public static final ItemStack E_CHEST = new ItemStack(Items.ENDER_CHEST); - public static final ItemStack MYCELIUM = new ItemStack(Items.MYCELIUM); - public static final ItemStack SALMON_BUCKET = new ItemStack(Items.SALMON_BUCKET); - public static final ItemStack TROPICAL_FISH_BUCKET = new ItemStack(Items.TROPICAL_FISH_BUCKET); + public static final ItemStack MAP = Items.FILLED_MAP.getDefaultStack(); + public static final ItemStack NTAG = Items.NAME_TAG.getDefaultStack(); + public static final ItemStack EMERALD = Items.EMERALD.getDefaultStack(); + public static final ItemStack MAGMA_CREAM = Items.MAGMA_CREAM.getDefaultStack(); + public static final ItemStack AMETHYST_SHARD = Items.AMETHYST_SHARD.getDefaultStack(); + public static final ItemStack CLOCK = Items.CLOCK.getDefaultStack(); + public static final ItemStack DIA_SWORD = Items.DIAMOND_SWORD.getDefaultStack(); + public static final ItemStack DBUSH = Items.DEAD_BUSH.getDefaultStack(); + public static final ItemStack VILLAGER = Items.VILLAGER_SPAWN_EGG.getDefaultStack(); + public static final ItemStack SPAWN_EGG = Items.GHAST_SPAWN_EGG.getDefaultStack(); + public static final ItemStack GOLDEN_APPLE = Items.GOLDEN_APPLE.getDefaultStack(); + public static final ItemStack COMPASS = Items.COMPASS.getDefaultStack(); + public static final ItemStack SUGAR = Items.SUGAR.getDefaultStack(); + public static final ItemStack IRON_HOE = Items.IRON_HOE.getDefaultStack(); + public static final ItemStack GOLDEN_HOE = Items.GOLDEN_HOE.getDefaultStack(); + public static final ItemStack GOLD = Items.GOLD_INGOT.getDefaultStack(); + public static final ItemStack IRON = Items.IRON_INGOT.getDefaultStack(); + public static final ItemStack BONE = Items.BONE.getDefaultStack(); + public static final ItemStack SIGN = Items.OAK_SIGN.getDefaultStack(); + public static final ItemStack FISH_ROD = Items.FISHING_ROD.getDefaultStack(); + public static final ItemStack STONE_SWORD = Items.STONE_SWORD.getDefaultStack(); + public static final ItemStack IRON_SWORD = Items.IRON_SWORD.getDefaultStack(); + public static final ItemStack LANTERN = Items.LANTERN.getDefaultStack(); + public static final ItemStack COOKIE = Items.COOKIE.getDefaultStack(); + public static final ItemStack POTION = Items.POTION.getDefaultStack(); + public static final ItemStack S_POTION = Items.SPLASH_POTION.getDefaultStack(); + public static final ItemStack BARRIER = Items.BARRIER.getDefaultStack(); + public static final ItemStack PLAYER = Items.PLAYER_HEAD.getDefaultStack(); + public static final ItemStack FAIRY_SOUL = ItemUtils.createSkull("eyJ0aW1lc3RhbXAiOjE1ODY2NjcxNjgzNzksInByb2ZpbGVJZCI6ImJlY2RkYjI4YTJjODQ5YjRhOWIwOTIyYTU4MDUxNDIwIiwicHJvZmlsZU5hbWUiOiJTdFR2Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8yOTllYTEyMGJkODNkMGM4MWEzYzQ2MjdmNWJjZTFiMTJmYjAzYmNiNTc3NzljNjNkY2M3N2UzZjRhZThhNzkzIn19fQ=="); + public static final ItemStack WATER = Items.WATER_BUCKET.getDefaultStack(); + public static final ItemStack LEATHER = Items.LEATHER.getDefaultStack(); + public static final ItemStack MITHRIL = Items.PRISMARINE_CRYSTALS.getDefaultStack(); + public static final ItemStack REDSTONE = Items.REDSTONE.getDefaultStack(); + public static final ItemStack CAMPFIRE = Items.CAMPFIRE.getDefaultStack(); + public static final ItemStack STRING = Items.STRING.getDefaultStack(); + public static final ItemStack WITHER = Items.WITHER_SKELETON_SKULL.getDefaultStack(); + public static final ItemStack FLESH = Items.ROTTEN_FLESH.getDefaultStack(); + public static final ItemStack MUTTON = Items.MUTTON.getDefaultStack(); + public static final ItemStack DRAGON = Items.DRAGON_HEAD.getDefaultStack(); + public static final ItemStack DIAMOND = Items.DIAMOND.getDefaultStack(); + public static final ItemStack ICE = Items.ICE.getDefaultStack(); + public static final ItemStack CHEST = Items.CHEST.getDefaultStack(); + public static final ItemStack COMMAND = Items.COMMAND_BLOCK.getDefaultStack(); + public static final ItemStack SKULL = Items.SKELETON_SKULL.getDefaultStack(); + public static final ItemStack BOOK = Items.WRITABLE_BOOK.getDefaultStack(); + public static final ItemStack FURNACE = Items.FURNACE.getDefaultStack(); + public static final ItemStack CHESTPLATE = Items.IRON_CHESTPLATE.getDefaultStack(); + public static final ItemStack L_CHESTPLATE = Items.LEATHER_CHESTPLATE.getDefaultStack(); + public static final ItemStack B_ROD = Items.BLAZE_ROD.getDefaultStack(); + public static final ItemStack B_POWDER = Items.BLAZE_POWDER.getDefaultStack(); + public static final ItemStack BOW = Items.BOW.getDefaultStack(); + public static final ItemStack COPPER = Items.COPPER_INGOT.getDefaultStack(); + public static final ItemStack NETHERITE_UPGRADE_ST = Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE.getDefaultStack(); + public static final ItemStack COMPOSTER = Items.COMPOSTER.getDefaultStack(); + public static final ItemStack SAPLING = Items.OAK_SAPLING.getDefaultStack(); + public static final ItemStack SEEDS = Items.WHEAT_SEEDS.getDefaultStack(); + public static final ItemStack LODESTONE = Items.LODESTONE.getDefaultStack(); + public static final ItemStack STONE_PICKAXE = Items.STONE_PICKAXE.getDefaultStack(); + public static final ItemStack IRON_PICKAXE = Items.IRON_PICKAXE.getDefaultStack(); + public static final ItemStack NETHER_STAR = Items.NETHER_STAR.getDefaultStack(); + public static final ItemStack HEART_OF_THE_SEA = Items.HEART_OF_THE_SEA.getDefaultStack(); + public static final ItemStack EXPERIENCE_BOTTLE = Items.EXPERIENCE_BOTTLE.getDefaultStack(); + public static final ItemStack PINK_DYE = Items.PINK_DYE.getDefaultStack(); + public static final ItemStack LIME_DYE = Items.LIME_DYE.getDefaultStack(); + public static final ItemStack GRAY_DYE = Items.GRAY_DYE.getDefaultStack(); + public static final ItemStack ENCHANTED_BOOK = Items.ENCHANTED_BOOK.getDefaultStack(); + public static final ItemStack SPIDER_EYE = Items.SPIDER_EYE.getDefaultStack(); + public static final ItemStack BLUE_ICE = Items.BLUE_ICE.getDefaultStack(); + public static final ItemStack JUNGLE_SAPLING = Items.JUNGLE_SAPLING.getDefaultStack(); + public static final ItemStack ENCHANTING_TABLE = Items.ENCHANTING_TABLE.getDefaultStack(); + public static final ItemStack BREWING_STAND = Items.BREWING_STAND.getDefaultStack(); + public static final ItemStack CRAFTING_TABLE = Items.CRAFTING_TABLE.getDefaultStack(); + public static final ItemStack PAINTING = Items.PAINTING.getDefaultStack(); + public static final ItemStack E_PEARL = Items.ENDER_PEARL.getDefaultStack(); + public static final ItemStack FEATHER = Items.FEATHER.getDefaultStack(); + public static final ItemStack E_CHEST = Items.ENDER_CHEST.getDefaultStack(); + public static final ItemStack MYCELIUM = Items.MYCELIUM.getDefaultStack(); + public static final ItemStack SALMON_BUCKET = Items.SALMON_BUCKET.getDefaultStack(); + public static final ItemStack TROPICAL_FISH_BUCKET = Items.TROPICAL_FISH_BUCKET.getDefaultStack(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ElectionWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ElectionWidget.java index 69cd7b05..4bf1023a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ElectionWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ElectionWidget.java @@ -33,14 +33,14 @@ public class ElectionWidget extends TabHudWidget { private static final Pattern VOTE_PATTERN = Pattern.compile("(?\\S*): \\|+ \\((?\\d*)%\\)"); static { - MAYOR_DATA.put("Aatrox", Ico.DIASWORD); + MAYOR_DATA.put("Aatrox", Ico.DIA_SWORD); MAYOR_DATA.put("Cole", Ico.IRON_PICKAXE); MAYOR_DATA.put("Diana", Ico.BONE); MAYOR_DATA.put("Diaz", Ico.GOLD); MAYOR_DATA.put("Finnegan", Ico.IRON_HOE); MAYOR_DATA.put("Foxy", Ico.SUGAR); MAYOR_DATA.put("Paul", Ico.COMPASS); - MAYOR_DATA.put("Scorpius", Ico.MOREGOLD); + MAYOR_DATA.put("Scorpius", Ico.GOLDEN_APPLE); MAYOR_DATA.put("Jerry", Ico.VILLAGER); MAYOR_DATA.put("Derpy", Ico.DBUSH); MAYOR_DATA.put("Marina", Ico.FISH_ROD); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ForgeWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ForgeWidget.java index d257a3bc..b3c556f5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ForgeWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ForgeWidget.java @@ -60,7 +60,7 @@ public class ForgeWidget extends TabHudWidget { } else { l2 = Text.literal("Done in: ").formatted(Formatting.GRAY).append(Text.literal(parts[1]).formatted(Formatting.WHITE)); } - c = new IcoFatTextComponent(Ico.FIRE, l1, l2); + c = new IcoFatTextComponent(Ico.CAMPFIRE, l1, l2); } } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ProfileWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ProfileWidget.java index 804b96b8..57afbd74 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ProfileWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ProfileWidget.java @@ -27,7 +27,7 @@ public class ProfileWidget extends TabHudWidget { for (int i = 1; i < lines.size(); i++) { Text text = lines.get(i); switch (text.getString().toLowerCase()) { - case String s when s.contains("bank") -> this.addComponent(new IcoTextComponent(Ico.EMERALD, text)); + case String s when s.contains("bank") -> this.addComponent(new IcoTextComponent(Ico.GOLD, text)); case String s when s.contains("interest") -> this.addComponent(new IcoTextComponent(Ico.CLOCK, text)); case String s when s.contains("pet") -> this.addComponent(new IcoTextComponent(Ico.BONE, text)); default -> this.addComponent(new PlainTextComponent(text)); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ServerWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ServerWidget.java index 5a438d49..da4d20b6 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ServerWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ServerWidget.java @@ -36,7 +36,7 @@ public class ServerWidget extends TabHudWidget { case String s when s.contains("crystals") -> this.addComponent(new IcoTextComponent(Ico.EMERALD, text)); case String s when s.contains("copper") -> this.addComponent(new IcoTextComponent(Ico.COPPER, text)); case String s when s.contains("garden") -> this.addComponent(new IcoTextComponent(Ico.EXPERIENCE_BOTTLE, text)); - case String s when s.contains("fairy") -> this.addComponent(new IcoTextComponent(Ico.DIAMOND, text)); + case String s when s.contains("fairy") -> this.addComponent(new IcoTextComponent(Ico.FAIRY_SOUL, text)); case String s when s.contains("rain") -> this.addComponent(new IcoTextComponent(Ico.WATER, text)); case String s when s.contains("brood") -> this.addComponent(new IcoTextComponent(Ico.SPIDER_EYE, text)); default -> this.addComponent(new PlainTextComponent(text)); diff --git a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java index d6742a51..f977dd9c 100644 --- a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java +++ b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.utils; import com.google.gson.JsonParser; +import com.mojang.authlib.GameProfile; import com.mojang.authlib.properties.Property; import com.mojang.authlib.properties.PropertyMap; import com.mojang.brigadier.Command; @@ -443,15 +444,25 @@ public final class ItemUtils { return Optional.of(texture); } - public static @NotNull ItemStack getSkyblockerStack() { - try { - ItemStack stack = new ItemStack(Items.PLAYER_HEAD); - stack.set(DataComponentTypes.PROFILE, new ProfileComponent(Optional.of("SkyblockerStack"), Optional.of(java.util.UUID.randomUUID()), propertyMapWithTexture("e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0="))); - return stack; - } catch (Exception e) { - throw new RuntimeException(e); - } - } + public static @NotNull ItemStack createSkull(String textureBase64) { + GameProfile profile = new GameProfile(java.util.UUID.randomUUID(), "a"); + profile.getProperties().put("textures", new Property("textures", textureBase64)); + return createSkull(profile); + } + + public static @NotNull ItemStack createSkull(GameProfile profile) { + try { + ItemStack stack = new ItemStack(Items.PLAYER_HEAD); + stack.set(DataComponentTypes.PROFILE, new ProfileComponent(profile)); + return stack; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public static @NotNull ItemStack getSkyblockerStack() { + return createSkull("e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0="); + } /** * Utility method. -- cgit