From d710b5d0fcc2a4fe9c13e3f1d9743cb55e570936 Mon Sep 17 00:00:00 2001 From: Brandon Smith Date: Tue, 27 Oct 2015 14:27:32 -0300 Subject: [PATCH] Added opcode 8 --- src/Discord.Net/API/Messages.cs | 15 +++++++++++++++ src/Discord.Net/DiscordClient.Users.cs | 8 ++++++++ src/Discord.Net/Net/WebSockets/DataWebSocket.cs | 6 ++++++ 3 files changed, 29 insertions(+) diff --git a/src/Discord.Net/API/Messages.cs b/src/Discord.Net/API/Messages.cs index 8fc031dd1..a5edb27ec 100644 --- a/src/Discord.Net/API/Messages.cs +++ b/src/Discord.Net/API/Messages.cs @@ -125,6 +125,21 @@ namespace Discord.API //Get public sealed class GetMessagesResponse : List { } + //Commands + internal sealed class GetUsersCommand : WebSocketMessage + { + public GetUsersCommand() : base(8) { } + public class Data + { + [JsonProperty("guild_id")] + public string ServerId; + [JsonProperty("query")] + public string Query; + [JsonProperty("limit")] + public int Limit; + } + } + //Events internal sealed class MessageCreateEvent : MessageInfo { } internal sealed class MessageUpdateEvent : MessageInfo { } diff --git a/src/Discord.Net/DiscordClient.Users.cs b/src/Discord.Net/DiscordClient.Users.cs index 2782909c3..fe75b6358 100644 --- a/src/Discord.Net/DiscordClient.Users.cs +++ b/src/Discord.Net/DiscordClient.Users.cs @@ -182,6 +182,14 @@ namespace Discord return response.Pruned ?? 0; } + /// When Config.UseLargeThreshold is enabled, running this command will request the Discord server to provide you with all offline users for a particular server. + public void RequestOfflineUsers(string serverId) + { + if (serverId == null) throw new ArgumentNullException(nameof(serverId)); + + _dataSocket.SendGetUsers(serverId); + } + public Task EditProfile(string currentPassword = "", string username = null, string email = null, string password = null, ImageType avatarType = ImageType.Png, byte[] avatar = null) diff --git a/src/Discord.Net/Net/WebSockets/DataWebSocket.cs b/src/Discord.Net/Net/WebSockets/DataWebSocket.cs index 49d368748..3db1c1a93 100644 --- a/src/Discord.Net/Net/WebSockets/DataWebSocket.cs +++ b/src/Discord.Net/Net/WebSockets/DataWebSocket.cs @@ -141,5 +141,11 @@ namespace Discord.Net.WebSockets leaveVoice.Payload.ServerId = serverId; QueueMessage(leaveVoice); } + public void SendGetUsers(string serverId, string query = "", int limit = 0) + { + var getOfflineUsers = new GetUsersCommand(); + getOfflineUsers.Payload.ServerId = serverId; + QueueMessage(getOfflineUsers); + } } }