mirror of
https://github.com/D1GQ/BetterAmongUs.git
synced 2026-10-20 01:46:19 +00:00
Better player argument
This commit is contained in:
1 parent
4f48b14d44
commit
52ca6d6156
1 file changed
+6
-27
@@ -4,38 +4,17 @@ namespace BetterAmongUs.Commands;
|
||||
|
||||
public class PlayerArgument(BaseCommand? command) : BaseArgument(command)
|
||||
{
|
||||
protected override string[] ArgSuggestions => Main.AllPlayerControls.OrderBy(pc => pc.PlayerId).Select(pc => pc.PlayerId.ToString()).ToArray();
|
||||
public override string ArgInfo => "{Id}";
|
||||
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 digits = Arg.Where(char.IsDigit).ToArray();
|
||||
bool isDigitFlag = digits.Any();
|
||||
bool playerFound = false;
|
||||
var player = Main.AllPlayerControls.FirstOrDefault(pc => pc.Data.PlayerName.ToLower().Replace(' ', '_') == Arg.ToLower());
|
||||
|
||||
if (isDigitFlag)
|
||||
if (player == null)
|
||||
{
|
||||
if (int.TryParse(new string(digits), out var playerId))
|
||||
{
|
||||
playerFound = Main.AllPlayerControls.Any(player => !player.isDummy && player.Data.PlayerId == playerId);
|
||||
}
|
||||
BaseCommand.CommandErrorText($"Player not found!");
|
||||
}
|
||||
|
||||
if (playerFound && byte.TryParse(Arg, out var num))
|
||||
{
|
||||
return Utils.PlayerFromPlayerId(num);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isDigitFlag)
|
||||
{
|
||||
BaseCommand.CommandErrorText($"Invalid Syntax!");
|
||||
}
|
||||
else if (!playerFound)
|
||||
{
|
||||
BaseCommand.CommandErrorText($"Player not found!");
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
return player;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user