mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-04 13:06:50 +00:00
54 lines
No EOL
1.6 KiB
C#
54 lines
No EOL
1.6 KiB
C#
using PluralKit.Core;
|
|
|
|
namespace PluralKit.Bot;
|
|
|
|
public static class ContextFlagsExt
|
|
{
|
|
public static async Task<string?> FlagResolveOpaque(this Context ctx, string param_name)
|
|
{
|
|
return await ctx.Parameters.ResolveFlag(
|
|
ctx, param_name,
|
|
param => (param as Parameter.Opaque)?.value
|
|
);
|
|
}
|
|
|
|
public static async Task<PKMember?> FlagResolveMember(this Context ctx, string param_name)
|
|
{
|
|
return await ctx.Parameters.ResolveFlag(
|
|
ctx, param_name,
|
|
param => (param as Parameter.MemberRef)?.member
|
|
);
|
|
}
|
|
|
|
public static async Task<PKSystem?> FlagResolveSystem(this Context ctx, string param_name)
|
|
{
|
|
return await ctx.Parameters.ResolveFlag(
|
|
ctx, param_name,
|
|
param => (param as Parameter.SystemRef)?.system
|
|
);
|
|
}
|
|
|
|
public static async Task<MemberPrivacySubject?> FlagResolveMemberPrivacyTarget(this Context ctx, string param_name)
|
|
{
|
|
return await ctx.Parameters.ResolveFlag(
|
|
ctx, param_name,
|
|
param => (param as Parameter.MemberPrivacyTarget)?.target
|
|
);
|
|
}
|
|
|
|
public static async Task<string?> FlagResolvePrivacyLevel(this Context ctx, string param_name)
|
|
{
|
|
return await ctx.Parameters.ResolveFlag(
|
|
ctx, param_name,
|
|
param => (param as Parameter.PrivacyLevel)?.level
|
|
);
|
|
}
|
|
|
|
public static async Task<bool?> FlagResolveToggle(this Context ctx, string param_name)
|
|
{
|
|
return await ctx.Parameters.ResolveFlag(
|
|
ctx, param_name,
|
|
param => (param as Parameter.Toggle)?.value
|
|
);
|
|
}
|
|
} |