Commands

Players, chat and mail

modules/players.yml and modules/chat.yml

Private messages#

Command Permission
/msg <player> <message> chorus.chat.msg
/reply <message> chorus.chat.reply
/rtoggle chorus.chat.reply
/msgtoggle chorus.chat.toggle
/ignore <player|list> chorus.chat.ignore
/socialspy chorus.chat.spy

/reply answers whoever you last spoke to, in either direction.

/rtoggle chooses which end of a conversation /reply answers. It only matters when one is interrupted: you write to Anna, Ben writes to you, and /r has to pick.

Message text reaches chat as plain text, so a player cannot smuggle colour codes or formatting into somebody else's screen.

Turning messages off#

/msgtoggle turns private messages off entirely. /ignore <player> turns off one person and remembers it between sessions; /ignore list shows who.

Either way the sender is told the same thing — that the player is not taking messages — so being ignored is never announced.

chorus.chat.ignore.bypass reaches anybody regardless.

Social spy#

chat:
  spy-enabled: true

/socialspy shows staff a copy of everybody else's private messages. spy-enabled: false stops it working for everyone, permission or not.

Mail#

Command Permission
/mail read chorus.mail.use
/mail send <player> <message> chorus.mail.send
/mail sendall <message> chorus.mail.all
/mail clear chorus.mail.use

Letters for players who were not online to hear it said. Whoever they are for is told how much is waiting the next time they log in, and reading marks the whole inbox as seen.

/mail read <player> needs chorus.mail.read.others and leaves the inbox unread, because staff looking into a complaint should not change what the player is about to see.

mail:
  keep-days: 60
  inbox-size: 50
  page-size: 8
  max-length: 256
Key What it does
keep-days Letters older than this are dropped at startup. 0 keeps them for ever.
inbox-size The most one player may have waiting. A sender is told when the inbox is full rather than having the letter quietly dropped.
page-size How many one page shows. Maximum 20.
max-length Anything past this is cut off.

There is a [Mail] service sign too — see Utility, signs and powertools.

Players#

Command Permission
/afk [reason] chorus.players.afk
/seen <player> chorus.players.seen
/playtime [player] chorus.players.playtime
/whois <player> chorus.players.whois
/list chorus.players.list
/nick [player] <name|off> chorus.players.nick
/realname <nickname> chorus.players.realname
/ptime <day|night|reset> [player] chorus.players.ptime
/pweather <clear|rain|reset> [player] chorus.players.pweather

Away#

players:
  auto-afk-minutes: 5
  kick-after-minutes: 0
  broadcast: true
Key What it does
auto-afk-minutes Minutes of standing still before a player is marked away on their own. 0 leaves /afk as the only way in.
kick-after-minutes Minutes away before an away player is disconnected. 0 never kicks anyone.
broadcast Tells everyone else when somebody goes away or comes back.

Nicknames#

players:
  max-nick-length: 16

Counted in letters rather than colour codes.

/nick <name> renames yourself, /nick off puts it back. /nick <player> <name> needs chorus.players.nick.others, and colour codes need chorus.players.nick.colour.

/realname <nickname> finds the username behind one.

Looking players up#

/seen shows when a player was last online. chorus.players.seen.address adds the address and any accounts sharing it.

/whois shows everything known about a player. chorus.players.whois.ip adds the address.

/playtime on somebody else needs chorus.players.playtime.others.

GeoIP#

players:
  geoip:
    enabled: false
    endpoint: 'https://ipapi.co/%address%/country_name/'

Adds the country to /whois, for whoever holds chorus.players.whois.country.

There is no country in a player's connection. The only way to know is to ask a service outside this server, which means sending that player's address to it. That is a real decision, so it is off until you turn it on. Answers are kept until the next restart.

Personal time and weather#

/ptime and /pweather change what one player alone sees. On somebody else they need .others.

Config reference#

# modules/players.yml
enabled: true

players:
  auto-afk-minutes: 5
  kick-after-minutes: 0
  broadcast: true
  max-nick-length: 16
  geoip:
    enabled: false
    endpoint: 'https://ipapi.co/%address%/country_name/'

commands:
  defaults: ...
  afk: ...
  seen: ...
  playtime: ...
  whois: ...
  list: ...
  nick: ...
  realname: ...
  ptime: ...
  pweather: ...
# modules/chat.yml
enabled: true

chat:
  spy-enabled: true

mail:
  keep-days: 60
  inbox-size: 50
  page-size: 8
  max-length: 256

commands:
  defaults: ...
  msg: ...
  reply: ...
  socialspy: ...
  msgtoggle: ...
  ignore: ...
  mail: ...
  rtoggle: ...

Permissions#

Permission Effect
chorus.chat.msg /msg
chorus.chat.reply /reply and /rtoggle
chorus.chat.toggle /msgtoggle
chorus.chat.ignore /ignore
chorus.chat.ignore.bypass Messages from this player are never ignored
chorus.chat.spy /socialspy and receiving the copies
chorus.mail.use /mail
chorus.mail.send Sending mail
chorus.mail.all /mail sendall
chorus.mail.read.others Reading another player's mail
chorus.players.afk /afk
chorus.players.seen /seen
chorus.players.seen.address Adds the address and shared accounts
chorus.players.playtime /playtime
chorus.players.playtime.others On another player
chorus.players.whois /whois
chorus.players.whois.ip Adds the address
chorus.players.whois.country Adds the country, when GeoIP is on
chorus.players.list /list
chorus.players.nick /nick
chorus.players.nick.others Renaming another player
chorus.players.nick.colour Colour codes in a nickname
chorus.players.realname /realname
chorus.players.ptime / .others /ptime
chorus.players.pweather / .others /pweather