# API Reference Sign-API provides the public interfaces for reading and controlling nametags at runtime. The API is accessed through the static `SignAPI` class. --- ## SignAPI The static entry point for all API access. ```java import gg.lode.sign.api.SignAPI; INametagManager manager = SignAPI.getNametagManager(); ``` | Method | Description | |---|---| | `get()` | Returns the `ISign` instance. Throws `IllegalStateException` if Sign hasn't initialized. | | `getNametagManager()` | Shorthand for `get().getNametagManager()`. | --- ## INametagManager Manages all active nametags. Retrieved via `SignAPI.getNametagManager()`. ```java INametagManager manager = SignAPI.getNametagManager(); INametag nametag = manager.get(player); ``` | Method | Description | |---|---| | `get(Player)` | Returns a player's nametag, or `null` if none exists. | | `getAll()` | Returns all active nametags. | | `create(Player)` | Creates a nametag for a player. | | `remove(Player)` | Removes and despawns a player's nametag. | | `createAll()` | Creates nametags for all online players. | | `removeAll()` | Removes all nametags. | --- ## INametag Represents a single player's nametag. Provides visibility control and line overrides. ### Visibility | Method | Description | |---|---| | `getPlayer()` | The player this nametag belongs to. | | `showForAll()` | Shows the nametag to all online players. | | `hideForAll()` | Hides the nametag from all online players. | | `updateVisibilityForAll()` | Recalculates visibility for all viewers. | | `show(Player)` | Shows the nametag to a specific viewer. | | `hide(Player)` | Hides the nametag from a specific viewer. | | `update(Player)` | Sends updated metadata to a viewer. | ### Overrides Overrides replace the configured nametag lines with custom content until released or the plugin is reloaded. | Method | Description | |---|---| | `setLines(List<String>)` | Override lines for all viewers. | | `setLines(Player, List<String>)` | Override lines for a specific viewer. | | `release()` | Clear the global override. | | `release(Player)` | Clear a per-viewer override. | | `hasOverride()` | `true` if a global override is active. | | `hasOverride(Player)` | `true` if the viewer has any override (per-viewer or global). | --- ## SignReloadEvent Fired after a successful `/sign reload`. All nametags have been recreated at this point, so any overrides set before the reload are gone. ```java @EventHandler public void onSignReload(SignReloadEvent event) { // Re-apply overrides here } ``` --- ## BaseEvent Abstract base class for all Sign events. Extends Bukkit's `Event` with a `call()` convenience method that fires the event via `Bukkit.getPluginManager().callEvent(this)`. --- ## Related Pages - [[Sign/Developers/Overview]] — getting started with the API - [[Sign/Server Owners/Commands]] — `/sign reload` triggers `SignReloadEvent`