Initial setup for easter plugin
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
package com.alttd.easter.util;
|
||||
|
||||
import com.alttd.easter.egg.EggType;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public final class ItemUtils {
|
||||
|
||||
public static String colorName(EggType type) {
|
||||
return switch (type) {
|
||||
case BROWN_HUSK -> "Brown";
|
||||
case RED_SPIDER -> "Red";
|
||||
case ORANGE_BLAZE -> "Orange";
|
||||
case YELLOW_PIGLIN -> "Yellow";
|
||||
case LIME_CREEPER -> "Lime";
|
||||
case GREEN_ZOMBIE -> "Green";
|
||||
case LIGHT_BLUE_STRAY -> "Light Blue";
|
||||
case CYAN_GUARDIAN -> "Cyan";
|
||||
case BLUE_WARDEN -> "Blue";
|
||||
case PURPLE_ENDER_DRAGON -> "Purple";
|
||||
case MAGENTA_ENDERMAN -> "Magenta";
|
||||
case PINK_HOGLIN -> "Pink";
|
||||
case WHITE_SKELETON -> "White";
|
||||
case LIGHT_GRAY_SILVERFISH -> "Light Grey";
|
||||
case GRAY_WITHER -> "Grey";
|
||||
case BLACK_WITHER_SKELETON -> "Black";
|
||||
};
|
||||
}
|
||||
|
||||
public static ItemStack createEggItem(EggType type) {
|
||||
ItemStack item = new ItemStack(type.getMaterial());
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
meta.addEnchant(type.getEnchantment(), type.getEnchantLevel(), true);
|
||||
meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
|
||||
meta.setDisplayName(ChatColor.GOLD + "Easter Egg - " + prettify(type.name()));
|
||||
meta.getPersistentDataContainer().set(Keys.EGG_ITEM, PersistentDataType.STRING, type.name());
|
||||
item.setItemMeta(meta);
|
||||
return item;
|
||||
}
|
||||
|
||||
public static boolean isEggItem(ItemStack item) {
|
||||
if (item == null) return false;
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
if (meta == null) return false;
|
||||
return meta.getPersistentDataContainer().has(Keys.EGG_ITEM, PersistentDataType.STRING);
|
||||
}
|
||||
|
||||
public static EggType getEggType(ItemStack item) {
|
||||
if (!isEggItem(item)) return null;
|
||||
String name = item.getItemMeta().getPersistentDataContainer().get(Keys.EGG_ITEM, PersistentDataType.STRING);
|
||||
try {
|
||||
return name == null ? null : EggType.valueOf(name);
|
||||
} catch (IllegalArgumentException ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static String prettify(String name) {
|
||||
String[] parts = name.toLowerCase().split("_");
|
||||
List<String> out = new ArrayList<>();
|
||||
for (String p : parts) {
|
||||
if (p.isEmpty()) continue;
|
||||
out.add(Character.toUpperCase(p.charAt(0)) + p.substring(1));
|
||||
}
|
||||
return String.join(" ", out);
|
||||
}
|
||||
|
||||
private ItemUtils() {}
|
||||
}
|
||||
Reference in New Issue
Block a user