有活动 DiscordClient.UserJoined
, DiscordClient.UserLeft
和 DiscordClient.UserUpdated
. 在前两个我可以访问 e.User.Name
以获取已加入或离开服务器的用户的名称,第三个事件没有这个 . 只有 e.Server.CurrentUser
指的是机器人本身或 e.Server.Users
,它给出了所有用户的列表 . 但我不知道哪一个访问 .
假设我想在用户上线时创建通知(将他/她的状态从离线状态更改为在线状态,反之亦然) . 对于 UserJoined
事件,我可以这样做:
client.UserJoined += async (s, e) =>
{
var channel = e.Server.FindChannels("abc", ChannelType.Text);
await channel.SendMessage(e.User.Name + " has joined the server!");
}
但是当我没有 User
时,如何为 UserUpdated
做这个?
client.UserUpdated += async (s, e) =>
{
var channel = e.Server.FindChannels("abc", ChannelType.Text);
if(???.Status == "online")
{
await channel.SendMessage(???.Name + " has come online!");
}
}
1 回答
用户将在e.Before和e.After之后,所以要访问它使用e.After.Name