chat3/API.md

133 lines
4.2 KiB
Markdown

Chat3 API
=========
Main API
--------
`chat3.colorize(name, color, msg)`
* Checks protocol of `name` and if recent enough returns the colourized `msg`
* This does not send the message to the player, but just returns the message.
* `name`: Name of player to whom the colorized message is to be sent
* `color`: Hex-code or color name (string)
* `msg`: Message to colorize
`chat3.send(name, msg, prefix, source)`
* Simulate a message being sent to all players
* `name`: Sender player name
* `msg`: Message to send
* `prefix`: An optional string to prefix the colourized message and username
* `source`: Used by ranks to allow compatibility between ranks and chat3
Ignore API
----------
`chat3.ignore.get(name)`
* Returns table of ignored players (e.g.
* `{ignoring = {name1 = true, ...}, ignored_by = {name2 = true, ...}}`)
* `name`: Player username
`chat3.ignore.set(name, list)`
* Set a player's ignore list
* `name`: Player username
* `list`: Table of names (e.g. (e.g.
* `{ignoring = {name1 = true, ...}, ignored_by = {name2 = true, ...}}`)
`chat3.ignore.add_name(name, ignore)`
* Returns `success` if `ignore` was added to `name`'s `ignoring` list and `name`
* to `ignore`'s `ignored_by` list
* `name`: Name of player to whose ignore list `ignore` should be added
* `ignore`: Player username to ignore
`chat3.ignore.remove_name(name, unignore)`
* Returns `success` if `ignore` was removed from `name`'s `ignoring` list and
* `name` from `ignore`'s `ignored_by` list
`chat3.ignore.clear(name)`
* Returns `success` if `name`'s ignore list was cleared
* This should be used over `chat3.ignore.set(name, nil)` as it also clears
* `ignored_by` lists and notifies no longer ignored players.
`name`: Name of player whose ignore list should be cleared
`chat3.ignore.can(name, check)`
* Returns `true` if the player can be ignored
* If the player cannot be ignored they will be removed from the ignore list of
* the player ignoring them.
* `name`: Name of player whose ignore list is to be checked
* `check`: Player username to check if ignored
`chat3.ignore.is(name, check)`
* Returns `true` if the player is being ignored
* `name`: Name of player whose ignore list is to be checked
* `target`: Player Object of player to check the ignore list of
`chat3.ignore.add(name, ignore)`
* Returns `success, message` after attempting to ignore a player
* Verbose, chat-friendly version of `chat3.ignore.add_name`
* `name`: Name of player to whose ignore list `ignore` should be added
* `ignore`: Player username to attempt to ignore
`chat3.ignore.remove(name, unignore)`
* Returns `success, message` after attempting to remove a player from another's
* ignore list.
* Verbose, chat-friendly version of `chat3.ignore.remove_name`
* `name`: Name of player from whose ignore list `unignore` should be removed
* `player`: Player username to attempt to unignore
`chat3.ignore.check(name, check)`
* Returns `result, message` after attempting to find out if `check` is being
* ignored by `name`.
* `name`: Name of player whose ignore list should be checked
* `check`: Player username to check if being ignored
`chat3.ignore.list(name, subtable)`
* Returns a table containing a list of players being ignored by `name`, or `nil`
* if none, in a format suitable for use with `table.concat` (e.g. `{name1, name2, ...}`).
* `name`: Name of player whose ignore list should be listed
* `subtable`: Table to return (`ignoring` or `ignored_by`)
Alternate Username API
----------------------
`chat3.alt.get(name)`
* Returns table of alternate usernames (e.g. `{name1 = true, name2 = true, ...}`)
* `name`: Player username
`chat3.alt.set(name, list)`
* Set a player's alternate username list
* `name`: Player username
* `list`: Table of alternate usernames (e.g. `{name1 = true, name2 = true, ...}`)
`chat3.alt.add(name, alt)`
* Add an alternate username (returns `nil` if max has been reached or if the
alternate username already exists)
* `name`: Base player username
* `alt`: New alternate username
`chat3.alt.remove(name, alt)`
* Remove an alternate username (returns `nil` if the username already does not
exist)
* `name`: Base player username
* `alt`: Alternate username to remove
`chat3.alt.list(name)`
* Returns a table with a list of alternate usernames (suitable for `table.concat`)
* `name`: Player username