2017-03-09 5 views
0

利用可能なイベントはDiscordClient.UserJoined,DiscordClient.UserLeftおよびDiscordClient.UserUpdatedです。最初の2つはe.User.Nameにアクセスして、参加したユーザーまたはサーバーから退去したユーザーの名前を取得できますが、3番目のイベントにはこれがありません。ボット自体を指すe.Server.CurrentUserまたはすべてのユーザーのリストを表示するe.Server.Usersしかありません。しかし、どのイベントがトリガされたのかわからないので、どのイベントにアクセスするのかわからない。Discordボットのユーザー状態の変更を処理する方法は?

ユーザーがオンラインになったときに通知を作成したい(自分のステータスをオフラインからオンラインに変更する、またはその逆に変更する)とします。私にできること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!"); 
    } 
} 
+0

を使用するアクセスするには、e.Beforeとe.Afterであることを行っていますそれにアクセスするe.After.Name –

+0

これはちょっと混乱しますが、今は構造を理解しています。あなたは正しいです。あなたが答えとしてそれを書くなら、あなたのために正しいものとしてタグ付けします。 – Andrew

答えて

0

ユーザーはそう、それはへのユーザーが、e.Beforeとe.Afterであることを行っているe.After.Name

関連する問題