h:
  desc: "Either shows a help for a single command, or DMs you help link if no parameters are specified."
  args:
    - "{0}cmds"
    - ""
gencmdlist:
  desc: "Generates the command list and sends it to the chat. Optionally also uploads it to DO spaces (not supported)."
  args:
    - ""
donate:
  desc: "Instructions for helping the project financially."
  args:
    - ""
modules:
  desc: "Lists all bot modules."
  args:
    - ""
commands:
  desc: "List all of the bot's commands from the specified module. You can either specify the full name or only the first few letters of the module name. Specifying no module will show the list of modules instead."
  args:
    - "Admin"
    - "Admin --view 1"
    - ""
greetdel:
  desc: "Sets the time it takes (in seconds) for greet messages to be auto-deleted. Set it to 0 to disable automatic deletion."
  args:
    - "0"
    - "30"
greet:
  desc: "Toggles anouncements on the current channel when someone joins the server."
  args:
    - ""
greetmsg:
  desc: |-
    Sets a new join announcement message which will be shown in the server's channel.
    Type `%user.mention%` if you want to mention the new member.   
    Full list of placeholders can be found here <https://nadekobot.readthedocs.io/en/latest/placeholders/>
    Using it with no message will show the current greet message.  
    You can use embed json from <https://eb.nadeko.bot/> instead of a regular text, if you want the message to be embedded.
  args:
    - "Welcome, %user.mention%."
bye:
  desc: "Toggles anouncements on the current channel when someone leaves the server."
  args:
    - ""
byemsg:
  desc: |- 
    Sets a new leave announcement message. 
    Type `%user.mention%` if you want to show the name the user who left. 
    Full list of placeholders can be found here <https://nadekobot.readthedocs.io/en/latest/placeholders/>  
    Using this command with no message will show the current bye message. 
    You can use embed json from <https://eb.nadeko.bot/> instead of a regular text, if you want the message to be embedded.
  args:
    - "%user.mention% has left."
byedel:
  desc: "Sets the time it takes (in seconds) for bye messages to be auto-deleted. Set it to `0` to disable automatic deletion."
  args:
    - "0"
    - "30"
greetdm:
  desc: "Toggles whether the greet messages will be sent in a DM (This is separate from greet - you can have both, any or neither enabled)."
  args:
    - ""
greettest:
  desc: "Sends the greet message in the current channel as if you just joined the server. You can optionally specify a different user."
  args:
    - ""
    - "@SomeoneElse"
greetdmtest:
  desc: "Sends the greet direct message to you as if you just joined the server. You can optionally specify a different user."
  args:
    - ""
    - "@SomeoneElse"
byetest:
  desc: "Sends the bye message in the current channel as if you just left the server. You can optionally specify a different user."
  args:
    - ""
    - "@SomeoneElse"
boost:
  desc: "Toggles anouncements on the current channel when someone boosts the server."
  args:
    - ""
boostmsg:
  desc: |-
    Sets a new boost announcement message. 
    Type `%user.mention%` if you want to show the name the user who left. 
    Full list of placeholders can be found here <https://nadekobot.readthedocs.io/en/latest/placeholders/>
    Using this command with no message will show the current boost message. 
    You can use embed json from <https://eb.nadeko.bot/> instead of a regular text, if you want the message to be embedded.
  args:
    - "%user.mention% has boosted the server!!!"
boostdel:
  desc: "Sets the time it takes (in seconds) for boost messages to be auto-deleted. Set it to `0` to disable automatic deletion."
  args:
    - "0"
    - "30"
logserver:
  desc: "Enables or Disables ALL log events. If enabled, all log events will log to this channel."
  args:
    - "enable"
    - "disable"
logignore:
  desc: "Toggles whether the `{0}logserver` command ignores the specified channel or user. Provide no arguments to see the list of currently ignored users and channels"
  args:
    - ""
    - "@SomeUser"
    - "#some-channel"
repeatlist:
  desc: "Shows currently repeating messages and their indexes."
  args:
    - ""
repeatremove:
  desc: "Removes a repeating message on a specified index. Use `{0}repeatlist` to see indexes."
  args:
    - "2"
repeatinvoke:
  desc: "Immediately shows the repeat message on a certain index and restarts its timer."
  args:
    - "1"
repeat:
  desc: "Repeat a message once every specified amount of time in the current channel. You can instead specify time of day for the message to be repeated daily (make sure you've set your server's timezone). If you've specified time of day, you can still override the default daily interval with your own interval. You can have up to 5 repeating messages on the server in total."
  args:
    - "Hello there"
    - "1h5m Hello @erryone"
    - "10:00 Daily have a nice day! This will execute once every 24h."
    - "21:00 30m Starting at 21 and every 30 minutes after that i will send this message!"
repeatredundant:
  desc: "Specify repeater's index (use `{0}repli` to find it) to toggle whether that repeater's message should be reposted if the last message in the channel is the same repeater's message. This is useful if you want to remind everyone to be nice in the channel every so often, but don't want to have the bot spam the channel. This is NOT useful if you want to periodically ping someone."
  args:
    - "1"
rotateplaying:
  desc: "Toggles rotation of playing status of the dynamic strings you previously specified."
  args:
    - ""
addplaying:
  desc: "Adds a specified string to the list of playing strings to rotate. You have to pick either 'Playing', 'Watching' or 'Listening' as the first parameter."
  args:
    - "Playing with you"
    - "Watching you sleep"
listplaying:
  desc: "Lists all playing statuses with their corresponding number."
  args:
    - ""
removeplaying:
  desc: "Removes a playing string on a given number."
  args:
    - ""
vcrolelist:
  desc: "Shows a list of currently set voice channel roles."
  args:
    - ""
vcrole:
  desc: "Sets or resets a role which will be given to users who join the voice channel you're in when you run this command. Provide no role name to disable. You must be in a voice channel to run this command."
  args:
    - "SomeRole"
    - ""
vcrolerm:
  desc: "Removes vcrole associated with the specified voice channel ID. This is useful if your vcrole has been enabled on a VC which has been deleted."
  args:
    - "123123123123123"
asar:
  desc: "Adds a role to the list of self-assignable roles. You can also specify a group. If 'Exclusive self-assignable roles' feature is enabled, users will be able to pick one role per group."
  args:
    - "Gamer"
    - "1 Alliance"
    - "1 Horde"
rsar:
  desc: "Removes a specified role from the list of self-assignable roles."
  args:
    - "Gamer"
    - "Alliance"
    - "Horde"
lsar:
  desc: "Lists self-assignable roles. Shows 20 roles per page."
  args:
    - ""
    - "2"
sargn:
  desc: "Sets a self assignable role group name. Provide no name to remove."
  args:
    - "1 Faction"
    - "2"
togglexclsar:
  desc: "Toggles whether the self-assigned roles are exclusive. While enabled, users can only have one self-assignable role per group."
  args:
    - ""
iam:
  desc: "Adds a role to you that you choose. Role must be on a list of self-assignable roles."
  args:
    - "Gamer"
iamnot:
  desc: "Removes a specified role from you. Role must be on a list of self-assignable roles."
  args:
    - "Gamer"
expradd:
  desc: "Add a custom reaction with a trigger and a response. Running this command in server requires the Administration permission. Running this command in DM is Bot Owner only and adds a new global custom reaction. Guide here: <http://nadekobot.readthedocs.io/en/latest/custom-reactions/>"
  args:
    - "\"hello\" Hi there %user.mention%"
exprlist:
  desc: |- 
    Lists global or server custom reactions (20 commands per page).
    Running the command in DM will list global custom reactions, while running it in a server will list server custom reactions.
    Shows enabled settings, followed by id, followed by the trigger.
    **Settings:** 
    • 🗯️ Triggered if trigger matches any word (`{0}h {0}crca`)
    • ✉️ Response will be DMed (`{0}h {0}crdm`)
    • ❌ Trigger will be deleted (`{0}h {0}crad`)
  args:
    - "1"
    - "all"
exprshow:
  desc: "Shows a custom reaction's response on a given ID."
  args:
    - "1"
exprdelete:
  desc: "Deletes a custom reaction on a specific index. If ran in DM, it is bot owner only and deletes a global custom reaction. If ran in a server, it requires Administration privileges and removes server custom reaction."
  args:
    - "5"
exprclear:
  desc: "Deletes all custom reactions on this server."
  args:
    - ""
fwclear:
  desc: "Deletes all filtered words on this server."
  args:
    - ""
aliasesclear:
  desc: "Deletes all aliases on this server."
  args:
    - ""
autoassignrole:
  desc: |-
    Toggles the role which will be assigned to every user who joins the server.
    You can run this command multiple times to add multiple roles (up to 3).
    Specifying the role that is already added will remove that role from the list.
    Provide no parameters to list current roles.
  args:
    - ""
    - "RoleName"
leave:
  desc: "Makes Nadeko leave the server. Either server name or server ID is required."
  args:
    - "123123123331"
slowmode:
  desc: "Toggles slowmode on the current channel with the specified amount of time. Provide no parameters to disable."
  args:
    - ""
    - "27s"
    - "3h15m5s"
delmsgoncmd:
  desc: "Toggles the automatic deletion of the user's successful command message to prevent chat flood. You can use it either as a server toggle, channel whitelist, or channel blacklist, as channel option has 3 settings: Enable (always do it on this channel), Disable (never do it on this channel), and Inherit (respect server setting). Use `list` parameter to see the current states."
  args:
    - ""
    - "channel enable"
    - "ch inherit"
    - "list"
restart:
  desc: "Restarts the bot. Might not work."
  args:
    - ""
setrole:
  desc: "Gives a role to a user. The role you specify has to be lower in the role hierarchy than your highest role."
  args:
    - "@User Guest"
removerole:
  desc: "Removes a role from a user. The role you specify has to be lower in the role hierarchy than your highest role."
  args:
    - "@User Admin"
renamerole:
  desc: "Renames a role. The role you specify has to be lower in the role hierarchy than your highest role."
  args:
    - "\"First role\" SecondRole"
removeallroles:
  desc: "Removes all roles which are lower than your highest role in the role hierarchy from the user you specify."
  args:
    - "@User"
rolehoist:
  desc: "Toggles whether this role is displayed in the sidebar or not. The role you specify has to be lower in the role hierarchy than your highest role."
  args:
    - "Guests"
    - "\"Space Wizards\""
createrole:
  desc: "Creates a role with a given name."
  args:
    - "Awesome Role"
deleterole:
  desc: "Deletes a role with a given name."
  args:
    - "Awesome Role"
rolecolor:
  desc: "Set a role's color using its hex value. Provide no color in order to see the hex value of the color of the specified role. The role you specify has to be lower in the role hierarchy than your highest role."
  args:
    - "Admin"
    - "ffba55 Admin"
ban:
  desc: "Bans a user by ID or name with an optional message. You can specify a time string before the user name to ban the user temporarily."
  args:
    - "@Someone Get out!"
    - "\"Some Guy#1234\" Your behaviour is toxic."
    - "1d12h @Someone Come back when u chill"
softban:
  desc: "Bans and then unbans a user by ID or name with an optional message."
  args:
    - "@Someone Get out!"
    - "\"Some Guy#1234\" Your behaviour is toxic."
kick:
  desc: "Kicks a mentioned user."
  args:
    - "@Someone Get out!"
    - "\"Some Guy#1234\" Your behaviour is toxic."
mute:
  desc: "Mutes a mentioned user both from speaking and chatting. You can also specify time string for how long the user should be muted. You can optionally specify a reason."
  args:
    - "@Someone"
    - "@Someone too noisy"
    - "1h30m @Someone"
    - "1h30m @Someone too noisy"
voiceunmute:
  desc: "Gives a previously voice-muted user a permission to speak."
  args:
    - "@Someguy"
deafen:
  desc: "Deafens mentioned user or users."
  args:
    - "\"@Someguy\""
    - "\"@Someguy\" \"@Someguy\""
undeafen:
  desc: "Undeafens mentioned user or users."
  args:
    - "\"@Someguy\""
    - "\"@Someguy\" \"@Someguy\""
delvoichanl:
  desc: "Deletes a voice channel with a given name."
  args:
    - "VoiceChannelName"
creatvoichanl:
  desc: "Creates a new voice channel with a given name."
  args:
    - "VoiceChannelName"
deltxtchanl:
  desc: "Deletes a text channel with a given name."
  args:
    - "TextChannelName"
creatxtchanl:
  desc: "Creates a new text channel with a given name."
  args:
    - "TextChannelName"
settopic:
  desc: "Sets a topic on the current channel."
  args:
    - "My new topic"
setchanlname:
  desc: "Changes the name of the current channel."
  args:
    - "NewName"
prune:
  desc: "`{0}prune` removes all Nadeko's messages in the last 100 messages. `{0}prune X` removes last `X` number of messages from the channel (up to 100). `{0}prune @Someone` removes all Someone's messages in the last 100 messages. `{0}prune @Someone X` removes last `X` number of 'Someone's' messages in the channel. You can use the `-s` / `--safe` parameter at the end to only prune messages that are not pinned."
  args:
    - ""
    - "-s"
    - "5"
    - "5 --safe"
    - "@Someone"
    - "@Someone --safe"
    - "@Someone X"
    - "@Someone X -s"
die:
  desc: "Shuts the bot down."
  args:
    - ""
setname:
  desc: "Gives the bot a new name."
  args:
    - "BotName"
setnick:
  desc: "Changes the nickname of the bot on this server. You can also target other users to change their nickname."
  args:
    - "BotNickname"
    - "@SomeUser New Nickname"
setavatar:
  desc: "Sets a new avatar image for the NadekoBot. Parameter is a direct link to an image."
  args:
    - "http://i.imgur.com/xTG3a1I.jpg"
setgame:
  desc: "Sets the bots game status to either Playing, Listening, or Watching."
  args:
    - "Playing with snakes."
    - "Watching anime."
    - "Listening music."
send:
  desc: "Sends a message to someone on a different server through the bot.  Separate server and channel/user ids with `|` and prefix the channel id with `c:` and the user id with `u:`."
  args:
    - "serverid|c:channelid message"
    - "serverid|u:userid message"
savechat:
  desc: "Saves a number of messages to a text file and sends it to you."
  args:
    - "150"
remind:
  desc: "Sends a message to you or a channel after certain amount of time (max 2 months). First parameter is `me`/`here`/'channelname'. Second parameter is time in a descending order (mo>w>d>h>m) example: 1w5d3h10m. Third parameter is a (multiword) message."
  args:
    - "me 1d5h Do something"
    - "#general 1m Start now!"
reminddelete:
  desc: "Deletes a reminder on the specified index. You can specify 'server' option if you're an Administrator, and you want to delete a reminder on this server created by someone else. "
  args:
    - "3"
    - "server 2"
remindlist:
  desc: "Lists all reminders you created. You can specify 'server' option if you're an Administrator to list all reminders created on this server. Paginated."
  args:
    - "1"
    - "server 2"
serverinfo:
  desc: "Shows info about the server the bot is on. If no server is supplied, it defaults to current one."
  args:
    - "Some Server"
channelinfo:
  desc: "Shows info about the channel. If no channel is supplied, it defaults to current one."
  args:
    - "#some-channel"
userinfo:
  desc: "Shows info about the user. If no user is supplied, it defaults a user running the command."
  args:
    - "@SomeUser"
whosplaying:
  desc: "Shows a list of users who are playing the specified game."
  args:
    - "Overwatch"
inrole:
  desc: "Lists every person from the specified role on this server. You can specify a page before the role to jump to that page. Provide no role to list users who have no roles"
  args:
    - "RoleName"
    - "5 RoleName"
    - ""
checkperms:
  desc: "Checks yours or bot's user-specific permissions on this channel."
  args:
    - "me"
    - "bot"
stats:
  desc: "Shows some basic stats for Nadeko."
  args:
    - ""
userid:
  desc: "Shows user ID."
  args:
    - ""
    - "@Someone"
channelid:
  desc: "Shows current channel ID."
  args:
    - ""
serverid:
  desc: "Shows current server ID."
  args:
    - ""
roles:
  desc: "List roles on this server or roles of a user if specified. Paginated, 20 roles per page."
  args:
    - "2"
    - "@Someone"
channeltopic:
  desc: "Sends current channel's topic as a message."
  args:
    - ""
chnlfilterinv:
  desc: "Toggles automatic deletion of invites posted in the channel. Does not negate the `{0}srvrfilterinv` enabled setting. Does not affect users with the Administrator permission."
  args:
    - ""
srvrfilterinv:
  desc: "Toggles automatic deletion of invites posted in the server. Does not affect users with the Administrator permission."
  args:
    - ""
chnlfilterlin:
  desc: "Toggles automatic deletion of links posted in the channel. Does not negate the `{0}srvrfilterlin` enabled setting. Does not affect users with the Administrator permission."
  args:
    - ""
srvrfilterlin:
  desc: "Toggles automatic deletion of links posted in the server. Does not affect users with the Administrator permission."
  args:
    - ""
chnlfilterwords:
  desc: "Toggles automatic deletion of messages containing filtered words on the channel. Does not negate the `{0}srvrfilterwords` enabled setting. Does not affect users with the Administrator permission."
  args:
    - ""
filterword:
  desc: "Adds or removes (if it exists) a word from the list of filtered words. Use`{0}sfw` or `{0}cfw` to toggle filtering."
  args:
    - "poop"
srvrfilterwords:
  desc: "Toggles automatic deletion of messages containing filtered words on the server. Does not affect users with the Administrator permission."
  args:
    - ""
lstfilterwords:
  desc: "Shows a list of filtered words."
  args:
    - ""
permrole:
  desc: "Sets a role which can change permissions. Supply no parameters to see the current one. Type 'reset' instead of the role name to reset the currently set permission role. Users with the Administrator server permissions can use permission commands regardless of whether they have the specified role. There is no default permission role."
  args:
    - "Some Role"
    - "reset"
verbose:
  desc: "Toggles or sets whether to show when a command/module is blocked."
  args:
    - ""
    - "true"
srvrmdl:
  desc: "Sets a module's permission at the server level."
  args:
    - "ModuleName enable"
srvrcmd:
  desc: "Sets a command's permission at the server level."
  args:
    - "\"command name\" disable"
rolemdl:
  desc: "Sets a module's permission at the role level."
  args:
    - "ModuleName enable MyRole"
rolecmd:
  desc: "Sets a command's permission at the role level."
  args:
    - "\"command name\" disable MyRole"
chnlmdl:
  desc: "Sets a module's permission at the channel level."
  args:
    - "ModuleName enable SomeChannel"
chnlcmd:
  desc: "Sets a command's permission at the channel level."
  args:
    - "\"command name\" enable SomeChannel"
usrmdl:
  desc: "Sets a module's permission at the user level."
  args:
    - "ModuleName enable SomeUsername"
usrcmd:
  desc: "Sets a command's permission at the user level."
  args:
    - "\"command name\" enable SomeUsername"
allsrvrmdls:
  desc: "Enable or disable all modules for your server."
  args:
    - "[enable/disable]"
allchnlmdls:
  desc: "Enable or disable all modules in a specified channel."
  args:
    - "enable #SomeChannel"
allrolemdls:
  desc: "Enable or disable all modules for a specific role."
  args:
    - "[enable/disable] MyRole"
userblacklist:
  desc: |-
    Either [add]s or [rem]oves a user or users specified by a Mention or an ID from a blacklist.
    Specify no argument or a page number to list blacklisted users.
  args:
    - "add @SomeUser @SomeUser2 @SomeUser3"
    - "rem 12312312313"
    - ""
    - "4"
channelblacklist:
  desc: |-
    Either [add]s or [rem]oves a channel or channels specified an ID from a blacklist.
    Specify no argument or a page number to list blacklisted channels.
  args:
    - "add 12312312312 66666666666"
    - "rem 12312312312"
    - ""
    - "3"
serverblacklist:
  desc: |-
    Either [add]s or [rem]oves a server, or servers specified by an ID from a blacklist.
    Specify no argument or a page number to list blacklisted servers.
  args:
    - "add 12312321312"
    - "rem 12312321312"
    - ""
    - "2"
cmdcooldown:
  desc: "Sets a cooldown per user for a command or a custom reaction. Set it to 0 to remove the cooldown."
  args:
    - ".h 5"
    - ".pat 30"
allcmdcooldowns:
  desc: "Shows a list of all commands and their respective cooldowns."
  args:
    - ""
quoteadd:
  desc: "Adds a new quote with the specified name and message."
  args:
    - "sayhi Hi"
quoteprint:
  desc: "Prints a random quote with a specified name."
  args:
    - "abc"
quoteshow:
  desc: "Shows information about a quote with the specified ID."
  args:
    - "123"
quotesearch:
  desc: "Shows a random quote for a keyword that contains any text specified in the search."
  args:
    - "keyword text"
quoteid:
  desc: "Displays the quote with the specified ID number. Quote ID numbers can be found by typing `{0}liqu [num]` where `[num]` is a number of a page which contains 15 quotes."
  args:
    - "123456"
quotedelete:
  desc: "Deletes a quote with the specified ID. You have to either have the Manage Messages permission or be the creator of the quote to delete it."
  args:
    - "123456"
draw:
  desc: "Draws a card from this server's deck. You can draw up to 10 cards by supplying a number of cards to draw."
  args:
    - ""
    - "5"
drawnew:
  desc: "Draws a card from the NEW deck of cards. You can draw up to 10 cards by supplying a number of cards to draw."
  args:
    - ""
    - "5"
playlistshuffle:
  desc: "Shuffles the current playlist."
  args:
    - ""
flip:
  desc: "Flips coin(s) - heads or tails, and shows an image."
  args:
    - ""
    - "3"
betflip:
  desc: "Bet to guess will the result be heads or tails. Guessing awards you 1.95x the currency you've bet (rounded up). Multiplier can be changed by the bot owner."
  args:
    - "5 heads"
    - "3 t"
roll:
  desc: "Rolls 0-100. If you supply a number `X` it rolls up to 30 normal dice. If you split 2 numbers with letter `d` (`xdy`) it will roll `X` dice from 1 to `y`. `Y` can be a letter 'F' if you want to roll fate dice instead of dnd."
  args:
    - ""
    - "7"
    - "3d5"
    - "5dF"
rolluo:
  desc: "Rolls `X` normal dice (up to 30) unordered. If you split 2 numbers with letter `d` (`xdy`) it will roll `X` dice from 1 to `y`."
  args:
    - ""
    - "7"
    - "3d5"
nroll:
  desc: "Rolls in a given range. If you specify just one number instead of the range, it will role from 0 to that number."
  args:
    - "5"
    - "5-15"
race:
  desc: "Starts a new animal race."
  args:
    - ""
joinrace:
  desc: "Joins a new race. You can specify an amount of currency for betting (optional). You will get YourBet*(participants-1) back if you win."
  args:
    - ""
    - "5"
nunchi:
  desc: "Creates or joins an existing nunchi game. Users have to count up by 1 from the starting number shown by the bot. If someone makes a mistake (types an incorrect number, or repeats the same number) they are out of the game and a new round starts without them.  Minimum 3 users required."
  args:
    - ""
connect4:
  desc: "Creates or joins an existing connect4 game. 2 players are required for the game. Objective of the game is to get 4 of your pieces next to each other in a vertical, horizontal or diagonal line. You can specify a bet when you create a game and only users who bet the same amount will be able to join your game."
  args:
    - ""
raffle:
  desc: "Prints a name and ID of a random online user from the server, or from the online user in the specified role."
  args:
    - ""
    - "RoleName"
raffleany:
  desc: "Prints a name and ID of a random user from the server, or from the specified role."
  args:
    - ""
    - " RoleName"
give:
  desc: "Give someone a certain amount of currency. You can specify the reason after the mention."
  args:
    - "1 @Someone"
    - "5 @CootGurl Ur so pwetty"
award:
  desc: "Awards someone a certain amount of currency. You can specify the reason after the Username. You can also specify a role name to award currency to all users in a role."
  args:
    - "100 @person"
    - "5 Role Of Gamblers"
take:
  desc: "Takes the specified amount of currency from someone. You can specify a role instead to take the specified amount of currency from all users in the role."
  args:
    - "1 @Someone"
    - "50 SomeRole"
betroll:
  desc: "Bets a certain amount of currency and rolls a dice. Rolling over 66 yields x2 of your currency, over 90 - x4 and 100 x10."
  args:
    - "5"
wheeloffortune:
  desc: "Bets a certain amount of currency on the wheel of fortune. Wheel can stop on one of many different multipliers. Won amount is rounded down to the nearest whole number."
  args:
    - "10"
leaderboard:
  desc: "Displays the bot's currency leaderboard."
  args:
    - ""
trivia:
  desc: "Starts a game of trivia. You can add `nohint` to prevent hints. First player to get to 10 points wins by default. You can specify a different number. 30 seconds per question."
  args:
    - ""
    - "--timeout 5 -p -w 3 -q 10"
tl:
  desc: "Shows a current trivia leaderboard."
  args:
    - ""
tq:
  desc: "Quits current trivia after current question."
  args:
    - ""
typestart:
  desc: "Starts a typing contest."
  args:
    - ""
typestop:
  desc: "Stops a typing contest on the current channel."
  args:
    - ""
typeadd:
  desc: "Adds a new article to the typing contest."
  args:
    - "wordswords"
pollend:
  desc: "Stops active poll on this server and prints the results in this channel."
  args:
    - ""
pick:
  desc: "Picks the currency planted in this channel. If the plant has a password, you need to specify it."
  args:
    - ""
    - "passwd"
plant:
  desc: "Spend an amount of currency to plant it in this channel. Default is 1. You can specify the password after the amount. Password has to be alphanumeric and it will be trimmed down to 10 characters if it's longer."
  args:
    - "5"
    - "10 meow"
gencurrency:
  desc: "Toggles currency generation on this channel. Every posted message will have chance to spawn currency. Chance is specified by the Bot Owner. (default is 2%)"
  args:
    - ""
gencurlist:
  desc: "Shows the list of server and channel ids where gc is enabled. Paginated with 9 per page."
  args:
    - ""
choose:
  desc: "Chooses a thing from a list of things"
  args:
    - "Get up;Sleep;Sleep more"
rps:
  desc: "Play a game of Rocket-Paperclip-Scissors with Nadeko. You can bet on it. Multiplier is the same as on betflip."
  args:
    - "r 100"
    - "scissors"
linux:
  desc: "Prints a customizable Linux interjection"
  args:
    - "Spyware Windows"
next:
  desc: "Goes to the next song in the queue. You have to be in the same voice channel as the bot. You can skip multiple songs, but in that case songs will not be requeued if {0}rcs or {0}rpl is enabled."
  args:
    - ""
    - "5"
play:
  desc: "If no parameters are specified, acts as `{0}next 1` command. If you specify a song number, it will jump to that song. If you specify a search query, acts as a `{0}q` command"
  args:
    - ""
    - "5"
    - "Dream Of Venice"
stop:
  desc: "Stops the music and preserves the current song index. Stays in the channel."
  args:
    - ""
destroy:
  desc: "Completely stops the music and unbinds the bot from the channel. (may cause weird behaviour)"
  args:
    - ""
pause:
  desc: "Pauses or Unpauses the song."
  args:
    - ""
queue:
  desc: "Queue a song using keywords or a link. Bot will join your voice channel. **You must be in a voice channel**."
  args:
    - "Dream Of Venice"
queuenext:
  desc: "Works the same as `{0}queue` command, except it enqueues the new song after the current one. **You must be in a voice channel**."
  args:
    - "Dream Of Venice"
queuesearch:
  desc: "Search for top 5 youtube song result using keywords, and type the index of the song to play that song. Bot will join your voice channel. **You must be in a voice channel**."
  args:
    - "Dream Of Venice"
soundcloudqueue:
  desc: "Queue a soundcloud song using keywords. Bot will join your voice channel. **You must be in a voice channel**."
  args:
    - "Dream Of Venice"
listqueue:
  desc: "Lists 10 currently queued songs per page. Default page is 1."
  args:
    - ""
    - "2"
nowplaying:
  desc: "Shows the song that the bot is currently playing."
  args:
    - ""
volume:
  desc: "Sets the music playback volume (0-100%). Persistent server setting. Default 100"
  args:
    - "50"
playlist:
  desc: "Queues up to 500 songs from a youtube playlist specified by a link, or keywords."
  args:
    - "<youtube_playlist_link>"
soundcloudpl:
  desc: "Queue a Soundcloud playlist using a link."
  args:
    - "https://soundcloud.com/classical-music-playlist/sets/classical-music-essential-collection"
    - "<soundcloud_set_link>"
localplaylist:
  desc: "Queues all songs from a directory."
  args:
    - "C:/music/classical"
radio:
  desc: "Queues a radio stream from a link. It can be a direct mp3 radio stream, .m3u, .pls .asx or .xspf (Usage Video: <https://streamable.com/al54>)"
  args:
    - "radio link here"
local:
  desc: "Queues a local file by specifying a full path."
  args:
    - "C:/music/mysong.mp3"
join:
  desc: "Makes the bot join your voice channel."
  args:
    - ""
trackremove:
  desc: "Remove a song by its # in the queue, or 'all' (or provide no parameter) to remove all songs from the queue."
  args:
    - "5"
    - "all"
    - ""
movesong:
  desc: "Moves a song from one position to another."
  args:
    - "5 3"
setmaxqueue:
  desc: "Sets a maximum queue size. Specify no parameters to have no limit."
  args:
    - "50"
    - ""
queuerepeat:
  desc: "Sets music player repeat strategy for this server.\n- `n` / `no` - player will stop once it reaches the end of the queue\n- `s` / `song` - player will repeat current song\n- `q` / `queue` or empty - player will repeat entire music queue"
  args:
    - ""
    - "n"
    - "song"
save:
  desc: "Saves a playlist under a certain name. Playlist name must be no longer than 20 characters and must not contain dashes."
  args:
    - "classical1"
streamrole:
  desc: "Sets a role which is monitored for streamers (FromRole), and a role to add if a user from 'FromRole' is streaming (AddRole). When a user from 'FromRole' starts streaming, they will receive an 'AddRole'. You can only have 1 Stream Role per server. Provide no parameters to disable"
  args:
    - "\"Eligible Streamers\" \"Featured Streams\""
load:
  desc: "Loads a saved playlist using its ID. Use `{0}pls` to list all saved playlists and `{0}save` to save new ones."
  args:
    - "5"
playlists:
  desc: "Lists all playlists. Paginated, 20 per page."
  args:
    - "1"
playlistshow:
  desc: "Lists all songs in a playlist spepcified by its id. Paginated, 20 per page."
  args:
    - "1"
deleteplaylist:
  desc: "Deletes a saved playlist using its id. Works only if you made it or if you are the bot owner."
  args:
    - "5"
autoplay:
  desc: "Toggles autoplay - When the song is finished, automatically queue a related Youtube song. (Works only for Youtube songs and when queue is empty)"
  args:
    - ""
streamadd:
  desc: "Notifies this channel when the stream on the specified URL goes online or offline. Offline notifications will only show if you enable `{0}streamoff`. Maximum 10 per server."
  args:
    - "twitch.tv/someguy"
streamsclear:
  desc: "Removes all followed streams on this server."
  args:
    - ""
streamremove:
  desc: "Stops following the stream on the specified index. (use `{0}stl` to see indexes)"
  args:
    - "2"
streamlist:
  desc: "Lists all streams you are following on this server and their respective indexes."
  args:
    - ""
streamoffline:
  desc: "Toggles whether the bot will also notify when added streams go offline."
  args:
    - ""
streammessage:
  desc: "Sets the message which will show when the stream on the specified index comes online. You can use %user% and %platform% placeholders."
  args:
    - "1 Hey @erryone %user% is back online on %platform%!1!!"
streammessageall:
  desc: "Sets the message which will show when any of the currently followed streams comes online. This does not apply to the streams which get added afterwards. You can use %user% and %platform% placeholders."
  args:
    - "Hey @erryone %user% is back online!1!!"
streamcheck:
  desc: "Retrieves information about a stream."
  args:
    - "https://twitch.tv/somedude"
convert:
  desc: "Convert quantities. Use `{0}convertlist` to see supported dimensions and currencies."
  args:
    - "m km 1000"
convertlist:
  desc: "List of the convertible dimensions and currencies."
  args:
    - ""
wowjoke:
  desc: "Get one of Kwoth's penultimate WoW jokes."
  args:
    - ""
calculate:
  desc: "Evaluate a mathematical expression."
  args:
    - "1+1"
osu:
  desc: "Shows osu! stats for a player."
  args:
    - "Name"
    - "Name taiko"
gatari:
  desc: "Shows osu!gatari stats for a player."
  args:
    - "Name"
    - "Name ctb"
osu5:
  desc: "Displays a user's top 5 plays."
  args:
    - "Name"
pokemon:
  desc: "Searches for a pokemon."
  args:
    - "Sylveon"
pokemonability:
  desc: "Searches for a pokemon ability."
  args:
    - "overgrow"
memelist:
  desc: "Shows a list of template keys (and their repspective names) used for `{0}memegen`."
  args:
    - ""
memegen:
  desc: "Generates a meme from memelist with specified text. Separate multiple text values with semicolons. Provide no meme text to see an example meme with that template."
  args:
    - "biw gets iced coffee;in the winter"
    - "ntot"
weather:
  desc: "Shows weather data for a specified city. You can also specify a country after a comma."
  args:
    - "Moscow, RU"
youtube:
  desc: "Searches youtubes and shows the first result"
  args:
    - "query"
anime:
  desc: "Queries anilist for an anime and shows the first result."
  args:
    - "aquarion evol"
steam:
  desc: "Returns a store link for a steam game with the specified name. It doesn't work very well because bundles."
  args:
    - "Sakura Agent"
movie:
  desc: "Queries omdb for movies or series, show first result."
  args:
    - "Batman vs Superman"
manga:
  desc: "Queries anilist for a manga and shows the first result."
  args:
    - "Shingeki no kyojin"
randomcat:
  desc: "Shows a random cat image."
  args:
    - ""
randomdog:
  desc: "Shows a random dog image."
  args:
    - ""
randomfood:
  desc: "Shows a random food image."
  args:
    - ""
randombird:
  desc: "Shows a random bird image."
  args:
    - ""
image:
  desc: "Pulls a random image using a search parameter."
  args:
    - "cute kitten"
lmgtfy:
  desc: "Google something for an idiot."
  args:
    - "query"
google:
  desc: "Get a Google search link for some terms."
  args:
    - "query"
duckduckgo:
  desc: "Get duckduckgo search results."
  args:
    - "cat pictures"
hearthstone:
  desc: "Searches for a Hearthstone card and shows its image. Takes a while to complete."
  args:
    - "Ysera"
urbandict:
  desc: "Searches Urban Dictionary for a word."
  args:
    - "Pineapple"
catfact:
  desc: "Shows a random catfact from <http://catfacts-api.appspot.com/api/facts>"
  args:
    - ""
yomama:
  desc: "Shows a random joke from <http://api.yomomma.info/>"
  args:
    - ""
randjoke:
  desc: "Shows a random joke."
  args:
    - ""
chucknorris:
  desc: "Shows a random Chuck Norris joke."
  args:
    - ""
magicitem:
  desc: "Shows a random magic item from <https://1d4chan.org/wiki/List_of_/tg/%27s_magic_items>"
  args:
    - ""
revav:
  desc: "Returns a Google reverse image search for someone's avatar."
  args:
    - "@Someone"
revimg:
  desc: "Returns a Google reverse image search for an image from a link."
  args:
    - "Image link"
wiki:
  desc: "Gives you back a wikipedia link"
  args:
    - "query"
color:
  desc: "Shows you pictures of colors which correspond to the inputed hex values. Max 10."
  args:
    - "00ff00"
    - "f00 0f0 00f"
avatar:
  desc: "Shows a mentioned person's avatar."
  args:
    - "@Someone"
hentai:
  desc: "Shows a hentai image from a random website (gelbooru, danbooru, konachan or yandere) with a given tag. Tag(s) are optional but preferred. Maximum is usually 2 tags. Only 1 tag allowed."
  args:
    - "yuri"
nhentai:
  desc: "Shows basic information about a hentai with the specified id, or a valid nhentai search query."
  args:
    - "273426"
    - "cute girl"
autohentai:
  desc: "Posts a hentai every X seconds with a random tag from the provided tags. Use `|` to separate tag groups. Random group will be chosen every time the image is sent. Max 2 tags per group. 20 seconds minimum. Provide no parameters to disable."
  args:
    - "30 yuri kissing|tail long_hair"
    - ""
hentaibomb:
  desc: "Shows a total 5 images (from gelbooru, danbooru, konachan and yandere). Tag(s) are optional but preferred. Maximum is usually 2 tags."
  args:
    - "yuri"
yandere:
  desc: "Shows a random image from yandere with a given tag. Tag(s) are optional but preferred. Maximum is usually 2 tags."
  args:
    - "yuri kissing"
danbooru:
  desc: "Shows a random hentai image from danbooru with a given tag. Tag(s) are optional but preferred. Maximum is usually 2 tags."
  args:
    - "yuri kissing"
derpibooru:
  desc: "Shows a random image from derpibooru with a given tag. Tag(s) are optional but preferred. Maximum is usually 2 tags."
  args:
    - "yuri kissing"
gelbooru:
  desc: "Shows a random hentai image from gelbooru with a given tag. Tag(s) are optional but preferred. Maximum is usually 2 tags."
  args:
    - "yuri kissing"
sankaku:
  desc: "Shows a random hentai image from chan.sankakucomplex.com with a given tag. Tag(s) are optional but preferred. Maximum is usually 2 tags."
  args:
    - "yuri kiss"
rule34:
  desc: "Shows a random image from rule34.xx with a given tag. Tag(s) are optional but preferred. Maximum is usually 2 tags."
  args:
    - "yuri kissing"
e621:
  desc: "Shows a random hentai image from e621.net with a given tag. Tag(s) are optional but preferred. Maximum is usually 2 tags."
  args:
    - "yuri kissing"
safebooru:
  desc: "Shows a random image from safebooru with a given tag. Tag(s) are optional but preferred. Maximum is usually 2 tags."
  args:
    - "yuri kissing"
boobs:
  desc: "Real adult content."
  args:
    - ""
butts:
  desc: "Real adult content."
  args:
    - ""
translate:
  desc: "Translates text from the given language to the destination language."
  args:
    - "en fr Hello"
translangs:
  desc: "Lists the valid languages for translation."
  args:
    - ""
guide:
  desc: "Sends a readme and a guide links to the channel."
  args:
    - ""
calcops:
  desc: "Shows all available operations in the `{0}calc` command"
  args:
    - ""
delallquotes:
  desc: "Deletes all quotes on a specified keyword."
  args:
    - "kek"
greetdmmsg:
  desc: "Sets a new join announcement message which will be sent to the user who joined. Type `%user.mention%` if you want to mention the new member. Using it with no message will show the current DM greet message. You can use embed json from <https://eb.nadeko.bot> instead of a regular text, if you want the message to be embedded."
  args:
    - "Welcome to the server, %user.mention%"
cash:
  desc: "Check how much currency a person has. (Defaults to yourself)"
  args:
    - ""
    - "@Someone"
currencytransactions:
  desc: "Shows your currency transactions on the specified page. Bot owner can see other people's transactions too."
  args:
    - "2"
    - "@SomeUser 2"
listperms:
  desc: "Lists whole permission chain with their indexes. You can specify an optional page number if there are a lot of permissions."
  args:
    - ""
    - "3"
allusrmdls:
  desc: "Enable or disable all modules for a specific user."
  args:
    - "enable @Someone"
moveperm:
  desc: "Moves permission from one position to another in the Permissions list."
  args:
    - "2 4"
removeperm:
  desc: "Removes a permission from a given position in the Permissions list."
  args:
    - "1"
showemojis:
  desc: "Shows a name and a link to every SPECIAL emoji in the message."
  args:
    - "A message full of SPECIAL emojis"
emojiadd:
  desc: |-
    Adds the specified emoji to this server.
    You can specify a name before the emoji to add it under a different name.
    You can specify a name followed by an image link to add a new emoji from an image.
    You can omit imageUrl and instead upload the image as an attachment. 
    Image size has to be below 256KB.
  args:
    - ":someonesCustomEmoji:"
    - "MyEmojiName :someonesCustomEmoji:"
    - "owoNice https://cdn.discordapp.com/emojis/587930873811173386.png?size=128"
deckshuffle:
  desc: "Reshuffles all cards back into the deck."
  args:
    - ""
forwardmessages:
  desc: "Toggles forwarding of non-command messages sent to bot's DM to the bot owners"
  args:
    - ""
forwardtoall:
  desc: "Toggles whether messages will be forwarded to all bot owners or only to the first one specified in the creds.yml file"
  args:
    - ""
resetperms:
  desc: "Resets the bot's permissions module on this server to the default value."
  args:
    - ""
antiraid:
  desc: "Sets an anti-raid protection on the server. Provide no parameters to disable. First parameter is number of people which will trigger the protection. Second parameter is a time interval in which that number of people needs to join in order to trigger the protection, and third parameter is punishment for those people. You can specify an additional time argument to do a timed punishment for actions which support it (Ban, Mute, etc) up to 24h. Available punishments: Ban, Kick, Softban, Mute, VoiceMute, ChatMute, RemoveRoles"
  args:
    - "5 20 Kick"
    - "7 9 Ban"
    - "10 10 Ban 6h30m"
    - ""
antispam:
  desc: "Stops people from repeating same message X times in a row. Provide no parameters to disable. You can specify to either mute, kick or ban the offenders. You can specify an additional time argument to do a timed punishment for actions which support it (Ban, Mute, etc) up to 24h. Max message count is 10. Available punishments: Ban, Kick, Softban, Mute, VoiceMute, ChatMute, AddRole, RemoveRoles"
  args:
    - "3 Mute"
    - "5 Ban"
    - "5 Ban 3h30m"
    - ""
antialt:
  desc: "Applies a punishment action to any user whose account is younger than the specified threshold. Specify time after the punishment to have a timed punishment (not all punishments support timers)."
  args:
    - "1h Ban"
    - "3d Mute 1h"
chatmute:
  desc: "Prevents a mentioned user from chatting in text channels. You can also specify time string for how long the user should be muted. You can optionally specify a reason."
  args:
    - "@Someone"
    - "@Someone stop writing"
    - "15m @Someone"
    - "1h30m @Someone"
    - "1h @Someone chill"
voicemute:
  desc: "Prevents a mentioned user from speaking in voice channels. User has to be in a voice channel in order for the command to have an effect. You can also specify time string for how long the user should be muted. You can optionally specify a reason."
  args:
    - "@Someone"
    - "@Someone stop talking"
    - "15m @Someone"
    - "1h30m @Someone"
    - "1h @Someone silence"
konachan:
  desc: "Shows a random hentai image from konachan with a given tag. Tag(s) are optional but preferred. Maximum is usually 2 tags."
  args:
    - "yuri"
muterole:
  desc: "Sets a name of the role which will be assigned to people who should be muted. Provide no arguments to see currently set mute role. Default is nadeko-mute."
  args:
    - ""
    - "Silenced"
adsarm:
  desc: "Toggles the automatic deletion of the user's message and Nadeko's confirmations for `{0}iam` and `{0}iamn` commands."
  args:
    - ""
setstream:
  desc: "Sets the bots stream. First parameter is the twitch link, second parameter is stream name."
  args:
    - "TWITCHLINK Hello"
chatunmute:
  desc: "Removes a mute role previously set on a mentioned user with `{0}chatmute` which prevented him from chatting in text channels."
  args:
    - "@Someone"
unmute:
  desc: "Unmutes a mentioned user previously muted with `{0}mute` command."
  args:
    - "@Someone"
xkcd:
  desc: "Shows a XKCD comic. Specify no parameters to retrieve a random one. Number parameter will retrieve a specific comic, and \"latest\" will get the latest one."
  args:
    - ""
    - "1400"
    - "latest"
placelist:
  desc: "Shows the list of available tags for the `{0}place` command."
  args:
    - ""
place:
  desc: "Shows a placeholder image of a given tag. Use `{0}placelist` to see all available tags. You can specify the width and height of the image as the last two optional parameters."
  args:
    - "Cage"
    - "steven 500 400"
poll:
  desc: "Creates a public poll which requires users to type a number of the voting option in the channel command is ran in."
  args:
    - "Question?;Answer1;Answ 2;A_3"
autotranslang:
  desc: "Sets your source and target language to be used with `{0}at`. Specify no parameters to remove previously set value."
  args:
    - "en fr"
autotranslate:
  desc: "Starts automatic translation of all messages by users who set their `{0}atl` in this channel. You can set \"del\" parameter to automatically delete all translated user messages."
  args:
    - ""
    - "del"
listquotes:
  desc: "Lists all quotes on the server ordered alphabetically or by ID. 15 Per page."
  args:
    - "3"
    - "3 id"
typedel:
  desc: "Deletes a typing article given the ID."
  args:
    - "3"
typelist:
  desc: "Lists added typing articles with their IDs. 15 per page."
  args:
    - ""
    - "3"
listservers:
  desc: "Lists servers the bot is on with some basic info. 15 per page."
  args:
    - "3"
cleverbot:
  desc: "Toggles cleverbot session. When enabled, the bot will reply to messages starting with bot mention in the server. Custom reactions starting with %bot.mention% won't work if cleverbot is enabled."
  args:
    - ""
shorten:
  desc: "Attempts to shorten an URL, if it fails, returns the input URL."
  args:
    - "https://google.com"
wikia:
  desc: "Gives you back a fandom link"
  args:
    - "mtg Vigilance"
    - "mlp Dashy"
magicthegathering:
  desc: "Searches for a Magic The Gathering card."
  args:
    - "about face"
hangmanlist:
  desc: "Shows a list of hangman question categories."
  args:
    - ""
hangman:
  desc: "Starts a game of hangman in the channel. You can optionally select a category `{0}hangmanlist` to see a list of available categories."
  args:
    - ""
    - "movies"
hangmanstop:
  desc: "Stops the active hangman game on this channel if it exists."
  args:
    - ""
acrophobia:
  desc: "Starts an Acrophobia game."
  args:
    - ""
    - "-s 30"
logevents:
  desc: "Shows a list of all events you can subscribe to with `{0}log`"
  args:
    - ""
log:
  desc: "Toggles logging event. Disables it if it is active anywhere on the server. Enables if it isn't active. Use `{0}logevents` to see a list of all events you can subscribe to."
  args:
    - "userpresence"
    - "userbanned"
fairplay:
  desc: "Toggles fairplay. While enabled, the bot will prioritize songs from users who didn't have their song recently played instead of the song's position in the queue."
  args:
    - ""
define:
  desc: "Finds a definition of a word."
  args:
    - "heresy"
setmaxplaytime:
  desc: "Sets a maximum number of seconds (>14) a song can run before being skipped automatically. Set 0 to have no limit."
  args:
    - "0"
    - "270"
activity:
  desc: "Checks for spammers."
  args:
    - ""
setstatus:
  desc: "Sets the bot's status. (Online/Idle/Dnd/Invisible)"
  args:
    - "Idle"
invitecreate:
  desc: "Creates a new invite which has infinite max uses and never expires."
  args:
    - ""
invitelist:
  desc: "Lists all invites for this channel. Paginated with 9 per page."
  args:
    - ""
    - "3"
invitedelete:
  desc: "Deletes an invite on the specified index. Use `{0}invitelist` to see the list of invites."
  args:
    - "2"
pollstats:
  desc: "Shows the poll results without stopping the poll on this server."
  args:
    - ""
antilist:
  desc: "Shows currently enabled protection features."
  args:
    - ""
antispamignore:
  desc: "Toggles whether antispam ignores current channel. Antispam must be enabled."
  args:
    - ""
eventstart:
  desc: "Starts one of the events seen on public nadeko. Events: `reaction`, `gamestatus`"
  args:
    - "reaction"
    - "reaction -d 1 -a 50 --pot-size 1500"
slotstats:
  desc: "Shows the total stats of the slot command for this bot's session."
  args:
    - ""
slottest:
  desc: "Tests to see how much slots payout for X number of plays."
  args:
    - "1000"
slot:
  desc: "Play Nadeko slots. 1 second cooldown per user."
  args:
    - "5"
affinity:
  desc: "Sets your affinity towards someone you want to be claimed by. Setting affinity will reduce their `{0}claim` on you by 20%. Provide no parameters to clear your affinity. 30 minutes cooldown."
  args:
    - "@MyHusband"
    - ""
waifuclaim:
  desc: "Claim a waifu for yourself by spending currency.  You must spend at least 10% more than her current value unless she set `{0}affinity` towards you."
  args:
    - "50 @Himesama"
waifureset:
  desc: "Resets your waifu stats, except current waifus."
  args:
    - ""
waifutransfer:
  desc: "Transfer the ownership of one of your waifus to another user. You must pay 10%  of your waifu's value unless that waifu has affinity towards you, in which case you must pay 60% fee. Transferred waifu's price will be reduced by the fee amount."
  args:
    - "@ExWaifu @NewOwner"
waifugift:
  desc: -|
    Gift an item to someone. This will increase their waifu value by a percentage of the gift's value.
    Negative gifts will not show up in waifuinfo.
    Provide no parameters to see a list of items that you can gift.
  args:
    - ""
    - "Rose @Himesama"
waifulb:
  desc: "Shows top 9 waifus. You can specify another page to show other waifus."
  args:
    - ""
    - "3"
divorce:
  desc: "Releases your claim on a specific waifu. You will get 50% of that waifu's value back, unless that waifu has an affinity towards you, in which case they will be reimbursed instead. 6 hours cooldown."
  args:
    - "@CheatingSloot"
waifuinfo:
  desc: "Shows waifu stats for a target person. Defaults to you if no user is provided."
  args:
    - "@MyCrush"
    - ""
mal:
  desc: "Shows basic info from a MyAnimeList profile."
  args:
    - "straysocks"
setmusicchannel:
  desc: "Sets the current channel as the default music output channel. This will output playing, finished, paused and removed songs to that channel instead of the channel where the first song was queued in. Persistent server setting."
  args:
    - ""
unsetmusicchannel:
  desc: "Bot will output playing, finished, paused and removed songs to the channel where the first song was queued in. Persistent server setting."
  args:
    - ""
musicquality:
  desc: "Gets or sets the default music player quality. Available settings: Highest, High, Medium, Low. Default is **Highest**. Provide no argument to see current setting."
  args:
    - ""
    - "High"
    - "Low"
imagesreload:
  desc: "Reloads images bot is using. Safe to use even when bot is being used heavily."
  args:
    - ""
stringsreload:
  desc: "Reloads localized bot strings."
  args:
    - ""
shardstats:
  desc: |-
    Stats for shards. Paginated with 25 shards per page.
    Format: `[status] | # [shard_id] | [last_heartbeat] | [server_count]`
  args:
    - ""
    - "2"
restartshard:
  desc: "Try (re)connecting a shard with a certain shardid when it dies. No one knows will it work. Keep an eye on the console for errors."
  args:
    - "2"
tictactoe:
  desc: "Starts a game of tic tac toe. Another user must run the command in the same channel in order to accept the challenge. Use numbers 1-9 to play."
  args:
    - ""
timezones:
  desc: "Lists all timezones available on the system to be used with `{0}timezone`."
  args:
    - ""
timezone:
  desc: "Sets this guilds timezone. This affects bot's time output in this server (logs, etc..)"
  args:
    - ""
    - "GMT Standard Time"
languagesetdefault:
  desc: "Sets the bot's default response language. All servers which use a default locale will use this one. Setting to `default` will use the host's current culture. Provide no parameters to see currently set language."
  args:
    - "en-US"
    - "default"
languageset:
  desc: "Sets this server's response language. If bot's response strings have been translated to that language, bot will use that language in this server. Reset by using `default` as the locale name. Provide no parameters to see currently set language."
  args:
    - "de-DE "
    - "default"
languageslist:
  desc: "List of languages for which translation (or part of it) exist atm."
  args:
    - ""
rategirl:
  desc: "Use the universal hot-crazy wife zone matrix to determine the girl's worth. It is everything young men need to know about women. At any moment in time, any woman you have previously located on this chart can vanish from that location and appear anywhere else on the chart."
  args:
    - "@SomeGurl"
exprreact:
  desc: "Sets or resets reactions (up to 3) which will be added to the response message of the CustomReaction with the specified ID. Provide no emojis to reset."
  args:
    - "59 \U0001F44D \U0001F44E "
    - "59 <a:nFlower:408963839191941120>"
    - "59"
exprad:
  desc: "Toggles whether the message triggering the custom reaction will be automatically deleted."
  args:
    - "59"
exprat:
  desc: "Toggles whether the custom reaction will allow extra input after the trigger. For example, with this feature enabled, custom reaction with trigger 'hi' will also be invoked when a user types 'hi there'. This feature is automatically enabled on custom reactions which have '%target%' in their response."
  args:
    - "59"
exprdm:
  desc: "Toggles whether the response message of the custom reaction will be sent as a direct message."
  args:
    - "44"
exprca:
  desc: "Toggles whether the custom reaction will trigger if the triggering message contains the keyword (instead of only starting with it)."
  args:
    - "44"
exprsreload:
  desc: "Reloads all custom reactions on all shards. Use this if you've made changes to the database while the bot is running, or used `{0}deleteunusedcrnq`"
  args:
    - ""
exprsimport:
  desc: "Upload the file or send the raw .yml data with this command to import all custom reactions from the specified string or file into the current server (or as global custom reactions in dm)"
  args:
    - "<upload .yml file>"
exprsexport:
  desc: "Exports custom reactions from the current server (or global custom reactions in DMs) into a .yml file"
  args:
    - ""
quotesimport:
  desc: "Upload the file or send the raw .yml data with this command to import all quotes from the specified string or file into the current server."
  args:
    - "<upload .yml file>"
quotesexport:
  desc: "Exports quotes from the current server into a .yml file"
  args:
    - ""
aliaslist:
  desc: "Shows the list of currently set aliases. Paginated."
  args:
    - ""
    - "3"
alias:
  desc: "Create a custom alias for a certain Nadeko command. Provide no alias to remove the existing one."
  args:
    - "allin {0}bf all h"
    - "\"linux thingy\" >loonix Spyware Windows"
warnlog:
  desc: "See a list of warnings of a certain user."
  args:
    - "@Someone"
warnlogall:
  desc: "See a list of all warnings on the server. 15 users per page."
  args:
    - ""
    - "2"
warn:
  desc: |-
    Warns a user with an optional reason.
    You can specify a warning weight integer before the user. For example, 3 would mean that this warning counts as 3 warnings.
  args:
    - "@Someone Very rude person"
    - "3 @Someone Very rude person"
startupcommandadd:
  desc: "Adds a command to the list of commands which will be executed automatically in the current channel, in the order they were added in, by the bot when it startups up."
  args:
    - "{0}stats"
autocommandadd:
  desc: "Adds a command to the list of commands which will be executed automatically every X seconds."
  args:
    - "60 {0}prune 1000"
startupcommandremove:
  desc: "Removes a startup command on the specified index."
  args:
    - "3"
autocommandremove:
  desc: "Removes an auto command on the specified index."
  args:
    - "3"
startupcommandsclear:
  desc: "Removes all startup commands."
  args:
    - ""
startupcommandslist:
  desc: "Lists all startup commands in the order they will be executed in."
  args:
    - ""
autocommandslist:
  desc: "Lists all auto commands and the intervals in which they execute."
  args:
    - ""
unban:
  desc: "Unbans a user with the provided user#discrim or id."
  args:
    - "kwoth#1234"
    - "123123123"
banmessage:
  desc: "Sets a ban message template which will be used when a user is banned from this server. You can use embed strings and ban-specific placeholders: %ban.mod%, %ban.user%, %ban.duration% and %ban.reason%. You can disable ban message with `{0}banmsg -`"
  args:
    - "%ban.user%, you've been banned from %server.name%. Reason: %ban.reason%"
    - "{{ \"description\": \"%ban.user% you have been banned from %server.name% by %ban.mod%\" }}"
banmessagetest:
  desc: "If ban message is not disabled, bot will send you the message as if you were banned by yourself. Used for testing the ban message."
  args:
    - "No reason"
    - "1h Test 1 hour ban message"
banmsgreset:
  desc: "Resets ban message to default. If you want to completely disable ban messages, use `{0}banmsg -`"
  args:
    - ""
wait:
  desc: "Used only as a startup command. Waits a certain number of miliseconds before continuing the execution of the following startup commands."
  args:
    - "3000"
warnexpire:
  desc: "Gets or sets the number of days after which the warnings will be cleared automatically. This setting works retroactively. If you want to delete the warnings instead of clearing them, you can set the `--delete` optional parameter. Provide no parameter to see currently set expiry"
  args:
    - ""
    - "3"
    - "6 --delete"
warnclear:
  desc: "Clears all warnings from a certain user. You can specify a number to clear a specific one."
  args:
    - "@PoorDude 3"
    - "@PoorDude"
warnpunishlist:
  desc: "Lists punishments for warnings."
  args:
    - ""
warnpunish:
  desc: "Sets a punishment for a certain number of warnings. You can specify a time string after 'Ban' or *'Mute' punishments to make it a temporary mute/ban. Provide no punishment to remove. Available punishments: Ban, Kick, Softban, Mute, VoiceMute, ChatMute, AddRole, RemoveRoles"
  args:
    - "3"
    - "5 Ban"
    - "5 Mute 2d12h"
    - "4 AddRole toxic 1h"
ping:
  desc: "Ping the bot to see if there are latency issues."
  args:
    - ""
time:
  desc: "Shows the current time and timezone in the specified location."
  args:
    - "London, UK"
shop:
  desc: "Lists this server's administrators' shop. Paginated."
  args:
    - ""
    - "2"
shopadd:
  desc: "Adds an item to the shop by specifying type price and name. Available types are role and list. 90% of currency from each purchase will be received by the user who added the item to the shop."
  args:
    - "role 1000 Rich"
shopremove:
  desc: "Removes an item from the shop by its ID."
  args:
    - "1"
shopchangename:
  desc: "Change the name of a shop entry at the specified index. Only works for non-role items"
  args:
    - "3 Cool stuff"
shopchangeprice:
  desc: "Change the price of a shop entry at the specified index. Specify the index of the entry, followed by the price"
  args:
    - "1 500"
shopswap:
  desc: "Swap the index of two shop entries"
  args:
    - "1 5"
shopmove:
  desc: "Moves the shop entry from the current index to a new one"
  args:
    - "2 4"
buy:
  desc: "Buys an item from the shop on a given index. If buying items, make sure that the bot can DM you."
  args:
    - "2"
gamevoicechannel:
  desc: "Toggles game voice channel feature in the voice channel you're currently in. Users who join the game voice channel will get automatically redirected to the voice channel with the name of their current game, if it exists. Can't move users to channels that the bot has no connect permission for. One per server."
  args:
    - ""
shoplistadd:
  desc: "Adds an item to the list of items for sale in the shop entry given the index. You usually want to run this command in the secret channel, so that the unique items are not leaked."
  args:
    - "1 Uni-que-Steam-Key"
globalcommand:
  desc: "Toggles whether a command can be used on any server."
  args:
    - "{0}stats"
globalmodule:
  desc: "Toggles whether a module can be used on any server."
  args:
    - "nsfw"
globalpermlist:
  desc: "Lists global permissions set by the bot owner."
  args:
    - ""
resetglobalperms:
  desc: "Resets global permissions set by bot owner."
  args:
    - ""
prefix:
  desc: "Sets this server's prefix for all bot commands. Provide no parameters to see the current server prefix. **Setting prefix requires Administrator server permission.**"
  args:
    - "+"
defprefix:
  desc: "Sets bot's default prefix for all bot commands. Provide no parameters to see the current default prefix. This will not change this server's current prefix."
  args:
    - "+"
verboseerror:
  desc: "Toggles or sets whether the bot should print command errors when a command is incorrectly used."
  args:
    - ""
    - "false"
streamrolekeyword:
  desc: "Sets keyword which is required in the stream's title in order for the streamrole to apply. Provide no keyword in order to reset."
  args:
    - ""
    - "PUBG"
streamroleblacklist:
  desc: "Adds or removes a blacklisted user. Blacklisted users will never receive the stream role."
  args:
    - "add @Someone#1234"
    - "rem @Someone#1234"
streamrolewhitelist:
  desc: "Adds or removes a whitelisted user. Whitelisted users will receive the stream role even if they don't have the specified keyword in their stream title."
  args:
    - "add @Someone#1234"
    - "rem @Someone#1234"
config:
  desc: |-
    Gets or sets configuration values.
    Provide no arguments to see the list of configs you can edit/view.
    Provide config name to see all properties in that configuration and their values.
    Provide config name and property name to see that property's description and value.
    Provide config name, property name and value to set that property to the new value.
  args:
    - ""
    - "bot"
    - "bot color.ok"
    - "bot color.ok ff0000"
configreload:
  desc: "Reloads specified configuration"
  args:
    - "bot"
    - "gambling"
nsfwtagblacklist:
  desc: "Toggles whether the tag is blacklisted or not in nsfw searches. Provide no parameters to see the list of blacklisted tags."
  args:
    - "poop"
experience:
  desc: "Shows your xp stats. Specify the user to show that user's stats instead."
  args:
    - ""
    - "@someguy"
xptemplatereload:
  desc: "Reloads the xp template file. Xp template file allows you to customize the position and color of elements on the `{0}xp` card."
  args:
    - ""
xpexclusionlist:
  desc: "Shows the roles and channels excluded from the XP system on this server, as well as whether the whole server is excluded."
  args:
    - ""
xpexclude:
  desc: "Exclude a channel, role or current server from the xp system."
  args:
    - "Role Excluded-Role"
    - "Server"
xpnotify:
  desc: "Sets how the bot should notify you when you get a `server` or `global` level. This is a personal setting and affects only how you receive Global or Server level-up notifications. You can set `dm` (for the bot to send you a direct message), `channel` (to get notified in the channel you sent the last message in) or `none` to disable."
  args:
    - "global dm"
    - "server channel"
xpleveluprewards:
  desc: "Shows currently set level up rewards."
  args:
    - ""
xprewsreset:
  desc: "Resets all currently set xp level up rewards."
  args:
    - ""
xprolereward:
  desc: |-
   Add or remove a role from the user who reaches the specified level.
   Provide no action and role name in order to remove the role reward.
  args:
    - "1 rm Newbie"
    - "3 add Social"
    - "5 add Member"
    - "5"
xpcurrencyreward:
  desc: "Sets a currency reward on a specified level. Provide no amount in order to remove the reward."
  args:
    - "3 50"
xpleaderboard:
  desc: "Shows current server's xp leaderboard."
  args:
    - ""
xpgloballeaderboard:
  desc: "Shows the global xp leaderboard."
  args:
    - ""
xpadd:
  desc: "Adds xp to a user on the server. This does not affect their global ranking. You can use negative values."
  args:
    - "100 @Someone"
clubcreate:
  desc: "Creates a club. You must be at least level 5 and not be in the club already."
  args:
    - "My Brand New Club"
clubtransfer:
  desc: "Transfers the ownership of the club to another member of the club."
  args:
    - "@Someone"
clubinformation:
  desc: "Shows information about the club."
  args:
    - "My Brand New Club#23"
clubapply:
  desc: "Apply to join a club. You must meet that club's minimum level requirement, and not be on its ban list."
  args:
    - "My Brand New Club#23"
clubaccept:
  desc: "Accept a user who applied to your club."
  args:
    - "user#1337"
clubleave:
  desc: "Leaves the club you're currently in."
  args:
    - ""
clubdisband:
  desc: "Disbands the club you're the owner of. This action is irreversible."
  args:
    - ""
clubkick:
  desc: "Kicks the user from the club. You must be the club owner. They will be able to apply again."
  args:
    - "user#1337"
clubban:
  desc: "Bans the user from the club. You must be the club owner. They will not be able to apply again."
  args:
    - "user#1337"
clubunban:
  desc: "Unbans the previously banned user from the club. You must be the club owner."
  args:
    - "user#1337"
clublevelreq:
  desc: "Sets the club required level to apply to join the club. You must be club owner. You can't set this number below 5."
  args:
    - "7"
clubdescription:
  desc: "Sets the club description. Maximum 150 characters. Club owner only."
  args:
    - "This is the best club please join."
clubicon:
  desc: "Sets the club icon."
  args:
    - "https://i.imgur.com/htfDMfU.png"
clubapps:
  desc: "Shows the list of users who have applied to your club. Paginated. You must be club owner to use this command."
  args:
    - "2"
clubbans:
  desc: "Shows the list of users who have banned from your club. Paginated. You must be club owner to use this command."
  args:
    - "2"
clubleaderboard:
  desc: "Shows club rankings on the specified page."
  args:
    - "2"
clubadmin:
  desc: "Assigns (or unassigns) staff role to the member of the club. Admins can ban, kick and accept applications."
  args:
    - "@Someone"
autoboobs:
  desc: "Posts a boobs every X seconds. 20 seconds minimum. Provide no parameters to disable."
  args:
    - "30"
    - ""
autobutts:
  desc: "Posts a butt every X seconds. 20 seconds minimum. Provide no parameters to disable."
  args:
    - "30"
    - ""
eightball:
  desc: "Ask the 8ball a yes/no question."
  args:
    - "Is b1nzy a nice guy?"
ytuploadnotif:
  desc: |-
    Subscribe to a youtube channel's upload rss feed.
    Shortcut for `.feed https://www.youtube.com/feeds/videos.xml?channel_id=%3Cyoutube_channel_id`
  args:
    - "https://www.youtube.com/channel/UCSJ4gkVC6NrvII8umztf0Ow"
feed:
  desc: "Subscribes to a feed. Bot will post an update up to once every 10 seconds. You can have up to 10 feeds on one server. All feeds must have unique URLs. Set a channel as a second optional parameter to specify where to send the updates."
  args:
    - "https://www.rt.com/rss/"
    - "https://www.rt.com/rss/ #updates"
feedremove:
  desc: "Stops tracking a feed on the given index. Use `{0}feeds` command to see a list of feeds and their indexes."
  args:
    - "3"
feedlist:
  desc: "Shows the list of feeds you've subscribed to on this server."
  args:
    - ""
expredit:
  desc: "Edits the custom reaction's response given its ID."
  args:
    - "123 I'm a magical girl"
say:
  desc: "Bot will send the message you typed in the specified channel. If you omit the channel name, it will send the message in the current channel. Supports embeds."
  args:
    - "hi"
    - "#chat hi"
sqlexec:
  desc: "Executes provided sql command and returns the number of affected rows. Dangerous."
  args:
    - "UPDATE DiscordUser SET CurrencyAmount=CurrencyAmount+1234"
sqlselect:
  desc: "Executes provided sql query and returns the results. Dangerous."
  args:
    - "SELECT * FROM DiscordUser LIMIT 5"
deletewaifus:
  desc: "Deletes everything from WaifuUpdates, WaifuItem and WaifuInfo tables."
  args:
    - ""
deletewaifu:
  desc: "Deletes everything from WaifuUpdates, WaifuItem and WaifuInfo tables for the specified user. Also makes specified user's waifus free."
  args:
    - ""
deletecurrency:
  desc: "Deletes everything from Currency and CurrencyTransactions."
  args:
    - ""
deleteplaylists:
  desc: "Deletes everything from MusicPlaylists."
  args:
    - ""
deletexp:
  desc: "Deletes everything from UserXpStats, Clubs and sets users' TotalXP to 0."
  args:
    - ""
discordpermoverride:
  desc: "Overrides required user permissions that the command has with the specified ones. You can only use server-level permissions. This action will make the bot ignore user permission requirements which command has by default. Provide no permissions to reset to default."
  args:
    - "{0}prune ManageMessages BanMembers"
    - "{0}prune"
discordpermoverridelist:
  desc: "Lists all discord permission overrides on this server."
  args:
    - ""
discordpermoverridereset:
  desc: "Resets ALL currently set discord permission overrides on this server. This will make all commands have default discord permission requirements."
  args:
    - ""
rafflecur:
  desc: "Starts or joins a currency raffle with a specified amount. Users who join the raffle will lose the amount of currency specified and add it to the pot. After 30 seconds, random winner will be selected who will receive the whole pot. There is also a `mixed` mode in which the users will be able to join the game with any amount of currency, and have their chances be proportional to the amount they've bet."
  args:
    - "20"
    - "mixed 15"
rip:
  desc: "Shows the inevitable fate of someone."
  args:
    - "@Someone"
autodisconnect:
  desc: "Toggles whether the bot should disconnect from the voice channel once it's done playing all of the songs and queue repeat option is set to `none`."
  args:
    - ""
timelyset:
  desc: "Sets the 'timely' currency allowance amount for users. Second parameter is period in hours, default is 24 hours."
  args:
    - "100"
    - "50 12"
timely:
  desc: "Use to claim your 'timely' currency. Bot owner has to specify the amount and the period on how often you can claim your currency."
  args:
    - ""
timelyreset:
  desc: "Resets all user timeouts on `{0}timely` command."
  args:
    - ""
crypto:
  desc: "Shows basic stats about a cryptocurrency from coinmarketcap.com. You can use either a name or an abbreviation of the currency."
  args:
    - "btc"
    - "bitcoin"
rolelevelreq:
  desc: "Set a level requirement on a self-assignable role."
  args:
    - "5 SomeRole"
massban:
  desc: "Bans multiple users at once. Specify a space separated list of IDs of users who you wish to ban."
  args:
    - "123123123 3333333333 444444444"
masskill:
  desc: "Specify a new-line separated list of `userid reason`. You can use Username#discrim instead of UserId. Specified users will be banned from the current server, blacklisted from the bot, and have all of their flowers taken away."
  args:
    - "BadPerson#1234 Toxic person"
pathofexile:
  desc: "Searches characters for a given Path of Exile account. May specify league name to filter results."
  args:
    - "\"Zizaran\""
pathofexileleagues:
  desc: "Returns a list of the main Path of Exile leagues."
  args:
    - ""
pathofexilecurrency:
  desc: "Returns the chaos equivalent of a given currency or exchange rate between two currencies."
  args:
    - "Standard \"Mirror of Kalandra\""
rollduel:
  desc: "Challenge someone to a roll duel by specifying the amount and the user you wish to challenge as the parameters. To accept the challenge, just specify the name of the user who challenged you, without the amount."
  args:
    - "50 @Someone"
    - "@Challenger"
reactionroles:
  desc: "Specify role names and server emojis with which they're represented, the bot will then add those emojis to the previous message in the channel, and users will be able to get the roles by clicking on the emoji. You can set 'excl' as the parameter before the reactions and roles to make them exclusive. You can have up to 10 of these enabled on one server at a time. Optionally you can specify target message if you don't want it to be the previous one."
  args:
    - "Gamer :SomeServerEmoji: Streamer :Other: Watcher :Other2:"
    - "excl Horde :Horde: Alliance :Alliance:"
    - "886382471732662332 excl Horde :Horde: Alliance :Alliance:"
    - "886382471732662332 Gamer :SomeServerEmoji: Streamer :Other: Watcher :Other2:"
reactionroleslist:
  desc: "Lists all ReactionRole messages on this channel and their indexes."
  args:
    - ""
reactionrolesremove:
  desc: "Removed a ReactionRole message on the specified index."
  args:
    - "1"
blackjack:
  desc: "Start or join a blackjack game. You must specify the amount you're betting. Use `{0}hit`, `{0}stand` and `{0}double` commands to play. Game is played with 4 decks. Dealer hits on soft 17 and wins draws."
  args:
    - "50"
hit:
  desc: "In the blackjack game, ask the dealer for an extra card."
  args:
    - ""
stand:
  desc: "Finish your turn in the blackjack game."
  args:
    - ""
double:
  desc: "In the blackjack game, double your bet in order to receive exactly one more card, and your turn ends."
  args:
    - ""
xpreset:
  desc: "Resets specified user's XP, or the XP of all users in the server. You can't reverse this action."
  args:
    - "@Someone"
    - ""
bible:
  desc: "Shows bible verse. You need to supply book name and chapter:verse"
  args:
    - "genesis 3:19"
edit:
  desc: "Edits bot's message, you have to specify message ID and new text. You can optionally specify target channel. Supports embeds."
  args:
    - "7479498384 Hi :^)"
    - "#other-channel 771562360594628608 New message!"
    - "#other-channel 771562360594628608 {{\"description\":\"hello\"}}"
delete:
  desc: "Deletes a single message given the channel and message ID. If channel is ommited, message will be searched for in the current channel. You can also specify time parameter after which the message will be deleted (up to 7 days). This timer won't persist through bot restarts."
  args:
    - "#chat 771562360594628608"
    - "771562360594628608"
    - "771562360594628608 5m"
roleid:
  desc: "Shows the id of the specified role."
  args:
    - "Some Role"
nsfwtoggle:
  desc: "Toggles the NSFW parameter of the current text channel."
  args:
    - ""
economy:
  desc: "Breakdown of the current state of the bot's economy. Updates every 3 minutes."
  args:
    - ""
purgeuser:
  desc: "Purge user from the database completely. This includes currency, xp, clubs that user owns, waifu info"
  args:
    - "@Oblivion"
imageonlychannel:
  desc: |- 
    Toggles whether the channel only allows images.
    Users who send more than a few non-image messages will be banned from using the channel. 
  args:
    - ""
coordreload:
  desc: "Reloads coordinator config"
  args:
    - "" 
showembed:
  desc: "Prints the json equivalent of the embed of the message specified by its Id."
  args:
    - "820022733172121600"
    - "#some-channel 820022733172121600"