fix: don't try to re-send stickers and activity invites
This commit is contained in:
parent
2639989183
commit
a16903037f
@ -8,6 +8,7 @@ public record ExecuteWebhookRequest
|
||||
public string? Username { get; init; }
|
||||
public string? AvatarUrl { get; init; }
|
||||
public Embed[] Embeds { get; init; }
|
||||
public Sticker[] Stickers { get; init; }
|
||||
public Message.Attachment[] Attachments { get; set; }
|
||||
public AllowedMentions? AllowedMentions { get; init; }
|
||||
}
|
@ -43,6 +43,7 @@ public record Message
|
||||
public ulong Id { get; init; }
|
||||
public ulong ChannelId { get; init; }
|
||||
public ulong? GuildId { get; init; }
|
||||
public MessageActivity? Activity { get; init; }
|
||||
public User Author { get; init; }
|
||||
public string? Content { get; init; }
|
||||
public string? Timestamp { get; init; }
|
||||
@ -54,6 +55,8 @@ public record Message
|
||||
|
||||
public Attachment[] Attachments { get; init; }
|
||||
public Embed[]? Embeds { get; init; }
|
||||
public Sticker[]? StickerItems { get; init; }
|
||||
public Sticker[]? Stickers { get; init; }
|
||||
public Reaction[] Reactions { get; init; }
|
||||
public bool Pinned { get; init; }
|
||||
public ulong? WebhookId { get; init; }
|
||||
@ -69,6 +72,8 @@ public record Message
|
||||
|
||||
public record Reference(ulong? GuildId, ulong? ChannelId, ulong? MessageId);
|
||||
|
||||
public record MessageActivity(int Type, string PartyId);
|
||||
|
||||
public record Attachment
|
||||
{
|
||||
public ulong Id { get; init; }
|
||||
|
29
Myriad/Types/Sticker.cs
Normal file
29
Myriad/Types/Sticker.cs
Normal file
@ -0,0 +1,29 @@
|
||||
namespace Myriad.Types;
|
||||
|
||||
public record Sticker
|
||||
{
|
||||
public enum StickerType
|
||||
{
|
||||
STANDARD = 1,
|
||||
GUILD = 2,
|
||||
}
|
||||
|
||||
public enum StickerFormatType
|
||||
{
|
||||
PNG = 1,
|
||||
APNG = 2,
|
||||
LOTTIE = 3,
|
||||
}
|
||||
|
||||
public ulong Id { get; init; }
|
||||
public StickerType Type { get; init; }
|
||||
public ulong? PackId { get; init; }
|
||||
public string Name { get; init; }
|
||||
public string? Description { get; init; }
|
||||
public string Tags { get; init; }
|
||||
public string Asset { get; init; }
|
||||
public bool Available { get; init; }
|
||||
public ulong? GuildId { get; init; }
|
||||
public User? User { get; init; }
|
||||
public int? SortValue { get; init; }
|
||||
}
|
@ -115,6 +115,12 @@ public class ProxyService
|
||||
if (isMessageBlank && msg.Attachments.Length == 0)
|
||||
throw new ProxyChecksFailedException("Message cannot be blank.");
|
||||
|
||||
if (msg.Activity != null)
|
||||
throw new ProxyChecksFailedException("Message contains an invite to an activity, which cannot be re-sent by PluralKit.");
|
||||
|
||||
if (msg.StickerItems != null) // && msg.StickerItems.Any(s => s.Type == Sticker.StickerType.GUILD && s.GuildId != msg.GuildId))
|
||||
throw new ProxyChecksFailedException("Message contains stickers, which cannot be re-sent by PluralKit.");
|
||||
|
||||
// All good!
|
||||
return true;
|
||||
}
|
||||
@ -158,6 +164,7 @@ public class ProxyService
|
||||
Attachments = trigger.Attachments,
|
||||
FileSizeLimit = guild.FileSizeLimit(),
|
||||
Embeds = embeds.ToArray(),
|
||||
Stickers = trigger.StickerItems,
|
||||
AllowEveryone = allowEveryone
|
||||
});
|
||||
await HandleProxyExecutedActions(ctx, trigger, proxyMessage, match);
|
||||
|
@ -37,6 +37,7 @@ public record ProxyRequest
|
||||
public Message.Attachment[] Attachments { get; init; }
|
||||
public int FileSizeLimit { get; init; }
|
||||
public Embed[] Embeds { get; init; }
|
||||
public Sticker[] Stickers { get; init; }
|
||||
public bool AllowEveryone { get; init; }
|
||||
}
|
||||
|
||||
@ -115,7 +116,8 @@ public class WebhookExecutorService
|
||||
Content = content,
|
||||
AllowedMentions = allowedMentions,
|
||||
AvatarUrl = !string.IsNullOrWhiteSpace(req.AvatarUrl) ? req.AvatarUrl : null,
|
||||
Embeds = req.Embeds
|
||||
Embeds = req.Embeds,
|
||||
Stickers = req.Stickers,
|
||||
};
|
||||
|
||||
MultipartFile[] files = null;
|
||||
|
Loading…
Reference in New Issue
Block a user