Class BaseSocketClient
表示一个基于网关的客户端的抽象基类。
public abstract class BaseSocketClient : BaseHeyBoxClient, IHeyBoxClient, IDisposable
- Inheritance
-
BaseSocketClient
- Implements
- Derived
- Inherited Members
Fields
BaseConfig
获取此客户端使用的配置。
protected readonly HeyBoxSocketConfig BaseConfig
Field Value
Properties
CurrentUser
获取登录到此客户端的当前用户;如果未登录,则为 null
。
public virtual SocketSelfUser? CurrentUser { get; protected set; }
Property Value
Latency
获取到网关服务器的往返延迟估计值(以毫秒为单位)。
public abstract int Latency { get; protected set; }
Property Value
Remarks
此往返估计值源于心跳包的延迟,不代表诸如发送消息等操作的真实延迟。
Rest
获取一个与此客户端共享状态的仅限于 REST 的客户端。
public abstract HeyBoxSocketRestClient Rest { get; }
Property Value
Rooms
获取当前用户所在的所有房间。
public abstract IReadOnlyCollection<SocketRoom> Rooms { get; }
Property Value
Methods
GetChannel(ulong)
获取一个服务器频道。
public abstract SocketChannel? GetChannel(ulong id)
Parameters
id
ulong要获取的频道的 ID。
Returns
- SocketChannel
与指定的
id
关联的频道;如果未找到,则返回null
。
GetDMChannel(uint)
获取一个私聊频道。
public abstract SocketDMChannel? GetDMChannel(uint userId)
Parameters
userId
uint私聊频道中另一位用户的 ID。
Returns
- SocketDMChannel
另一位用户具有指定用户 ID 的私聊频道;如果未找到,则返回
null
。
GetRoom(ulong)
获取一个房间。
public abstract SocketRoom? GetRoom(ulong id)
Parameters
id
ulong要获取的房间的 ID。
Returns
- SocketRoom
与指定的
id
关联的实体;如果缓存中不存在指定的房间,则返回一个用于后续调用但不包含其他有效信息的房间实体。
GetUser(uint)
获取用户。
public abstract SocketUser? GetUser(uint id)
Parameters
id
uint要获取的用户的 ID。
Returns
- SocketUser
与指定的
id
关联的用户;如果未找到,则返回null
。
Remarks
此方法可能返回 null
,因为此方法仅会返回网关缓存中存在的用户,如果在当前 Bot
登录会话中,要获取的用户未引发过任何事件,那么该用户实体则不会存在于缓存中。
StartAsync()
启动客户端与黑盒语音之间的连接。
public abstract Task StartAsync()
Returns
- Task
一个表示异步启动操作的任务。
Remarks
当前方法会初始化客户端与黑盒语音之间的连接。
important
此方法会在调用后立即返回,因为它会在另一个线程上初始化连接。
StopAsync()
停止客户端与黑盒语音之间的连接。
public abstract Task StopAsync()
Returns
- Task
一个表示异步停止操作的任务。
Events
ButtonClicked
当用户点击按钮时引发。
public event Func<SocketButtonClick, Task> ButtonClicked
Event Type
InteractionCreated
当交互被创建时引发,此事件涵盖了所有类型的交互。
public event Func<SocketInteraction, Task> InteractionCreated
Event Type
JoinedRoom
当当前用户新加入服务器时引发。
public event Func<SocketRoom, Task> JoinedRoom
Event Type
Remarks
事件参数:
- SocketRoom 参数是当前用户新加入的服务器。
LeftRoom
当当前用户离开服务器时引发。
public event Func<SocketRoom, Task> LeftRoom
Event Type
Remarks
事件参数:
- SocketRoom 参数是当前用户离开的服务器。
ReactionAdded
当服务器内的消息上被添加了新的回应时引发。
public event Func<Cacheable<IUserMessage, ulong>, Cacheable<SocketTextChannel, ulong>, Cacheable<SocketRoomUser, uint>, SocketReaction, Task> ReactionAdded
Event Type
- Func<Cacheable<IUserMessage, ulong>, Cacheable<SocketTextChannel, ulong>, Cacheable<SocketRoomUser, uint>, SocketReaction, Task>
Remarks
事件参数:
- Cacheable<TEntity, TId> 参数是被添加了回应的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IUserMessage 消息;否则,包含 ulong 消息 ID,以供按需下载实体。
- Cacheable<TEntity, TId> 参数是消息所在的频道。如果缓存中存在此频道实体,那么该结构内包含该 SocketTextChannel 频道;否则,包含 ulong 频道 ID,以供按需下载实体。
- Cacheable<TEntity, TId> 参数是添加了此回应的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketRoomUser 服务器用户;否则,包含 uint 用户 ID,以供按需下载实体。
- SocketReaction 参数是被添加的回应。
ReactionRemoved
当服务器内的消息上存在的回应被用户移除时引发。
public event Func<Cacheable<IUserMessage, ulong>, Cacheable<SocketTextChannel, ulong>, Cacheable<SocketRoomUser, uint>, SocketReaction, Task> ReactionRemoved
Event Type
- Func<Cacheable<IUserMessage, ulong>, Cacheable<SocketTextChannel, ulong>, Cacheable<SocketRoomUser, uint>, SocketReaction, Task>
Remarks
事件参数:
- Cacheable<TEntity, TId> 参数是被移除了回应的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IUserMessage 消息;否则,包含 ulong 消息 ID,以供按需下载实体。
- Cacheable<TEntity, TId> 参数是消息所在的频道。如果缓存中存在此频道实体,那么该结构内包含该 SocketTextChannel 频道;否则,包含 ulong 频道 ID,以供按需下载实体。
- Cacheable<TEntity, TId> 参数是移除了此回应的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketRoomUser 服务器用户;否则,包含 uint 用户 ID,以供按需下载实体。
- SocketReaction 参数是被移除的回应。
SlashCommandExecuted
当用户使用斜线命令时引发。
public event Func<SocketSlashCommand, Task> SlashCommandExecuted
Event Type
UserJoined
当用户加入房间时引发。
public event Func<SocketRoomUser, Task> UserJoined
Event Type
Remarks
事件参数:
- SocketRoomUser 参数是加入房间的房间用户。
UserLeft
当用户离开房间时引发。
public event Func<SocketRoomUser, Task> UserLeft
Event Type
Remarks
事件参数:
- SocketRoomUser 参数是离开房间的房间用户。