class Tourmaline::Handlers::CommandHandler
inherits Tourmaline::EventHandler
#
Constants#
ANNOTATION = Command
#
Command
Constructors#
.new(commands, prefix = nil, outgoing = true, private_only = false, group_only = false, on_edit = false, register = false, register_as = nil, description = nil, &block : Context -> )
#
(commands, prefix = nil, outgoing = true, private_only = false, group_only = false, on_edit = false, register = false, register_as = nil, description = nil, &block : Context -> )
Create a new CommandHandler
instance using the provided commands
. commands
can
be a single command string, or an array of possible commands.
Warning
If #admin_only
is true, get_chat_adminstrators
will be run every time the
handler is invoked. This should be fine in testing, but in production it's
recommended to cache admins and do your own guarding.
Methods#
#commands : Array(String)
#
: Array(String)
Commands (without prefix) that this handler should respond to.
#commands=(commands : Array(String))
#
(commands : Array(String))
Commands (without prefix) that this handler should respond to.
#description : String?
#
: String?
Used when registering the command with BotFather. If register
is true, but this
is not set, the command will not be registered.
#description=(description : String?)
#
(description : String?)
Used when registering the command with BotFather. If register
is true, but this
is not set, the command will not be registered.
#group_only : Bool
#
: Bool
If true, this handler will only respond if the command is sent in a group.
#group_only=(group_only : Bool)
#
(group_only : Bool)
If true, this handler will only respond if the command is sent in a group.
#on_edit : Bool
#
: Bool
If true, this handler will also run (or re-run) when messages are edited.
#on_edit=(on_edit : Bool)
#
(on_edit : Bool)
If true, this handler will also run (or re-run) when messages are edited.
#outgoing : Bool
#
: Bool
User API: if true, this command will only be activated by an outgoing message.
#outgoing=(outgoing : Bool)
#
(outgoing : Bool)
User API: if true, this command will only be activated by an outgoing message.
#private_only : Bool
#
: Bool
If true, this handler will only respond if the command is sent in private.
#private_only=(private_only : Bool)
#
(private_only : Bool)
If true, this handler will only respond if the command is sent in private.
#register : Bool
#
: Bool
Register this command with BotFather. Only works is prefixes
contains /
(as
it does by default), as non-botcommands can't be registed with BotFather.
#register=(register : Bool)
#
(register : Bool)
Register this command with BotFather. Only works is prefixes
contains /
(as
it does by default), as non-botcommands can't be registed with BotFather.
#register_as : String?
#
: String?
By default the first command in commands
will be selected as the command name
to register. If this property is set, it will be used instead.
#register_as=(register_as : String?)
#
(register_as : String?)
By default the first command in commands
will be selected as the command name
to register. If this property is set, it will be used instead.