# 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