CommandSender
指令发送者.
只有 CommandSender 才能 执行指令
获得指令发送者
实现 CommandSender
在任何时候都不要实现 CommandSender (包括使用委托). 必须使用上述扩展获取 CommandSender 实例.
除了以下情况:
Console 前端可实现 ConsoleCommandSender
子类型
所有 CommandSender 都应继承 AbstractCommandSender.
AbstractCommandSender 是密封类, 一级子类为:
二级子类, 当指令由插件 主动执行 时, 插件应使用 toCommandSender 或 asCommandSender, 因此,
若在群聊环境, 对应 CommandSender 为 MemberCommandSender
若在私聊环境, 对应 CommandSender 为 FriendCommandSender
若在临时会话环境, 对应 CommandSender 为 TempCommandSender
若在陌生人会话环境, 对应 CommandSender 为 StrangerCommandSender
若在其他客户端会话环境, 对应 CommandSender 为 OtherClientCommandSender
三级子类, 当真实收到由用户执行的指令时:
若在群聊环境, 对应 CommandSender 为 MemberCommandSenderOnMessage
若在私聊环境, 对应 CommandSender 为 FriendCommandSenderOnMessage
若在临时会话环境, 对应 CommandSender 为 TempCommandSenderOnMessage
若在陌生人会话环境, 对应 CommandSender 为 StrangerCommandSenderOnMessage
若在其他客户端会话环境, 对应 CommandSender 为 OtherClientCommandSenderOnMessage
类型关系如图. 箭头指向的是父类.
CoroutineScope
↑
|
+----------> CommandSender <---------+---------------------+---------------------------------------------------+
| ↑ | | |
| | | | |
SystemCommandSender <-------+ | UserCommandSender GroupAwareCommandSender CommandSenderOnMessage
↑ | | ↑ ↑ ↑
PluginCustomCommandSender | | | | |
↑ | | | | |
| +-------------+ AbstractCommandSender | | |
| | ↑ | | |
| | | sealed | | |
| | +---------------+-------------+ | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | }
| ConsoleCommandSender | AbstractUserCommandSender | | }
| | ↑ | | } 一级子类
AbstractPluginCustomCommandSender -------+ | | | }
| | | }
| | |
| | |
| sealed | |
| | |
+----------------------+ | |
| | | |
| +------+------------+---------------+ |
| | | |
| | | | }
FriendCommandSender MemberCommandSender GroupTempCommandSender | } 二级子类
↑ ↑ ↑ | }
| | | |
| | | | }
FriendCommandSenderOnMessage MemberCommandSenderOnMessage GroupTempCommandSenderOnMessage | } 三级子类
| | | | }
| | | |
+-----------------------------+----------------------------+---------------------+
Scoping: MessageScope
在处理多个消息对象时, 可通过 MessageScope 简化操作.
查看 MessageScope 以获取更多信息.
See also
自定义 CommandSender
Inheritors
Functions
解析并执行一个指令
折叠 CommandSender 的可能性.
尝试获取 Bot.
尝试获取 Group.
当 this 为 ConsoleCommandSender 时返回 true
当 this 不为 ConsoleCommandSender 时返回 true
当 this 不为 UserCommandSender, 即为 SystemCommandSender 时返回 true
当 this 为 SystemCommandSender 时返回 true
当 this 为 UserCommandSender 时返回 true
向 CommandSender 发送一条带有 ANSI 控制符的信息
立刻发送一条消息.
Properties
与这个 CommandSender 相关的 Bot. 当通过控制台执行时为 null
.
与这个 CommandSender 相关的 Contact.