public async Task<DiscordUserSettings> EditUserSettings(DiscordUserSettings settings) // PATCH https://discordapp.com/api/users/@me/settings { if (_token == null) throw new DiscordException(ExceptionList.NotLoggedIn); if (settings == null) throw new ArgumentNullException("settings"); if (_settings == null) _settings = await GetUserSettings(); JsonObject newSettings = new JsonObject(); if(!string.IsNullOrWhiteSpace(settings.Locale)) newSettings.Add("locale", JsonValue.CreateStringValue(settings.Locale)); if (settings.Theme != _settings.Theme) newSettings.Add("theme", JsonValue.CreateStringValue(settings.Theme == DiscordTheme.Dark ? "dark" : "light")); if (settings.IsConvertEmoticonsEnabled != _settings.IsConvertEmoticonsEnabled) newSettings.Add("convert_emoticons", JsonValue.CreateBooleanValue(settings.IsConvertEmoticonsEnabled)); if (settings.IsEmailFriendRequestsAllowed != _settings.IsEmailFriendRequestsAllowed) newSettings.Add("allow_email_friend_request", JsonValue.CreateBooleanValue(settings.IsEmailFriendRequestsAllowed)); if (settings.IsInlineAttachmentMediaEnabled != _settings.IsInlineAttachmentMediaEnabled) newSettings.Add("inline_attachment_media", JsonValue.CreateBooleanValue(settings.IsInlineAttachmentMediaEnabled)); if (settings.IsInlineEmbedMediaEnabled != _settings.IsInlineEmbedMediaEnabled) newSettings.Add("inline_embed_media", JsonValue.CreateBooleanValue(settings.IsInlineEmbedMediaEnabled)); if (settings.IsMessageDisplayCompactEnabled != _settings.IsMessageDisplayCompactEnabled) newSettings.Add("message_display_compact", JsonValue.CreateBooleanValue(settings.IsMessageDisplayCompactEnabled)); if (settings.IsRenderEmbedsEnabled != _settings.IsRenderEmbedsEnabled) newSettings.Add("render_embeds", JsonValue.CreateBooleanValue(settings.IsRenderEmbedsEnabled)); if (settings.IsShowCurrentGameEnabled != _settings.IsShowCurrentGameEnabled) newSettings.Add("show_current_game", JsonValue.CreateBooleanValue(settings.IsShowCurrentGameEnabled)); if (settings.IsTTSEnabled != _settings.IsTTSEnabled) newSettings.Add("enable_tts_command", JsonValue.CreateBooleanValue(settings.IsTTSEnabled)); WebResult response = await Web.PATCH(DiscordEndpoint.UserSettings.Replace("{user}", "@me"), newSettings.Stringify(), _token); JObject jmessage = JObject.Parse((string)response.Data); _settings = JsonHelper.ParseUserSettings(jmessage); return _settings; }
public async Task<DiscordUserSettings> GetUserSettings() // GET https://discordapp.com/api/users/@me/settings { if (_token == null) throw new DiscordException(ExceptionList.NotLoggedIn); WebResult response = await Web.GET(DiscordEndpoint.UserSettings.Replace("{user}", "@me"), _token); JObject jmessage = JObject.Parse((string)response.Data); _settings = JsonHelper.ParseUserSettings(jmessage); return _settings; }