# INameTagAPI
> Main interface providing access to all Name Tag nickname and skin operations.
`gg.lode.nametagapi.INameTagAPI`
---
## Signature
```java
public interface INameTagAPI
```
---
## Nickname Methods
| Method | Return Type | Description |
|--------|-------------|-------------|
| `setNickname(Player, String)` | `void` | Set a player's display name. Supports MiniMessage formatting. |
| `setNickname(Player, Component)` | `void` | Set a player's display name using an Adventure Component. |
| `setNickname(Player, String, String)` | `void` | Set a player's display name and apply a fake rank for TAB display. |
| `setNickFromPlayer(Player, String)` | `void` | Disguise a player as another player — sets both name and skin. |
| `setNickFromPlayer(Player, String, String)` | `void` | Disguise a player as another player and apply a fake rank for TAB display. |
| `resetNickname(Player)` | `void` | Reset only the player's display name to their original. |
| `resetNick(Player)` | `void` | Fully reset the player — restores original name, skin, and display names. |
| `resetAllNicks()` | `void` | Reset all online players and wipe all stored nick data. |
## Random Nick Methods
| Method | Return Type | Description |
|--------|-------------|-------------|
| `randomNick(Player)` | `void` | Assign a random nickname and skin. Picks a random fake rank if LuckPerms is present. |
| `randomNick(Player, String)` | `void` | Assign a random nickname and skin, forcing a specific LuckPerms group as the fake rank. |
## Fake Rank Methods
> Requires LuckPerms. Fake ranks only affect TAB display (prefix/suffix) — no permissions are modified.
| Method | Return Type | Description |
|--------|-------------|-------------|
| `setFakeRank(Player, String)` | `void` | Apply a fake rank override for TAB display without changing the nickname. The `groupName` must be a valid LuckPerms group. |
| `clearFakeRank(Player)` | `void` | Remove the fake rank override, restoring LuckPerms-driven TAB display. |
## Skin Methods
| Method | Return Type | Description |
|--------|-------------|-------------|
| `setSkinFromPlayer(Player, String)` | `void` | Apply another player's skin by name. |
| `setSkinFromMineskinId(Player, String)` | `boolean` | Apply a skin from a Mineskin skin ID. Returns `false` if fetch fails. |
| `setSkinFromMineskinUrl(Player, String)` | `boolean` | Apply a skin from a Mineskin URL. Returns `false` if fetch fails. |
| `setSkinFromTextureAndSignature(Player, String, String)` | `boolean` | Apply a skin from raw texture value and signature. |
| `resetSkin(Player)` | `void` | Reset only the player's skin to their original. |
## Query Methods
| Method | Return Type | Description |
|--------|-------------|-------------|
| `hasNick(Player)` | `boolean` | Whether the player is currently nicked. |
| `getNick(Player)` | `@Nullable String` | The player's current nickname, or `null`. |
| `getNick(UUID)` | `@Nullable String` | Get a nickname by UUID (works for offline players in storage). |
| `getNickComponent(Player)` | `@Nullable Component` | The nickname as an Adventure Component. |
| `getNickComponent(UUID)` | `@Nullable Component` | The nickname as an Adventure Component by UUID. |
| `getSkin(Player)` | `@Nullable Skin` | The player's current custom [[Name Tag/API/Skin\|Skin]], or `null`. |
| `getSkin(UUID)` | `@Nullable Skin` | Get a custom [[Name Tag/API/Skin\|Skin]] by UUID. |
| `getSkinFromMineskinId(String)` | `@Nullable Skin` | Fetch a [[Name Tag/API/Skin\|Skin]] from a Mineskin ID without applying it. |
| `getSkinFromMineskinUrl(String)` | `@Nullable Skin` | Fetch a [[Name Tag/API/Skin\|Skin]] from a Mineskin URL without applying it. |
## UUID Spoofing
| Method | Return Type | Description |
|--------|-------------|-------------|
| `shouldChangeUniqueId(boolean)` | `void` | Enable or disable UUID spoofing at runtime. |
| `shouldChangeUniqueId()` | `boolean` | Whether UUID spoofing is currently enabled. |
---
## Usage
```java
INameTagAPI api = NameTagAPI.getApi();
// Disguise a player
api.setNickFromPlayer(player, "Notch");
// Disguise as another player and show a specific rank in TAB
api.setNickFromPlayer(player, "Notch", "admin");
// Set only the display name
api.setNickname(player, "<gradient:gold:yellow>GoldenPlayer</gradient>");
// Set display name with a fake rank shown in TAB
api.setNickname(player, "GoldenPlayer", "vip");
// Random nick (auto-picks a random eligible fake rank if LuckPerms is present)
api.randomNick(player);
// Random nick, force a specific rank in TAB
api.randomNick(player, "mod");
// Change only the TAB rank without renicking
api.setFakeRank(player, "owner");
// Remove fake rank (TAB reverts to real LuckPerms rank)
api.clearFakeRank(player);
// Check and reset
if (api.hasNick(player)) {
api.resetNick(player);
}
```
---
## Related Pages
- [[Name Tag/API/NameTagAPI]]
- [[Name Tag/API/Skin]]
- [[Name Tag/API/NickPlayer]]