More work on commands, still needs some work but most should be working now.

This commit is contained in:
hondacrx
2022-08-28 15:48:56 -04:00
parent 89b92985c5
commit 0c0e588f18
13 changed files with 495 additions and 483 deletions
+14 -4
View File
@@ -223,7 +223,7 @@ namespace Game.Chat
if (cmd != null)
{ /* if we matched a command at some point, invoke it */
handler._sentErrorMessage = false;
handler.SetSentErrorMessage(false);
if (cmd.IsInvokerVisible(handler) && cmd.Invoke(handler, oldTail))
{ /* invocation succeeded, log this */
if (!handler.IsConsole())
@@ -413,10 +413,20 @@ namespace Game.Chat
return (bool)_methodInfo.Invoke(null, new object[] { handler, new StringArguments(args) });
else
{
if (CommandArgs.Parse(out dynamic[] parseArgs, handler, parameters, args))
var parseArgs = new dynamic[parameters.Length];
parseArgs[0] = handler;
var result = CommandArgs.ConsumeFromOffset(parseArgs, 1, parameters, handler, args);
if (result.IsSuccessful())
return (bool)_methodInfo.Invoke(null, parseArgs);
return false;
else
{
if (result.HasErrorMessage())
{
handler.SendSysMessage(result.GetErrorMessage());
handler.SetSentErrorMessage(true);
}
return false;
}
}
}
}