fix message edit commands, parse DM message links for ids

This commit is contained in:
dusk 2025-10-13 10:25:55 +00:00
parent 134855f8f8
commit a307dd37c4
No known key found for this signature in database
6 changed files with 74 additions and 47 deletions

View file

@ -282,7 +282,8 @@ public partial class CommandTree
Commands.MessageInfo(var param, var flags) => ctx.Execute<ProxiedMessage>(Message, m => m.GetMessage(ctx, param.target.MessageId, flags.GetReplyFormat(), flags.delete, flags.author)),
Commands.MessageAuthor(var param, var flags) => ctx.Execute<ProxiedMessage>(Message, m => m.GetMessage(ctx, param.target.MessageId, flags.GetReplyFormat(), false, true)),
Commands.MessageDelete(var param, var flags) => ctx.Execute<ProxiedMessage>(Message, m => m.GetMessage(ctx, param.target.MessageId, flags.GetReplyFormat(), true, false)),
Commands.MessageEdit(var param, var flags) => ctx.Execute<ProxiedMessage>(MessageEdit, m => m.EditMessage(ctx, param.target.MessageId, param.new_content, flags.regex, flags.mutate_space, flags.append, flags.prepend, flags.clear_embeds, flags.clear_attachments)),
Commands.MessageEditSpecified(var param, var flags) => ctx.Execute<ProxiedMessage>(MessageEdit, m => m.EditMessage(ctx, param.target.MessageId, param.new_content, flags.regex, flags.mutate_space, flags.append, flags.prepend, flags.clear_embeds, flags.clear_attachments)),
Commands.MessageEdit(var param, var flags) => ctx.Execute<ProxiedMessage>(MessageEdit, m => m.EditMessage(ctx, null, param.new_content, flags.regex, flags.mutate_space, flags.append, flags.prepend, flags.clear_embeds, flags.clear_attachments)),
Commands.MessageReproxySpecified(var param, _) => ctx.Execute<ProxiedMessage>(MessageReproxy, m => m.ReproxyMessage(ctx, param.msg.MessageId, param.member)),
Commands.MessageReproxy(var param, _) => ctx.Execute<ProxiedMessage>(MessageReproxy, m => m.ReproxyMessage(ctx, null, param.member)),
Commands.Import(var param, var flags) => ctx.Execute<ImportExport>(Import, m => m.Import(ctx, param.url, flags.yes)),

View file

@ -9,24 +9,24 @@ namespace PluralKit.Bot;
// corresponds to the ffi Paramater type, but with stricter types (also avoiding exposing ffi types!)
public abstract record Parameter()
{
public record MemberRef(PKMember member): Parameter;
public record MemberRefs(List<PKMember> members): Parameter;
public record GroupRef(PKGroup group): Parameter;
public record GroupRefs(List<PKGroup> groups): Parameter;
public record SystemRef(PKSystem system): Parameter;
public record UserRef(User user): Parameter;
public record MessageRef(Message.Reference message): Parameter;
public record ChannelRef(Channel channel): Parameter;
public record GuildRef(Guild guild): Parameter;
public record MemberPrivacyTarget(MemberPrivacySubject target): Parameter;
public record GroupPrivacyTarget(GroupPrivacySubject target): Parameter;
public record SystemPrivacyTarget(SystemPrivacySubject target): Parameter;
public record PrivacyLevel(Core.PrivacyLevel level): Parameter;
public record Toggle(bool value): Parameter;
public record Opaque(string value): Parameter;
public record Number(int value): Parameter;
public record Avatar(ParsedImage avatar): Parameter;
public record ProxySwitchAction(SystemConfig.ProxySwitchAction action): Parameter;
public record MemberRef(PKMember member) : Parameter;
public record MemberRefs(List<PKMember> members) : Parameter;
public record GroupRef(PKGroup group) : Parameter;
public record GroupRefs(List<PKGroup> groups) : Parameter;
public record SystemRef(PKSystem system) : Parameter;
public record UserRef(User user) : Parameter;
public record MessageRef(Message.Reference message) : Parameter;
public record ChannelRef(Channel channel) : Parameter;
public record GuildRef(Guild guild) : Parameter;
public record MemberPrivacyTarget(MemberPrivacySubject target) : Parameter;
public record GroupPrivacyTarget(GroupPrivacySubject target) : Parameter;
public record SystemPrivacyTarget(SystemPrivacySubject target) : Parameter;
public record PrivacyLevel(Core.PrivacyLevel level) : Parameter;
public record Toggle(bool value) : Parameter;
public record Opaque(string value) : Parameter;
public record Number(int value) : Parameter;
public record Avatar(ParsedImage avatar) : Parameter;
public record ProxySwitchAction(SystemConfig.ProxySwitchAction action) : Parameter;
}
public class Parameters
@ -48,6 +48,10 @@ public class Parameters
_cb = command.@commandRef;
_flags = command.@flags;
_params = command.@params;
foreach (var param in _params)
{
Console.WriteLine($"{param.Key}: {param.Value}");
}
}
else
{