using PluralKit.Core; namespace PluralKit.Bot; public static class ContextParametersExt { public static async Task 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 ParamResolveMember(this Context ctx, string param_name) { return await ctx.Parameters.ResolveParameter( ctx, param_name, param => (param as Parameter.MemberRef)?.member ); } public static async Task> ParamResolveMembers(this Context ctx, string param_name) { return await ctx.Parameters.ResolveParameter( ctx, param_name, param => (param as Parameter.MemberRefs)?.members ); } public static async Task ParamResolveGroup(this Context ctx, string param_name) { return await ctx.Parameters.ResolveParameter( ctx, param_name, param => (param as Parameter.GroupRef)?.group ); } public static async Task> ParamResolveGroups(this Context ctx, string param_name) { return await ctx.Parameters.ResolveParameter( ctx, param_name, param => (param as Parameter.GroupRefs)?.groups ); } public static async Task 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 ParamResolveMemberPrivacyTarget(this Context ctx, string param_name) { return await ctx.Parameters.ResolveParameter( ctx, param_name, param => (param as Parameter.MemberPrivacyTarget)?.target ); } public static async Task ParamResolveGroupPrivacyTarget(this Context ctx, string param_name) { return await ctx.Parameters.ResolveParameter( ctx, param_name, param => (param as Parameter.GroupPrivacyTarget)?.target ); } public static async Task 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 ParamResolvePrivacyLevel(this Context ctx, string param_name) { return await ctx.Parameters.ResolveParameter( ctx, param_name, param => (param as Parameter.PrivacyLevel)?.level ); } public static async Task ParamResolveToggle(this Context ctx, string param_name) { return await ctx.Parameters.ResolveParameter( ctx, param_name, param => (param as Parameter.Toggle)?.value ); } public static async Task ParamResolveAvatar(this Context ctx, string param_name) { return await ctx.Parameters.ResolveParameter( ctx, param_name, param => (param as Parameter.Avatar)?.avatar ); } public static async Task ParamResolveGuild(this Context ctx, string param_name) { return await ctx.Parameters.ResolveParameter( ctx, param_name, param => (param as Parameter.GuildRef)?.guild ); } }