Better argument handling

This commit is contained in:
D1GQ committed 2024-11-21 03:15:33 -06:00
1 parent 52ca6d6156
commit 63cb570402
9 files changed
+10 -21

No files matched your search

+2 -2
View File
@@ -1,9 +1,9 @@
namespace BetterAmongUs.Commands
{
public abstract class BaseArgument(BaseCommand? command)
public abstract class BaseArgument(BaseCommand? command, string argInfo)
{
public BaseCommand? Command { get; } = command;
public abstract string ArgInfo { get; }
public string ArgInfo { get; } = argInfo;
public string Arg { get; set; } = string.Empty;
protected virtual string[] ArgSuggestions => GetArgSuggestions.Invoke();
public Func<string[]> GetArgSuggestions { get; set; } = () => { return []; };
+1 -3
View File
@@ -1,9 +1,7 @@
namespace BetterAmongUs.Commands;
public class BoolArgument(BaseCommand? command) : BaseArgument(command)
public class BoolArgument(BaseCommand? command, string argInfo = "{bool}") : BaseArgument(command, argInfo)
{
public override string ArgInfo => suggestion;
public string suggestion = "{bool}";
protected override string[] ArgSuggestions => ["true", "false"];
public bool? GetBool()
{
+1 -2
View File
@@ -2,10 +2,9 @@
namespace BetterAmongUs.Commands;
public class PlayerArgument(BaseCommand? command) : BaseArgument(command)
public class PlayerArgument(BaseCommand? command, string argInfo = "{player}") : BaseArgument(command, argInfo)
{
protected override string[] ArgSuggestions => Main.AllPlayerControls.OrderBy(pc => pc.PlayerId).Select(pc => pc.Data.PlayerName.Replace(' ', '_')).ToArray();
public override string ArgInfo => "{Player}";
public PlayerControl? TryGetTarget()
{
var player = Main.AllPlayerControls.FirstOrDefault(pc => pc.Data.PlayerName.ToLower().Replace(' ', '_') == Arg.ToLower());
+1 -3
View File
@@ -1,7 +1,5 @@
namespace BetterAmongUs.Commands;
public class StringArgument(BaseCommand? command) : BaseArgument(command)
public class StringArgument(BaseCommand? command, string argInfo = "{String}") : BaseArgument(command, argInfo)
{
public override string ArgInfo => suggestion;
public string suggestion = "{String}";
}
+1 -3
View File
@@ -12,10 +12,8 @@ public class KickCommand : BaseCommand
_arguments = new Lazy<BaseArgument[]>(() => new BaseArgument[]
{
new PlayerArgument(this),
new BoolArgument(this),
new BoolArgument(this, "{ban}"),
});
boolArgument.suggestion = "{Ban}";
}
private readonly Lazy<BaseArgument[]> _arguments;
public override BaseArgument[]? Arguments => _arguments.Value;
+1 -2
View File
@@ -13,9 +13,8 @@ public class RemovePlayerCommand : BaseCommand
{
_arguments = new Lazy<BaseArgument[]>(() => new BaseArgument[]
{
new StringArgument(this),
new StringArgument(this, "{identifier}"),
});
identifierArgument.suggestion = "{Identifier}";
identifierArgument.GetArgSuggestions = AntiCheat.GatherAllData;
}
private readonly Lazy<BaseArgument[]> _arguments;
+1 -2
View File
@@ -15,9 +15,8 @@ public class RoleCommand : BaseCommand
{
_arguments = new Lazy<BaseArgument[]>(() => new BaseArgument[]
{
new StringArgument(this),
new StringArgument(this, "{role}"),
});
roleArgument.suggestion = "{Role}";
roleArgument.GetArgSuggestions = () => { return RoleManager.Instance.AllRoles.Select(role => role.NiceName.ToLower()).ToArray(); };
}
private readonly Lazy<BaseArgument[]> _arguments;
+1 -2
View File
@@ -9,9 +9,8 @@ public class SetPrefixCommand : BaseCommand
{
_arguments = new Lazy<BaseArgument[]>(() => new BaseArgument[]
{
new StringArgument(this),
new StringArgument(this, "{prefix}"),
});
prefixArgument.suggestion = "{Prefix}";
}
private readonly Lazy<BaseArgument[]> _arguments;
public override BaseArgument[]? Arguments => _arguments.Value;
+1 -2
View File
@@ -16,9 +16,8 @@ public class SetRoleCommand : BaseCommand
_arguments = new Lazy<BaseArgument[]>(() => new BaseArgument[]
{
new PlayerArgument(this),
new StringArgument(this),
new StringArgument(this, "{role}"),
}); ;
roleArgument.suggestion = "{Name}";
roleArgument.GetArgSuggestions = () => { return RoleManager.Instance.AllRoles.Select(role => role.NiceName.ToLower()).ToArray(); };
}
private readonly Lazy<BaseArgument[]> _arguments;