Skip to content

Commands

Zach | xDest edited this page Nov 12, 2017 · 1 revision

Commands

This page is to provide a slightly more involved description of each command (Updated as of v2.2.0)

  • Command

    • Label: --<label>
    • Args: --<label> [required arg1] <optional arg2>
    • Role required: The role needed to be able to execute this command
    • Verification: Whatever parameters or other factors are needed to run this command
    • (Optional) Description: A small summary of this command
    • Results:
      • A list of results
      • That occur from different
      • Conditions
  • Command:Sub Commmand (Occurs when sub commands of a command require too much information)

    • Label: --<super-label> <label> (Ex: --fspeak all where fspeak is the super-label and all is the label for the sub command)
    • Args: ` [required arg1]
    • Role required: The role needed to execute this sub command
    • Verification: Whatever...
    • (Optional) Description: Description of this sub command
    • Results:
      • Etc

More complex sub command with arguments example: --<label> [command/command2/command3/command4] [arg1(command1/command3)/arg2(command2/command4)] <[arg3(command2/command4)]/arg4(command1)>

For the first set of [ ], there are 4 sub commands and it is required to use one of the four. The second set of [ ] indicate there is a second required argument. This means all four sub commands will require a second argument. arg1(command1/command3) indicate that arg1 will be used for commands 1 and 3, and arg2(command2/command4) will be used for commands 2 and 4. The final "argument group" are the set of < >. This indicates this arg group can be optional. We can see that the first argument is actually required if you are using command 2 or 4. However, looking at the second argument in we can see that arg4 is only optional for command 1.

By default, output will always be directed to the channel in which the command was sent in. @ refers to a mention. This could mention a role or a user, or anything else that is mentionable.


  • Hello
    • Label: hello
    • Args: None
    • Role required: None
    • Verification: Verified by default
    • Results:
      • Outputs Hello, @<sender>
  • Cool
    • Label: cool
    • Args: None
    • Role required: None
    • Verification: Verified by default
    • Results:
      • Outputs :thecool: emoji, if it exists on the server.
  • Shutdown
    • Label: shutdown
    • Args: None
    • Role required: sd
    • Verification: Verified by default
    • Results:
      • If user has sd role: Shuts down the bot after sending "Au revoir :thecool:`.
      • If user does not have the sd role, Outputs "Sorry, you don't have PERMISSION TO END ME."
  • Force Speak
    • Label: fspeak
    • Args: `--fspeak [text-channel] [message...]
    • Role required: sd
    • Verification: Verified by default (channel must exist)
    • Results:
      • Outputs the message to the specified channel, if it exists.
      • If the user does not have the sd role, nothing happens.
  • Help
    • Label: help
    • Args: --help <command>
    • Role required: None
    • Verification: Verified by default
    • Results:
      • Outputs the help text associated with the specified command.
  • Text to Speech
    • Label: tts
    • Args: --tts <true/false>
    • Role required: sd
    • Verification: Verified by default
    • Description: MDCBot has a TTSMode, disabled by default. With TTS mode enabled (--tts true), the bot will output all text as if it had used the command /tts <message>
    • Results:
      • If user does not have the sd role, nothing happens.
      • If there is no argument provided, outputs the current TTS state of the bot.
      • <true/false>: Sets the TTS state of the bot to true or false. This enables or disables the bot speaking it's messages. Outputs confirmation.
  • Commands List
    • Label: commands
    • Args: None
    • Role required: None
    • Verification: Verified by default
    • Results:
      • Outputs a list of all commands.
  • Game
    • Label: game
    • Args: --game [join/leave] [game]
    • Role required: None
    • Verification: Will not execute if the roll of @g_<game> does not exist. Produces error output.
    • Description: Used for users to be able to subscribe to notifications for players who are seeking other people to play with. For example, someone who wanted to play overwatch could send @g_overwatch in a message. Anyone who had run --game join overwatch would have the role @g_overwatch and (assuming the role was mentionable), would receive a notification.
    • Results:
      • Assigns or removes the role @g_<game> to the requesting user. If the user already (or does not have) the role, the bot will output "@user (already has / does not have) the role @g_`
  • Timeout
    • Label: timeout
    • Args: --timeout [@target/roll]
    • Role required: None
    • Verification: Depends on sub command
    • Description: This is a base command, and does nothing on its on. The two sub commands are @user and roll
    • Results:
      • None, sub commands provide output.
  • Timeout:Timeout user
    • Label: @target
    • Args: The label is the argument, in this case
    • Role required: None
    • Verification: The target user cannot be in the cool down period.
    • Description: Attempts to create a vote to send the user @target to "timeout." If a vote exists, it votes to send the @target to timeout. Users sent to timeout will be assigned the timeout roll. It will either be removed after 15 minutes, or when the user uses the --timeout roll command to roll a 15 or higher. Every user who escapes time out is given a 24 hour grace period in which they cannot be targeted. This period is removed when the bot is restarted.
    • Results:
      • Creates a vote with a voting period of 30 seconds to send the @target to timeout. Sends confirmation.
      • Votes to send the @target to timeout. Sends confirmation.
      • (Fail) Informs sender that the user is in a 24h grace period.
  • Timeout:Roll
    • Label: roll
    • Args: None
    • Role required: None
    • Verification: Sender must have the timeout roll.
    • Description: Used to escape the timeout roll.
    • Results:
      • Selects a random number [0,20], if the number is 15 or higher the timeout role is removed from the sender.
  • Duel
    • Label: duel
    • Args: --duel [@user/accept/reject/stats/attack/quit] <[@user(accept/reject)]/@user(stats)>
    • Role required: None
    • Verification: Based on sub commands
    • Description: The duel command (or its sub commands) are used to create duels with other users, attack in those duels, and look at the stats of users who have fought before. Players in duels have 12 HP and an AC of 12.
    • Results:
      • Sub commands
  • Duel:@user
    • Label: @user
    • Args: The label is the argument, in this case
    • Role required: None
    • Verification: User must not be in a duel
    • Description: Initiates a duel request with a the target @user. If the user is already in a duel, the request will not be created. The same applies to if the sender is in a duel.
    • Results:
      • Creates a duel request with the participants target @user and the sender. Outputs duel confirmation.
  • Duel:accept
    • Label: accept
    • Args: [@user]
    • Role required: None
    • Verification: The accepter and @user must have a pending duel request.
    • Description: Accepts a duel request between the two users and starts the duel in the channel in which the request was created in.
    • Results:
      • Starts duel with the two users.
  • Duel:reject
    • Label: reject
    • Args: [@user]
    • Role required: None
    • Verification: The rejecter and @user must have a pending duel request.
    • Description: Rejects a duel request between the two users and disbands the duel.
    • Results:
      • Disbands duel with the two users.
  • Duel:attack
    • Label: attack
    • Args: None
    • Role required: None
    • Verification: The sender must be in an active duel. It must be the senders turn to attack
    • Description: Attacks the opponent in the duel the sender is in, if it's their turn. Attacks with a 1d20. If the roll is <=12, the attack misses. On hit, the user rolls a 1d6 to decide damage. Rolling a 20 doubles damage, and rolling a 1 gives the opponent a free attack in which it is impossible for them to roll a 1.
    • Results:
      • Does an attack attempt at the opponent.
  • Duel:quit
    • Label: quit
    • Args: None
    • Role required: None
    • Verification: The sender must be in an active duel
    • Description: Quits / disbands the duel the sender is in. There is no effect on the users stats.
    • Results:
      • Disbands the duel the sender is in.
  • Duel:stats
    • Label: stats
    • Args: <@user>
    • Role required: None
    • Verification: Verified by default
    • Description: Retrieves a users duel stats. Shows their wins, losses, and current win streak.
    • Results:
      • Displays duel stats of a user.

Clone this wiki locally