2017-03-09 5 views
0

DiscordClient.UserJoined, DiscordClient.UserLeftDiscordClient.UserUpdated 이벤트가 제공됩니다. 처음 두 사람은 e.User.Name에 접속하여 서버에 가입했거나 서버를 떠난 사용자의 이름을 알 수 있지만 세 번째 이벤트에는이 권한이 없습니다. 봇 자체를 가리키는 e.Server.CurrentUser 또는 모든 사용자 목록을 제공하는 e.Server.Users 만 있습니다. 그러나 어떤 이벤트가 시작되었는지는 알 수 없으므로 어떤 이벤트에 액세스할지 모릅니다.Discord 봇의 사용자 상태 변경을 처리하는 방법은 무엇입니까?

사용자가 온라인 상태가되었을 때 알림을 만들고 싶습니다 (상태를 오프라인에서 온라인으로 또는 그 반대로 변경).

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이 작업을 수행 할 수있는 방법 : UserJoined 이벤트를 위해 내가 할 수 있습니까?

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.Before 및 e.After에 될 것입니다 그것을 사용하여 액세스 e.After.Name –

+0

이것은 약간 혼란 스럽지만 지금은 구조를 이해합니다. 당신이 올바른지. 당신이 대답으로 쓰는다면 나는 당신에게 올바른 것으로 태그를 달 것입니다. – Andrew

답변

0

사용자에 있도록, 그래서 e.After.Name이