| @@ -53,6 +53,15 @@ namespace Discord | |||||
| /// </returns> | /// </returns> | ||||
| int DefaultSlowModeInterval { get; } | int DefaultSlowModeInterval { get; } | ||||
| /// <summary> | |||||
| /// Gets the emoji to show in the add reaction button on a thread in a forum channel | |||||
| /// </summary> | |||||
| /// <remarks> | |||||
| /// If the emoji is <see cref="Emote"/> only the <see cref="Emote.Id"/> will be populated. | |||||
| /// Use <see cref="IGuild.GetEmoteAsync"/> to get the emoji. | |||||
| /// </remarks> | |||||
| IEmote DefaultReactionEmoji { get; } | |||||
| /// <summary> | /// <summary> | ||||
| /// Modifies this forum channel. | /// Modifies this forum channel. | ||||
| /// </summary> | /// </summary> | ||||
| @@ -82,5 +82,8 @@ namespace Discord.API | |||||
| [JsonProperty("flags")] | [JsonProperty("flags")] | ||||
| public Optional<ChannelFlags> Flags { get; set; } | public Optional<ChannelFlags> Flags { get; set; } | ||||
| [JsonProperty("default_reaction_emoji")] | |||||
| public Optional<ForumReactionEmoji> DefaultReactionEmoji { get; set; } | |||||
| } | } | ||||
| } | } | ||||
| @@ -0,0 +1,12 @@ | |||||
| using Newtonsoft.Json; | |||||
| namespace Discord.API; | |||||
| public class ForumReactionEmoji | |||||
| { | |||||
| [JsonProperty("emoji_id")] | |||||
| public Optional<ulong> EmojiId { get; set; } | |||||
| [JsonProperty("emoji_name")] | |||||
| public Optional<string> EmojiName { get; set; } | |||||
| } | |||||
| @@ -35,6 +35,9 @@ namespace Discord.Rest | |||||
| /// <inheritdoc/> | /// <inheritdoc/> | ||||
| public ulong? CategoryId { get; private set; } | public ulong? CategoryId { get; private set; } | ||||
| /// <inheritdoc/> | |||||
| public IEmote DefaultReactionEmoji { get; private set; } | |||||
| /// <inheritdoc/> | /// <inheritdoc/> | ||||
| public string Mention => MentionUtils.MentionChannel(Id); | public string Mention => MentionUtils.MentionChannel(Id); | ||||
| @@ -67,6 +70,16 @@ namespace Discord.Rest | |||||
| Tags = model.ForumTags.GetValueOrDefault(Array.Empty<API.ForumTags>()).Select( | Tags = model.ForumTags.GetValueOrDefault(Array.Empty<API.ForumTags>()).Select( | ||||
| x => new ForumTag(x.Id, x.Name, x.EmojiId.GetValueOrDefault(null), x.EmojiName.GetValueOrDefault(), x.Moderated) | x => new ForumTag(x.Id, x.Name, x.EmojiId.GetValueOrDefault(null), x.EmojiName.GetValueOrDefault(), x.Moderated) | ||||
| ).ToImmutableArray(); | ).ToImmutableArray(); | ||||
| if (model.DefaultReactionEmoji.IsSpecified) | |||||
| { | |||||
| if (model.DefaultReactionEmoji.Value.EmojiId.IsSpecified && model.DefaultReactionEmoji.Value.EmojiId.Value != 0) | |||||
| DefaultReactionEmoji = new Emote(model.DefaultReactionEmoji.Value.EmojiId.Value, null, false); | |||||
| else if (model.DefaultReactionEmoji.Value.EmojiName.IsSpecified) | |||||
| DefaultReactionEmoji = new Emoji(model.DefaultReactionEmoji.Value.EmojiName.Value); | |||||
| else | |||||
| DefaultReactionEmoji = null; | |||||
| } | |||||
| } | } | ||||
| /// <inheritdoc/> | /// <inheritdoc/> | ||||
| @@ -39,6 +39,9 @@ namespace Discord.WebSocket | |||||
| /// <inheritdoc/> | /// <inheritdoc/> | ||||
| public ulong? CategoryId { get; private set; } | public ulong? CategoryId { get; private set; } | ||||
| /// <inheritdoc/> | |||||
| public IEmote DefaultReactionEmoji { get; private set; } | |||||
| /// <summary> | /// <summary> | ||||
| /// Gets the parent (category) of this channel in the guild's channel list. | /// Gets the parent (category) of this channel in the guild's channel list. | ||||
| /// </summary> | /// </summary> | ||||
| @@ -73,6 +76,16 @@ namespace Discord.WebSocket | |||||
| Tags = model.ForumTags.GetValueOrDefault(Array.Empty<API.ForumTags>()).Select( | Tags = model.ForumTags.GetValueOrDefault(Array.Empty<API.ForumTags>()).Select( | ||||
| x => new ForumTag(x.Id, x.Name, x.EmojiId.GetValueOrDefault(null), x.EmojiName.GetValueOrDefault(), x.Moderated) | x => new ForumTag(x.Id, x.Name, x.EmojiId.GetValueOrDefault(null), x.EmojiName.GetValueOrDefault(), x.Moderated) | ||||
| ).ToImmutableArray(); | ).ToImmutableArray(); | ||||
| if (model.DefaultReactionEmoji.IsSpecified) | |||||
| { | |||||
| if (model.DefaultReactionEmoji.Value.EmojiId.IsSpecified && model.DefaultReactionEmoji.Value.EmojiId.Value != 0) | |||||
| DefaultReactionEmoji = new Emote(model.DefaultReactionEmoji.Value.EmojiId.Value, null, false); | |||||
| else if (model.DefaultReactionEmoji.Value.EmojiName.IsSpecified) | |||||
| DefaultReactionEmoji = new Emoji(model.DefaultReactionEmoji.Value.EmojiName.Value); | |||||
| else | |||||
| DefaultReactionEmoji = null; | |||||
| } | |||||
| } | } | ||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||