Ronhorn Bot

Ronhorn is Longhorn Riichi’s Discord Bot, which supports two categories of slash commands:

  1. commands specific to Longhorn Riichi’s club operations (/register, /enter_score, etc.)
  2. commands that provide utilities for online mahjong games like Mahjong Soul and Tenhou (/skill, /parse, etc.)

It also tracks and records online games played in the club’s Mahjong Soul lobbies. This documentation only covers the active component (Discord slash commands).

Club Operation Commands

Help commands

/help

Privately displays help about club online games, including the Mahjong Soul lobby IDs and how to start club games.

/help_commands

Privately displays a list of bot commands and their usages.

/help_officer_commands

Privately displays a list of officer-only bot commands and their usages. (only usable by officers)

Registration commands

/register real_name [friend_id]

Registers the user’s Discord account with the club. Registration is required to show up on the club leaderboard. Must enter a preferred name, and optionally the user’s Mahjong Soul account. Can be used to update an existing registration.

/unregister

Removes your own registration (from /register).

/unregister_other server_member

Unregister a given Discord user. (only usable by officers)

Membership Management Commands

/update_membership server_member membership

Updates a given Discord user’s paid membership status. (only usable by officers)

/replace_role old_role [new_role]

Removes a role from everyone, or replace a role with another one for everyone with that role. (only usable by officers)

E.g., replacing all “@Paid Member” with “@Past Paid Member” when a new season starts

Club Game Commands

/enter_scores game_type east_player east_score south_player south_score west_player west_score [north_player] [north_score] [riichi_sticks]

Records scores for an in-person game. Inputs scores according to starting seats (e.g. east_player is the starting East player.) If the given scores don’t total up to the expected total score, the submission is rejected. (only usable by officers)

Records scores for a given Mahjong Soul club game. (only usable by officers)

/toggle_auto_match enabled

Enables or disables auto-matching for a given lobby. (only usable by officers)

/check_queues [check_voice_channel] [exclude1] [exclude2] [exclude3] [exclude4]

Checks to see if everyone is queued up in the Mahjong Soul club lobbies. Has an option to check the voice channel for players instead. exclude1 to exclude4 excludes certain users in the voice channel from the check, useful if certain voice channel members wish to be excluded from games.

/start_queued_games

Start games for everyone queued up in the Mahjong Soul club lobbies.

Ongoing game commands (Officer Only)

/terminate_any_game lobby nickname

/pause_any_game lobby nickname

/unpause_any_game lobby nickname

Ongoing game commands

/terminate_own_game lobby

/pause_own_game lobby

/unpause_own_game lobby

Online Mahjong Utilities

Injustice Judge Commands

Analyzes your Mahjong Soul or Tenhou game log to find instances of mahjong injustice for a given player. Mahjong injustice is when the bot finds perceived unluckiness.

Detailed documentation can be found here.

`/injustice` command example

Analyzes your Mahjong Soul or Tenhou game log to find instances of mahjong skill for all players. Mahjong skill is when the bot finds perceived luckiness.

Detailed documentation can be found here.

`/skill` command example

Outputs a list of hands from your Mahjong Soul or Tenhou game, including info like round number, round result, and optionally the round winner’s starting hand and/or winning hand (optionally only mangan+ hands, like the example below).

`/parse` command example

Miscellaneous Commands

/display text

Writes a message, replacing mahjong notation (like 123p 3z3Z3z) with mahjong tile emotes. /display can also display dora tiles, which is beyond the capabilities of the Jekyll Mahjong plugin.

`/display` command example

/nodocchi tenhou_name

Gets a Nodocchi link for a given tenhou.net username.

/amae_koromo majsoul_name

Gets an Amae-Koromo link for a given Mahjong Soul username.

Club Tech Stack

For details about the club tech stack, including this website and all club bots, please visit Longhorn Riichi GitHub. As of September 2023, the primary contributors are Peter and Dani (find us on our server).