CommandSender
指令发送者.
只有 CommandSender 才能 执行指令
获得指令发送者
TempMessageEvent.toCommandSender
实现 CommandSender
除 Console 前端外, 在任何时候都不要实现 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 <---------+---------------+-------------------------------+
↑ | | |
| | | |
| UserCommandSender GroupAwareCommandSender CommandSenderOnMessage
| ↑ ↑ ↑
| | | |
AbstractCommandSender | | |
↑ | | |
| sealed | | |
+-------------+-------------+ | | |
| | | | |
| | | | | }
ConsoleCommandSender AbstractUserCommandSender | | } 一级子类
↑ | | }
| sealed | |
| | |
+----------------------+ | |
| | | |
| +------+------------+---------------+ |
| | | |
| | | | }
FriendCommandSender MemberCommandSender TempCommandSender | } 二级子类
↑ ↑ ↑ | }
| | | |
| | | | }
FriendCommandSenderOnMessage MemberCommandSenderOnMessage TempCommandSenderOnMessage | } 三级子类
| | | | }
| | | |
+-----------------------------+----------------------------+---------------+
Scoping: MessageScope
在处理多个消息对象时, 可通过 MessageScope 简化操作.
查看 MessageScope 以获取更多信息.
See also
Types
Functions
立刻发送一条消息.
Properties
Inheritors
Extensions
解析并执行一个指令
折叠 AbstractCommandSender 的可能性.
尝试获取 Group.
尝试获取 Group.
当 this 为 ConsoleCommandSender 时返回 true
当 this 不为 ConsoleCommandSender 时返回 true
当 this 不为 UserCommandSender, 即为 ConsoleCommandSender 时返回 true
当 this 为 UserCommandSender 时返回 true
向 CommandSender 发送一条带有 ANSI 控制符的信息