Exemple #1
0
		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;
		}
Exemple #2
0
		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;
		}