package com.alttd.easter.glow; import com.alttd.easter.egg.EggType; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.entity.Entity; import org.bukkit.plugin.Plugin; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.Team; public class GlowManager { private final Scoreboard scoreboard; public GlowManager(Plugin plugin) { this.scoreboard = Bukkit.getScoreboardManager().getMainScoreboard(); } public void applyGlow(Entity entity, EggType type) { String teamName = ("easter_" + type.name()).toLowerCase(); Team team = scoreboard.getTeam(teamName); if (team == null) { team = scoreboard.registerNewTeam(teamName); team.setCanSeeFriendlyInvisibles(false); team.setAllowFriendlyFire(true); team.color(colorFor(type)); } String entry = entity.getUniqueId().toString(); if (!team.hasEntry(entry)) { team.addEntry(entry); } } private NamedTextColor colorFor(EggType type) { return switch (type) { case BROWN_HUSK -> NamedTextColor.DARK_RED; // closest case RED_SPIDER -> NamedTextColor.RED; case ORANGE_BLAZE -> NamedTextColor.GOLD; case YELLOW_PIGLIN -> NamedTextColor.YELLOW; case LIME_CREEPER -> NamedTextColor.GREEN; case GREEN_ZOMBIE -> NamedTextColor.DARK_GREEN; case LIGHT_BLUE_STRAY -> NamedTextColor.AQUA; case CYAN_GUARDIAN -> NamedTextColor.DARK_AQUA; case BLUE_WARDEN -> NamedTextColor.BLUE; case PURPLE_ENDER_DRAGON -> NamedTextColor.DARK_PURPLE; case MAGENTA_ENDERMAN -> NamedTextColor.LIGHT_PURPLE; case PINK_HOGLIN -> NamedTextColor.LIGHT_PURPLE; case WHITE_SKELETON -> NamedTextColor.WHITE; case LIGHT_GRAY_SILVERFISH -> NamedTextColor.GRAY; case GRAY_WITHER -> NamedTextColor.DARK_GRAY; case BLACK_WITHER_SKELETON -> NamedTextColor.BLACK; default -> NamedTextColor.WHITE; }; } }