Skip to content

Latest commit

 

History

History
696 lines (536 loc) · 20.6 KB

DiscordCommands.md

File metadata and controls

696 lines (536 loc) · 20.6 KB

Table of Contents:

Module: builtin

about: Get information about the bot
Examples:
!about
!about -v <- verbose
!about -vv <- even more verbose

addalias: Add alias for commands
Usage: !addalias <command> <alias>
Example: !addalias ping pong

addcmd: Add command
Example: !addcmd hello Hello!

avatar: Change bot avatar
Example: !avatar <image>
Hint: Use !listimg for list of available images

code: `@args@`
This command can be used as subcommand

codeblock: ```
@args@
```
This command can be used as subcommand

config: Setup some channel specific configurations
Examples:
!config reactions <enable/disable>
!config markovlog <enable/disable>
!config responses <enable/disable>
!config markovresponses <enable/disable>
!config markovpings <enable/disable>

curl: Perform HTTP request
Usage:
!curl <url>
!curl <url> --no-proxy
This command can be used as subcommand

delalias: Delete command alias
Usage: !delalias <alias>
Example: !delalias pong

disablecmd: Disable command in specified scope
Examples:
!disablecmd ping
!disablecmd ping channel
!disablecmd ping guild
!disablecmd ping global

disabletl: Disable time limit for command
Example: !disabletl ping

echo: @args@
This command can be used as subcommand

enableallcmd: Enable all available commands in specified scope
Examples:
!enableallcmd
!enableallcmd channel
!enableallcmd guild
!enableallcmd global

enablecmd: Enable command in specified scope
Examples:
!enablecmd ping
!enablecmd ping channel
!enablecmd ping guild
!enablecmd ping global

extexec: Execute external shell command
Note: Be careful when you are executing external commands!
Example: !extexec uname -a
This command can be used as subcommand

getmentioncmd: Get current command which is executed on bot ping
Example: !getmentioncmd
This command can be used as subcommand

help: Print list of commands and get examples
Usage:
!help
!help -p (alternative: !help --plain)
!help -a (alternative: !help --all)
!help <command_name>

listalias: Print list of aliases
Example: !listalias
This command can be used as subcommand

message: Get message by its order number counting from the newest message
Example: !message
This command can be used as subcommand

nick: Change nickname
Usage: !nick walbot

permcmd: Set commands permission
Example: !permcmd ping 0

permlevel: Get permission level for user
Usage: !permlevel
!permlevel `@user`

permuser: Set user permission
Example: !permuser @nickname 0

pin: Print pinned message by its index
Example: !pin 0
This command can be used as subcommand

ping: 🏓 Pong! @author@ 🏓
This command can be used as subcommand

profile: Print information about user
Examples:
!profile
!profile `@user`

restart: Restart the bot
Example: !restart

server: Print information about current server
Example: !server

setmaxexeccmdtime: Print how many times command was invoked
Example: !setmaxexeccmdtime echo 3

setmentioncmd: Set current command which is executed on bot ping
Examples:
!setmentioncmd ping
!setmentioncmd markov

shutdown: Shutdown the bot
Example: !shutdown

silent: Make the following command silent (without any output to the chat)
Example: !silent ping

slowmode: Edit slowmode
Example: !slowmode 0

status: Change bot status
Examples:
!status idle
!status playing Dota 2
Possible activities: [playing, streaming, watching, listening]
Possible bot statuses: [online, idle, dnd, invisible]

timescmd: Print how many times command was invoked
Examples:
!timescmd echo
!timescmd echo -s
This command can be used as subcommand

tts: Send text-to-speech (TTS) message
Example: !tts Hello!

updcmd: Update command (works only for commands that already exist)
Example: !updcmd hello Hello!

uptime: Show bot uptime
Example: !uptime
This command can be used as subcommand

version: Get version of the bot
Examples:
!version
!version short

whitelist: Bot's whitelist
Examples:
!whitelist enable/disable
!whitelist add
!whitelist remove

wme: Send direct message to author with something
Example: !wme Hello!

Module: custom-commands

addextcmd: Add command that executes external process
Note: Be careful when you are executing external commands!
Example: !addextcmd uname uname -a

delcmd: Delete command
Example: !delcmd hello

updextcmd: Update command that executes external process (works only for commands that already exist)
Note: Be careful when you are executing external commands!
Example: !updextcmd uname uname -a

Module: debug

dbg: Debug command
Example: !dbg <diagnostic-name>
This command can be used as subcommand

eval: Evaluate Python code in bot context.
Note: Dangerous, use it only if you know what you are doing
Example: !eval <code>

Module: image

addimg: Add image for !img command
Example: !addimg name url

delimg: Delete image for !img command
Example: !delimg name

img: Send image (use !listimg for list of available images)
Example: !img <image_name>

listimg: Print list of available images for !img command
Example: !listimg

updimg: Update image for !img command
Example: !updimg name url

Module: interactive

poll: Create poll and collect result after selected time
Example: !poll 60 option 1;option 2;option 3

Module: markov

addmarkovfilter: Add regular expression filter for Markov model
Example: !addmarkovfilter regex

addmarkovignoredprefix: Add message prefix that should be ignored by Markov model
Example: !addmarkovignoredprefix $

delmarkov: Delete all words in Markov model by regex
Example: !delmarkov hello

delmarkovfilter: Delete regular expression filter for Markov model by index
Example: !delmarkovfilter 0

delmarkovignoredprefix: Delete message prefix that should be ignored by Markov model by its index
Example: !delmarkovignoredprefix 0

dropmarkov: Drop Markov database
Example: !dropmarkov

findmarkov: Match words in Markov model using regex. If you have permission level >= 1,
you can add -f flag to show full list of found words
Examples:
!findmarkov hello
!findmarkov hello -f

getmarkovword: Get particular word from Markov model by regex
Examples:
!getmarkovword hello -a <- get amount of found words
!getmarkovword hello 0 <- get word by index
This command can be used as subcommand

inspectmarkov: Inspect next words in Markov model for current one
Example: !inspectmarkov hello

listmarkovfilter: Print list of regular expression filters for Markov model
Example: !listmarkovfilter
This command can be used as subcommand

listmarkovignoredprefix: List all prefixes that should be ignored by Markov model
Example: !listmarkovignoredprefix
This command can be used as subcommand

markov: Generate message using Markov chain
Example: !markov
This command can be used as subcommand

markovgc: Garbage collect Markov model nodes
Example: !markovgc

statmarkov: Show stats for Markov module
Example: !statmarkov

Module: math

calc: Calculate mathematical expression
Examples:
!calc 2+2*2
!calc 4/2-1
This command can be used as subcommand

if: If expression is true (!= 0) then return first expression otherwise return the second one
Examples:
!if 1 It's true;It's false -> It's true
!if 0 It's true;It's false -> It's false
This command can be used as subcommand

loop: Repeat an action n times
Examples:
!loop 2 ping
!loop 5 echo Hello!
This command can be used as subcommand

Module: plugin

autostartplugin: Check if plugin automatically starts when bot loads up and set autostart flag for plugin
Usage:
!autostartplugin <plugin_name> <- check if autostart is enabled
!autostartplugin <plugin_name> enable <- enable autostart for plugin
!autostartplugin <plugin_name> disable <- disable autostart for plugin

listplugin: Print list of plugins
Usage:
!listplugin

loadplugin: Load plugin by its name
Usage:
!loadplugin <plugin_name>

reloadplugin: Reload plugin by its name
Usage:
!reloadplugin <plugin_name>

reloadpluginmanager: Reload plugin manager
Usage: !reloadpluginmanager

unloadplugin: Unload plugin by its name
Usage:
!unloadplugin <plugin_name>

updateplugin: Update plugin by its name (if updater is implemented for this plugin).
Note: This command only updates implementation files!
To enable updated plugin you need to execute the following commands:
!reloadpluginmanager
!reloadplugin <plugin_name>
Usage:
!updateplugin <plugin_name>

Module: quote

addquote: Add quote to quotes database
Example: !addquote Hello, world!

delquote: Delete quote from quotes database by index
Example: !delquote 0

listquote: Print list of all quotes
Example: !listquote

quote: Print some quote from quotes database
Examples:
!quote
!quote 1

setquoteauthor: Set author of quote by its index
Example: !setquoteauthor 0 WalBot

Module: random

random: Get random number in range [left, right]
Example: !random 5 10
This command can be used as subcommand

randselect: Get random option among provided strings (split by space)
Example: !randselect a b c
This command can be used as subcommand

randselects: Get random option among provided strings (split by semicolon)
Example: !randselects a;b;c
This command can be used as subcommand

Module: reaction

addreaction: Add reaction
Example: !addreaction emoji regex

addresponse: Add bot response on message that contains particular regex
Example: !addresponse regex;text

delreaction: Delete reaction
Examples:
!delreaction index

delresponse: Delete response
Examples:
!delresponse index

listreaction: Print list of reactions
Example: !listreaction
This command can be used as subcommand

listresponse: Print list of responses
Example: !listresponse

updreaction: Update reaction
Example: !updreaction index emoji regex

updresponse: Update bot response
Example: !updresponse index regex;text

Module: reminder

addreminder: Print message at particular time
Examples:
!addreminder 2020-01-01 00:00 Happy new year!
!addreminder today 08:00 Wake up
!addreminder tomorrow 08:00 Wake up
!addreminder monday 09:00 Time to work
!addreminder sat 11:00 Time to chill
!addreminder 2d 08:00 Wake up <- 2 days
!addreminder 1w 08:00 Wake up <- 1 week
!addreminder 1m Monthly event
!addreminder 1y Annual event
!addreminder in 1w5d10h5m Test reminder
!addreminder in 1w Test reminder 2
!addreminder in 5h10m Test reminder 3

addremindernotes: Add reminder notes for specific reminder
Example: !addremindernotes 1 Some text

delreminder: Delete reminders by index
Example: !delreminder 0 1 2

delremindernotes: Delete reminder notes for specific reminder
Example: !delremindernotes 1

listreminder: Print list of reminders
Examples:
!listreminder
!listreminder 5 <- prints only first 5 reminders

listreminderlocal: Print list of reminders for current channel
Examples:
!listreminderlocal
!listreminderlocal 5 <- prints only first 5 reminders

remindeme: Ask bot to send you an e-mail when it sends reminder
Example: !remindeme 1 <your-email-address>

reminder: Print information about reminder
Example:
!reminder 1

remindme: Ask bot to ping you when it sends reminder
Example: !remindme 1

remindwme: Ask bot to send direct message you when it sends reminder
Example: !remindwme 1

repeatreminder: Make reminder repeating with particular period
Examples:
!repeatreminder 1 1
!repeatreminder 1 hourly
!repeatreminder 1 daily
!repeatreminder 1 weekly
!repeatreminder 1 monthly
!repeatreminder 1 annually
!repeatreminder 1 2h
!repeatreminder 1 2d
!repeatreminder 1 2w
!repeatreminder 1 2m
!repeatreminder 1 2y
!repeatreminder 1 0
Note: number without postfix is translated to minutes. 0 means disabling repetition

repeatreminderfor: Limit amount of repetitions for reminder
Example: !repeatreminderfor 1 5 <- repeat reminder 1 only 5 times

repeatreminderuntil: Limit amount of repetitions with particular date
Example:
!repeatreminderuntil 1 2022-12-01 <- repeat reminder 1 until Dec 1, 2022 00:00
!repeatreminderuntil 1 2022-12-31 23:59 <- repeat reminder 1 until Dec 31, 2022 23:59

setprereminders: Set pre reminders notifying that reminder will be sent in particular time.
For example, send pre reminder 10 minutes before actual event (to prepare or something)
Usage: !setprereminders <reminder_id> [<time_before_reminder_in_minutes> ...]
Examples:
!setprereminders 1 10
!setprereminders 2 5 10 15

setreminderchannel: Set channel where reminder will be sent
Example: !setreminderchannel 1 <channel_id>

skipreminder: Skip next instance of recurring (repeating) reminder
Example: !skipreminder 1
Note: only recurring (repeating) reminders are affected by this command

timeuntilreminder: Show time until particular reminder
Example: !timeuntilreminder 1
This command can be used as subcommand

updreminder: Update reminder by index
Examples:
!updreminder 0 2020-01-01 00:00 Happy new year!
!updreminder 0 2020-01-01 00:00 Happy new year!
!updreminder 0 today 08:00 Wake up
!updreminder 0 tomorrow 08:00 Wake up
!updreminder 0 monday 09:00 Time to work
!updreminder 0 sat 11:00 Time to chill
!updreminder 0 2d 08:00 Wake up <- 2 days
!updreminder 0 1w 08:00 Wake up <- 1 week
!addreminder 0 1m Monthly event
!addreminder 0 1y Annual event
!updreminder 0 in 1w5d10h5m Test reminder
!updreminder 0 in 1w Test reminder 2
!updreminder 0 in 5h10m Test reminder 3

Module: role

addrole: Assign a role to the user
Usage: !addrole @user role_name

delrole: Unassign a role from the user
Usage: !delrole @user role_name

listrole: Print list of all roles available on this server
Usage: !listrole

Module: services

netcheck: Check network and proxy settings
Usage: !netcheck
This command can be used as subcommand

translate: Translate text to specified language
Usage: !translate <lang> <text>
This command can be used as subcommand

weather: Get current weather using wttr.in
Usage: !weather <city>
This command can be used as subcommand

weatherforecast: Get weather forecast using wttr.in
Usage: !weatherforecast <city>

Module: string

countchars: Calculate length of the message
Example: !countchars some text
This command can be used as subcommand

countlines: Count amount of lines
Example: !countlines some text
This command can be used as subcommand

countwords: Count amount of words
Example: !countwords some text
This command can be used as subcommand

demojify: Demojify text
Example: !demojify 🇭 🇪 🇱 🇱 🇴
This command can be used as subcommand

dropchars: Drop n characters of the string
Examples:
!dropchars 2 hello
Result: llo
!dropchars -2 hello
Result: hel
This command can be used as subcommand

droplines: Drop n lines of the string
Examples:
!droplines 2 a
b
c
Result: c
!droplines -2 a
b
c
Result: a
This command can be used as subcommand

dropwords: Drop n words of the string
Examples:
!dropwords 2 a b c
Result: c
!dropwords -2 a b c
Result: a
This command can be used as subcommand

emojify: Emojify text
Example: !emojify Hello!
This command can be used as subcommand

eqstrs: Check if two strings separated by ';' are equal or not
Example: !eqstrs a;b
This command can be used as subcommand

eqwords: Check if two words are equal or not
Example: !eqwords a b
This command can be used as subcommand

join: Join words with string as separator
Example: !join + 1 2 3 -> 1+2+3
This command can be used as subcommand

range: Generate range of numbers
Examples:
!range <stop>
!range <start> <stop>
!range <start> <stop> <step>
This command can be used as subcommand

takechars: Take n characters of the string
Examples:
!takechars 2 hello
Result: he
!takechars -2 hello
Result: lo
This command can be used as subcommand

takelines: Take n lines of the string
Examples:
!takelines 2 a
b
c
Result: a
b
!takelines -2 a
b
c
Result: b
c
This command can be used as subcommand

takewords: Take n words of the string
Examples:
!takewords 2 a b c
Result: a b
!takewords -2 a b c
Result: b c
This command can be used as subcommand

tolower: Convert text to lower case
Example: !tolower SoMe TeXt
This command can be used as subcommand

toupper: Convert text to upper case
Example: !toupper SoMe TeXt
This command can be used as subcommand

urlencode: Urlencode string
Example: !urlencode hello, world!
This command can be used as subcommand

Module: time

setusertz: Set timezone for the user
Usage:
!setusertz
!setusertz Europe/Moscow
!setusertz America/New_York

time: Show current time
Examples:
!time
!time Europe/Moscow
!time America/New_York
Full timezone database list: <https://en.wikipedia.org/wiki/List_of_tz_database_time_zones>
This command can be used as subcommand

tz: Get current timezone
Usage: !tz

Module: timer

stopstopwatch: Stop stopwatch
Usage: !stopstopwatch 1

stoptimer: Stop timer
Usage: !stoptimer 1

stopwatch: Start stopwatch
Usage: !stopwatch

timer: Set timer
Usage: !timer 10