[ifcbrk] feature: suppress messages
yeah man I support the first amendment
This commit is contained in:
@@ -50,5 +50,7 @@ namespace Discord.API
|
||||
// sent with Rich Presence-related chat embeds
|
||||
[JsonProperty("application")]
|
||||
public Optional<MessageApplication> Application { get; set; }
|
||||
[JsonProperty("flags")]
|
||||
public Optional<MessageFlags> Flags { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -608,6 +608,16 @@ namespace Discord.API
|
||||
return await SendJsonAsync<Message>("PATCH", () => $"channels/{channelId}/messages/{messageId}", args, ids, clientBucket: ClientBucketType.SendEdit, options: options).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task SuppressEmbedAsync(ulong channelId, ulong messageId, Rest.SuppressEmbedParams args, RequestOptions options = null)
|
||||
{
|
||||
Preconditions.NotEqual(channelId, 0, nameof(channelId));
|
||||
Preconditions.NotEqual(messageId, 0, nameof(messageId));
|
||||
options = RequestOptions.CreateOrClone(options);
|
||||
|
||||
var ids = new BucketIds(channelId: channelId);
|
||||
await SendJsonAsync("POST", () => $"channels/{channelId}/messages/{messageId}/suppress-embeds", args, ids, options: options).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task AddReactionAsync(ulong channelId, ulong messageId, string emoji, RequestOptions options = null)
|
||||
{
|
||||
Preconditions.NotEqual(channelId, 0, nameof(channelId));
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace Discord.Rest
|
||||
|
||||
var args = new MessageProperties();
|
||||
func(args);
|
||||
|
||||
var apiArgs = new API.Rest.ModifyMessageParams
|
||||
{
|
||||
Content = args.Content,
|
||||
@@ -35,6 +36,15 @@ namespace Discord.Rest
|
||||
await client.ApiClient.DeleteMessageAsync(channelId, msgId, options).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public static async Task SuppressEmbedsAsync(IMessage msg, BaseDiscordClient client, bool suppress, RequestOptions options)
|
||||
{
|
||||
var apiArgs = new API.Rest.SuppressEmbedParams
|
||||
{
|
||||
Suppressed = suppress
|
||||
};
|
||||
await client.ApiClient.SuppressEmbedAsync(msg.Channel.Id, msg.Id, apiArgs, options).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public static async Task AddReactionAsync(IMessage msg, IEmote emote, BaseDiscordClient client, RequestOptions options)
|
||||
{
|
||||
await client.ApiClient.AddReactionAsync(msg.Channel.Id, msg.Id, emote is Emote e ? $"{e.Name}:{e.Id}" : emote.Name, options).ConfigureAwait(false);
|
||||
|
||||
@@ -33,6 +33,8 @@ namespace Discord.Rest
|
||||
/// <inheritdoc />
|
||||
public virtual bool IsPinned => false;
|
||||
/// <inheritdoc />
|
||||
public virtual bool IsSuppressed => false;
|
||||
/// <inheritdoc />
|
||||
public virtual DateTimeOffset? EditedTimestamp => null;
|
||||
/// <summary>
|
||||
/// Gets a collection of the <see cref="Attachment"/>'s on the message.
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace Discord.Rest
|
||||
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
|
||||
public class RestUserMessage : RestMessage, IUserMessage
|
||||
{
|
||||
private bool _isMentioningEveryone, _isTTS, _isPinned;
|
||||
private bool _isMentioningEveryone, _isTTS, _isPinned, _isSuppressed;
|
||||
private long? _editedTimestampTicks;
|
||||
private ImmutableArray<Attachment> _attachments = ImmutableArray.Create<Attachment>();
|
||||
private ImmutableArray<Embed> _embeds = ImmutableArray.Create<Embed>();
|
||||
@@ -26,6 +26,8 @@ namespace Discord.Rest
|
||||
/// <inheritdoc />
|
||||
public override bool IsPinned => _isPinned;
|
||||
/// <inheritdoc />
|
||||
public override bool IsSuppressed => _isSuppressed;
|
||||
/// <inheritdoc />
|
||||
public override DateTimeOffset? EditedTimestamp => DateTimeUtils.FromTicks(_editedTimestampTicks);
|
||||
/// <inheritdoc />
|
||||
public override IReadOnlyCollection<Attachment> Attachments => _attachments;
|
||||
@@ -65,6 +67,10 @@ namespace Discord.Rest
|
||||
_editedTimestampTicks = model.EditedTimestamp.Value?.UtcTicks;
|
||||
if (model.MentionEveryone.IsSpecified)
|
||||
_isMentioningEveryone = model.MentionEveryone.Value;
|
||||
if (model.Flags.IsSpecified)
|
||||
{
|
||||
_isSuppressed = model.Flags.Value.HasFlag(API.MessageFlags.Suppressed);
|
||||
}
|
||||
|
||||
if (model.Attachments.IsSpecified)
|
||||
{
|
||||
@@ -163,6 +169,9 @@ namespace Discord.Rest
|
||||
/// <inheritdoc />
|
||||
public Task UnpinAsync(RequestOptions options = null)
|
||||
=> MessageHelper.UnpinAsync(this, Discord, options);
|
||||
/// <inheritdoc />
|
||||
public Task ModifySuppressionAsync(bool suppressEmbeds, RequestOptions options = null)
|
||||
=> MessageHelper.SuppressEmbedsAsync(this, Discord, suppressEmbeds, options);
|
||||
|
||||
public string Resolve(int startIndex, TagHandling userHandling = TagHandling.Name, TagHandling channelHandling = TagHandling.Name,
|
||||
TagHandling roleHandling = TagHandling.Name, TagHandling everyoneHandling = TagHandling.Ignore, TagHandling emojiHandling = TagHandling.Name)
|
||||
|
||||
Reference in New Issue
Block a user