ranks/API.md

79 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

2020-12-14 02:36:45 -08:00
Ranks API
=========
The ranks API allows you to register, unregister, and manage ranks.
`ranks.register(name, def)`
* Register a new rank
* `name`: Name for rank (name cannot be `clear`)
* `def`: See [#Rank definition]
`ranks.unregister(name)`
* Unregister a rank
* `name`: Name of rank
`ranks.list_plaintext()`
* Returns a plaintext, comma-separated list of ranks
`ranks.get_rank(player)`
* Returns the player's rank or `nil`
* `player`: PlayerRef or string
`ranks.get_def(name)`
* Returns the rank definition or `nil`
* `name`: Name of rank
`ranks.update_privs(player)`
* Checks and updates player privileges based on rank definition
* Returns `true` if successful, `nil` if player has no rank
* Automatically called `on_joinplayer` and on `ranks.set_rank`
* `player`: PlayerRef or string
`ranks.update_nametag(player)`
* Checks and updates player nametag based on rank definition
* Returns `true` if successful, `nil` if player has no rank
* Automatically called `on_joinplayer` and on `ranks.set_rank`
* `player`: PlayerRef or string
`ranks.set_rank(player, rank)`
* Changes a player's rank
* Returns `true` if successful, `nil` if rank doesn't exist
* `player`: PlayerRef or string
* `rank`: Name of rank
`ranks.remove_rank(player)`
* Removes all ranking information from a player
* `player`: PlayerRef or string
`ranks.chat_send(name, message)`
* Simulates a chat message being sent to all players from a ranked player
* `name`: Sender player name
* `message`: Message to send
#### Rank definition
```lua
{
prefix = "Moderator", -- Prefix to be shown on nametag and chat
colour = {a = 255, r = 255, g = 83, b = 37}, -- A table of RGBA values, a single base colour (e.g. "red"), or a hex string
strict_privs = false, -- Whether the rank should have a strict set of privileges (prevents privileges from being granted/revoked)
grant_missing = true, -- Whether missing privileges should be automatically granted
revoke_extra = false, -- Whether extra privileges should be automatically revoked
privs = { -- Default privileges (usage modified by above items)
interact = true,
shout = true,
fly = true,
fast = true,
...
}
}
```