Properly skip flag parsing when handling proxy tags
This commit is contained in:
parent
8d3be79d33
commit
75947301f1
@ -50,7 +50,7 @@ namespace PluralKit.Bot
|
|||||||
public string PopArgument() => _parameters.Pop();
|
public string PopArgument() => _parameters.Pop();
|
||||||
public string PeekArgument() => _parameters.Peek();
|
public string PeekArgument() => _parameters.Peek();
|
||||||
public string RemainderOrNull(bool skipFlags = true) => _parameters.Remainder(skipFlags).Length == 0 ? null : _parameters.Remainder(skipFlags);
|
public string RemainderOrNull(bool skipFlags = true) => _parameters.Remainder(skipFlags).Length == 0 ? null : _parameters.Remainder(skipFlags);
|
||||||
public bool HasNext() => RemainderOrNull() != null;
|
public bool HasNext(bool skipFlags = true) => RemainderOrNull(skipFlags) != null;
|
||||||
public string FullCommand => _parameters.FullCommand;
|
public string FullCommand => _parameters.FullCommand;
|
||||||
|
|
||||||
public Task<IUserMessage> Reply(string text = null, Embed embed = null) =>
|
public Task<IUserMessage> Reply(string text = null, Embed embed = null) =>
|
||||||
|
@ -44,7 +44,7 @@ namespace PluralKit.Bot
|
|||||||
|
|
||||||
// "Sub"command: no arguments clearing
|
// "Sub"command: no arguments clearing
|
||||||
// Also matches the pseudo-subcommand "text" which is equivalent to empty proxy tags on both sides.
|
// Also matches the pseudo-subcommand "text" which is equivalent to empty proxy tags on both sides.
|
||||||
if (!ctx.HasNext() || ctx.Match("clear", "purge", "clean", "removeall"))
|
if (!ctx.HasNext(skipFlags: false) || ctx.Match("clear", "purge", "clean", "removeall"))
|
||||||
{
|
{
|
||||||
// If we already have multiple tags, this would clear everything, so prompt that
|
// If we already have multiple tags, this would clear everything, so prompt that
|
||||||
if (target.ProxyTags.Count > 1)
|
if (target.ProxyTags.Count > 1)
|
||||||
@ -63,7 +63,7 @@ namespace PluralKit.Bot
|
|||||||
// Subcommand: "add"
|
// Subcommand: "add"
|
||||||
else if (ctx.Match("add", "append"))
|
else if (ctx.Match("add", "append"))
|
||||||
{
|
{
|
||||||
if (!ctx.HasNext()) throw new PKSyntaxError("You must pass an example proxy to add (eg. `[text]` or `J:text`).");
|
if (!ctx.HasNext(skipFlags: false)) throw new PKSyntaxError("You must pass an example proxy to add (eg. `[text]` or `J:text`).");
|
||||||
|
|
||||||
var tagToAdd = ParseProxyTags(ctx.RemainderOrNull(skipFlags: false));
|
var tagToAdd = ParseProxyTags(ctx.RemainderOrNull(skipFlags: false));
|
||||||
if (tagToAdd.IsEmpty) throw Errors.EmptyProxyTags(target);
|
if (tagToAdd.IsEmpty) throw Errors.EmptyProxyTags(target);
|
||||||
@ -83,7 +83,7 @@ namespace PluralKit.Bot
|
|||||||
// Subcommand: "remove"
|
// Subcommand: "remove"
|
||||||
else if (ctx.Match("remove", "delete"))
|
else if (ctx.Match("remove", "delete"))
|
||||||
{
|
{
|
||||||
if (!ctx.HasNext()) throw new PKSyntaxError("You must pass a proxy tag to remove (eg. `[text]` or `J:text`).");
|
if (!ctx.HasNext(skipFlags: false)) throw new PKSyntaxError("You must pass a proxy tag to remove (eg. `[text]` or `J:text`).");
|
||||||
|
|
||||||
var tagToRemove = ParseProxyTags(ctx.RemainderOrNull(skipFlags: false));
|
var tagToRemove = ParseProxyTags(ctx.RemainderOrNull(skipFlags: false));
|
||||||
if (tagToRemove.IsEmpty) throw Errors.EmptyProxyTags(target);
|
if (tagToRemove.IsEmpty) throw Errors.EmptyProxyTags(target);
|
||||||
@ -100,7 +100,7 @@ namespace PluralKit.Bot
|
|||||||
// Subcommand: bare proxy tag given
|
// Subcommand: bare proxy tag given
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!ctx.HasNext()) throw new PKSyntaxError("You must pass an example proxy to set (eg. `[text]` or `J:text`).");
|
if (!ctx.HasNext(skipFlags: false)) throw new PKSyntaxError("You must pass an example proxy to set (eg. `[text]` or `J:text`).");
|
||||||
|
|
||||||
var requestedTag = ParseProxyTags(ctx.RemainderOrNull(skipFlags: false));
|
var requestedTag = ParseProxyTags(ctx.RemainderOrNull(skipFlags: false));
|
||||||
if (requestedTag.IsEmpty) throw Errors.EmptyProxyTags(target);
|
if (requestedTag.IsEmpty) throw Errors.EmptyProxyTags(target);
|
||||||
|
Loading…
Reference in New Issue
Block a user