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 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 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 ); } }