2025-01-07 23:15:18 +09:00
|
|
|
using PluralKit.Core;
|
|
|
|
|
|
|
|
|
|
namespace PluralKit.Bot;
|
|
|
|
|
|
|
|
|
|
public static class ContextParametersExt
|
|
|
|
|
{
|
|
|
|
|
public static async Task<string?> ParamResolveOpaque(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.Opaque)?.value
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static async Task<PKMember?> ParamResolveMember(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.MemberRef)?.member
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-03 15:50:54 +00:00
|
|
|
public static async Task<List<PKMember>?> ParamResolveMembers(this Context ctx, string param_name)
|
2025-09-24 21:36:33 +00:00
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.MemberRefs)?.members
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-26 23:56:49 +00:00
|
|
|
public static async Task<PKGroup?> ParamResolveGroup(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.GroupRef)?.group
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-03 15:50:54 +00:00
|
|
|
public static async Task<List<PKGroup>?> ParamResolveGroups(this Context ctx, string param_name)
|
2025-10-01 00:51:45 +00:00
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.GroupRefs)?.groups
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-07 23:15:18 +09:00
|
|
|
public static async Task<PKSystem?> ParamResolveSystem(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.SystemRef)?.system
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static async Task<MemberPrivacySubject?> ParamResolveMemberPrivacyTarget(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.MemberPrivacyTarget)?.target
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-01 00:51:45 +00:00
|
|
|
public static async Task<GroupPrivacySubject?> ParamResolveGroupPrivacyTarget(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.GroupPrivacyTarget)?.target
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2025-04-04 06:14:17 +09:00
|
|
|
public static async Task<SystemPrivacySubject?> ParamResolveSystemPrivacyTarget(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.SystemPrivacyTarget)?.target
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static async Task<PrivacyLevel?> ParamResolvePrivacyLevel(this Context ctx, string param_name)
|
2025-01-07 23:15:18 +09:00
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.PrivacyLevel)?.level
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static async Task<bool?> ParamResolveToggle(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.Toggle)?.value
|
|
|
|
|
);
|
|
|
|
|
}
|
2025-04-04 03:50:07 +09:00
|
|
|
|
|
|
|
|
public static async Task<ParsedImage?> ParamResolveAvatar(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.Avatar)?.avatar
|
|
|
|
|
);
|
|
|
|
|
}
|
2025-04-04 05:24:09 +09:00
|
|
|
|
2025-10-03 02:21:12 +00:00
|
|
|
public static async Task<Myriad.Types.Message.Reference?> ParamResolveMessage(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.MessageRef)?.message
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static async Task<Myriad.Types.Channel?> ParamResolveChannel(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.ChannelRef)?.channel
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2025-04-04 05:24:09 +09:00
|
|
|
public static async Task<Myriad.Types.Guild?> ParamResolveGuild(this Context ctx, string param_name)
|
|
|
|
|
{
|
|
|
|
|
return await ctx.Parameters.ResolveParameter(
|
|
|
|
|
ctx, param_name,
|
|
|
|
|
param => (param as Parameter.GuildRef)?.guild
|
|
|
|
|
);
|
|
|
|
|
}
|
2025-01-07 23:15:18 +09:00
|
|
|
}
|