Browse Source

add support for modifing default reaction & some renaming

pull/2469/head
Misha133 2 years ago
parent
commit
bfc5cdd862
8 changed files with 40 additions and 7 deletions
  1. +5
    -0
      src/Discord.Net.Core/Entities/Channels/ForumChannelProperties.cs
  2. +1
    -1
      src/Discord.Net.Rest/API/Common/ForumReactionEmoji.cs
  3. +4
    -1
      src/Discord.Net.Rest/API/Rest/ModifyForumChannelParams.cs
  4. +15
    -0
      src/Discord.Net.Rest/API/Rest/ModifyForumReactionEmojiParams.cs
  5. +1
    -1
      src/Discord.Net.Rest/API/Rest/ModifyForumTagParams.cs
  6. +12
    -2
      src/Discord.Net.Rest/Entities/Channels/ForumHelper.cs
  7. +1
    -1
      src/Discord.Net.Rest/Entities/Channels/RestForumChannel.cs
  8. +1
    -1
      src/Discord.Net.WebSocket/Entities/Channels/SocketForumChannel.cs

+ 5
- 0
src/Discord.Net.Core/Entities/Channels/ForumChannelProperties.cs View File

@@ -47,4 +47,9 @@ public class ForumChannelProperties : TextChannelProperties
/// Gets or sets a collection of tags inside of this forum channel.
/// </summary>
public Optional<IEnumerable<ForumTagProperties>> Tags { get; set; }

/// <summary>
/// Gets or sets a new default reaction emoji in this forum channel.
/// </summary>
public Optional<IEmote> DefaultReactionEmoji { get; set; }
}

+ 1
- 1
src/Discord.Net.Rest/API/Common/ForumReactionEmoji.cs View File

@@ -5,7 +5,7 @@ namespace Discord.API;
public class ForumReactionEmoji
{
[JsonProperty("emoji_id")]
public Optional<ulong> EmojiId { get; set; }
public Optional<ulong?> EmojiId { get; set; }

[JsonProperty("emoji_name")]
public Optional<string> EmojiName { get; set; }


+ 4
- 1
src/Discord.Net.Rest/API/Rest/ModifyForumChannelParams.cs View File

@@ -7,11 +7,14 @@ namespace Discord.API.Rest;
internal class ModifyForumChannelParams : ModifyTextChannelParams
{
[JsonProperty("available_tags")]
public Optional<ForumTagParams[]> Tags { get; set; }
public Optional<ModifyForumTagParams[]> Tags { get; set; }

[JsonProperty("default_thread_rate_limit_per_user")]
public Optional<int> DefaultSlowModeInterval { get; set; }

[JsonProperty("rate_limit_per_user")]
public Optional<int> ThreadCreationInterval { get; set; }

[JsonProperty("default_reaction_emoji")]
public Optional<ModifyForumReactionEmojiParams> DefaultReactionEmoji { get; set; }
}

+ 15
- 0
src/Discord.Net.Rest/API/Rest/ModifyForumReactionEmojiParams.cs View File

@@ -0,0 +1,15 @@
using Newtonsoft.Json;

namespace Discord.API;

[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
public class ModifyForumReactionEmojiParams
{
[JsonProperty("emoji_id")]
public Optional<ulong?> EmojiId { get; set; }

[JsonProperty("emoji_name")]
public Optional<string> EmojiName { get; set; }
}



src/Discord.Net.Rest/API/Rest/ForumTagParams.cs → src/Discord.Net.Rest/API/Rest/ModifyForumTagParams.cs View File

@@ -3,7 +3,7 @@ using Newtonsoft.Json;
namespace Discord.API
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
internal class ForumTagParams
internal class ModifyForumTagParams
{
[JsonProperty("id")]
public Optional<ulong> Id { get; set; }

+ 12
- 2
src/Discord.Net.Rest/Entities/Channels/ForumHelper.cs View File

@@ -1,3 +1,4 @@
using Discord.API;
using System;
using System.Linq;
using System.Threading.Tasks;
@@ -30,7 +31,7 @@ internal static class ForumHelper
DefaultSlowModeInterval = args.DefaultSlowModeInterval,
ThreadCreationInterval = args.ThreadCreationInterval,
Tags = args.Tags.IsSpecified
? args.Tags.Value.Select(tag => new API.ForumTagParams
? args.Tags.Value.Select(tag => new API.ModifyForumTagParams
{
Name = tag.Name,
EmojiId = tag.Emoji is Emote emote
@@ -40,9 +41,18 @@ internal static class ForumHelper
? emoji.Name
: Optional<string>.Unspecified
}).ToArray()
: Optional.Create<API.ForumTagParams[]>(),
: Optional.Create<API.ModifyForumTagParams[]>(),
Flags = args.Flags.GetValueOrDefault(),
Topic = args.Topic,
DefaultReactionEmoji = args.DefaultReactionEmoji.IsSpecified
? new API.ModifyForumReactionEmojiParams
{
EmojiId = args.DefaultReactionEmoji.Value is Emote emote ?
emote.Id : Optional<ulong?>.Unspecified,
EmojiName = args.DefaultReactionEmoji.Value is Emoji emoji ?
emoji.Name : Optional<string>.Unspecified
}
: Optional<ModifyForumReactionEmojiParams>.Unspecified
};
return await client.ApiClient.ModifyGuildChannelAsync(channel.Id, apiArgs, options).ConfigureAwait(false);
}


+ 1
- 1
src/Discord.Net.Rest/Entities/Channels/RestForumChannel.cs View File

@@ -74,7 +74,7 @@ namespace Discord.Rest
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);
DefaultReactionEmoji = new Emote(model.DefaultReactionEmoji.Value.EmojiId.Value.GetValueOrDefault(), null, false);
else if (model.DefaultReactionEmoji.Value.EmojiName.IsSpecified)
DefaultReactionEmoji = new Emoji(model.DefaultReactionEmoji.Value.EmojiName.Value);
else


+ 1
- 1
src/Discord.Net.WebSocket/Entities/Channels/SocketForumChannel.cs View File

@@ -80,7 +80,7 @@ namespace Discord.WebSocket
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);
DefaultReactionEmoji = new Emote(model.DefaultReactionEmoji.Value.EmojiId.Value.GetValueOrDefault(), null, false);
else if (model.DefaultReactionEmoji.Value.EmojiName.IsSpecified)
DefaultReactionEmoji = new Emoji(model.DefaultReactionEmoji.Value.EmojiName.Value);
else


Loading…
Cancel
Save