feat: add blue diamond documentation and 'clear' command to pk;config
This commit is contained in:
parent
d0e9ad7193
commit
6a4033b2a9
@ -90,17 +90,23 @@ public static class ContextArgumentsExt
|
|||||||
|
|
||||||
public static async Task<bool> MatchClear(this Context ctx, string toClear = null)
|
public static async Task<bool> MatchClear(this Context ctx, string toClear = null)
|
||||||
{
|
{
|
||||||
var matched = ctx.Match("clear", "reset") || ctx.MatchFlag("c", "clear");
|
var matched = ctx.MatchClearInner();
|
||||||
if (matched && toClear != null)
|
if (matched && toClear != null)
|
||||||
return await ctx.ConfirmClear(toClear);
|
return await ctx.ConfirmClear(toClear);
|
||||||
return matched;
|
return matched;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool MatchClearInner(this Context ctx)
|
||||||
|
=> ctx.Match("clear", "reset", "default") || ctx.MatchFlag("c", "clear");
|
||||||
|
|
||||||
public static bool MatchRaw(this Context ctx) =>
|
public static bool MatchRaw(this Context ctx) =>
|
||||||
ctx.Match("r", "raw") || ctx.MatchFlag("r", "raw");
|
ctx.Match("r", "raw") || ctx.MatchFlag("r", "raw");
|
||||||
|
|
||||||
public static bool MatchToggle(this Context ctx)
|
public static bool MatchToggle(this Context ctx, bool? defaultValue = null)
|
||||||
{
|
{
|
||||||
|
if (defaultValue != null && ctx.MatchClearInner())
|
||||||
|
return defaultValue.Value;
|
||||||
|
|
||||||
var yesToggles = new[] { "yes", "on", "enable", "enabled", "true" };
|
var yesToggles = new[] { "yes", "on", "enable", "enabled", "true" };
|
||||||
var noToggles = new[] { "no", "off", "disable", "disabled", "false" };
|
var noToggles = new[] { "no", "off", "disable", "disabled", "false" };
|
||||||
|
|
||||||
|
@ -111,6 +111,9 @@ public class Config
|
|||||||
|
|
||||||
eb.Description(description.ToString());
|
eb.Description(description.ToString());
|
||||||
|
|
||||||
|
// using *large* blue diamond here since it's easier to see in the small footer
|
||||||
|
eb.Footer(new("\U0001f537 means this setting was changed. Type `pk;config <setting name> clear` to reset it to the default."));
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -125,7 +128,7 @@ public class Config
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var allow = ctx.MatchToggle();
|
var allow = ctx.MatchToggle(true);
|
||||||
|
|
||||||
var statusString = EnabledDisabled(allow);
|
var statusString = EnabledDisabled(allow);
|
||||||
if (ctx.MessageContext.AllowAutoproxy == allow)
|
if (ctx.MessageContext.AllowAutoproxy == allow)
|
||||||
@ -159,7 +162,7 @@ public class Config
|
|||||||
Duration? newTimeout;
|
Duration? newTimeout;
|
||||||
Duration overflow = Duration.Zero;
|
Duration overflow = Duration.Zero;
|
||||||
if (ctx.Match("off", "stop", "cancel", "no", "disable", "remove")) newTimeout = Duration.Zero;
|
if (ctx.Match("off", "stop", "cancel", "no", "disable", "remove")) newTimeout = Duration.Zero;
|
||||||
else if (ctx.Match("reset", "default")) newTimeout = null;
|
else if (await ctx.MatchClear()) newTimeout = null;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var timeoutStr = ctx.RemainderOrNull();
|
var timeoutStr = ctx.RemainderOrNull();
|
||||||
@ -295,7 +298,7 @@ public class Config
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var value = ctx.MatchToggle();
|
var value = ctx.MatchToggle(true);
|
||||||
|
|
||||||
if (ctx.Config.PingsEnabled == value)
|
if (ctx.Config.PingsEnabled == value)
|
||||||
await ctx.Reply(Response(true, ctx.Config.PingsEnabled));
|
await ctx.Reply(Response(true, ctx.Config.PingsEnabled));
|
||||||
@ -315,7 +318,7 @@ public class Config
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ctx.MatchToggle())
|
if (ctx.MatchToggle(false))
|
||||||
{
|
{
|
||||||
await ctx.Repository.UpdateSystemConfig(ctx.System.Id, new() { MemberDefaultPrivate = true });
|
await ctx.Repository.UpdateSystemConfig(ctx.System.Id, new() { MemberDefaultPrivate = true });
|
||||||
|
|
||||||
@ -339,7 +342,7 @@ public class Config
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ctx.MatchToggle())
|
if (ctx.MatchToggle(false))
|
||||||
{
|
{
|
||||||
await ctx.Repository.UpdateSystemConfig(ctx.System.Id, new() { GroupDefaultPrivate = true });
|
await ctx.Repository.UpdateSystemConfig(ctx.System.Id, new() { GroupDefaultPrivate = true });
|
||||||
|
|
||||||
@ -363,7 +366,7 @@ public class Config
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx.MatchToggle())
|
if (ctx.MatchToggle(true))
|
||||||
{
|
{
|
||||||
await ctx.Repository.UpdateSystemConfig(ctx.System.Id, new() { ShowPrivateInfo = true });
|
await ctx.Repository.UpdateSystemConfig(ctx.System.Id, new() { ShowPrivateInfo = true });
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user