# INametag Represents a single player's nametag. Provides visibility control and override methods. --- ## Source ```java package gg.lode.sign.api.nametag; import org.bukkit.entity.Player; import java.util.List; public interface INametag { Player getPlayer(); void showForAll(); void hideForAll(); void updateVisibilityForAll(); void show(Player viewer); void hide(Player viewer); void update(Player viewer); /** * Override the nametag lines globally for all viewers. * This overrides the configured nametag until {@link #release()} is called * or the plugin is reloaded. * * @param lines the custom lines to display */ void setLines(List<String> lines); /** * Override the nametag lines that a specific viewer sees for this player. * This overrides the configured nametag until {@link #release(Player)} is called * or the plugin is reloaded. * * @param viewer the player who will see the custom lines * @param lines the custom lines to display */ void setLines(Player viewer, List<String> lines); /** * Release the global override, restoring the configured nametag for all viewers. */ void release(); /** * Release the per-viewer override, restoring the configured nametag * for the given viewer. * * @param viewer the player whose override should be removed */ void release(Player viewer); /** * Check if a global override is active. * * @return true if a global override is active */ boolean hasOverride(); /** * Check if a viewer has a per-viewer override active. * * @param viewer the player to check * @return true if the viewer has an active override */ boolean hasOverride(Player viewer); } ``` --- ## Related Pages - [[Sign/API/INametagManager]] — retrieves `INametag` instances - [[Sign/Developers/API Reference]] — usage examples and override priority