diff --git a/VpSharp.Commands/CommandsExtension.cs b/VpSharp.Commands/CommandsExtension.cs index 3bb6949..b4897ee 100644 --- a/VpSharp.Commands/CommandsExtension.cs +++ b/VpSharp.Commands/CommandsExtension.cs @@ -253,7 +253,7 @@ public sealed class CommandsExtension : VirtualParadiseClientExtension } ParameterInfo[] parameters = commandMethod.GetParameters(); - if (parameters.Length != arguments.Length) + if (parameters.Length != arguments.Length || parameters[arguments.Length..].Any(p => !p.IsOptional)) { return base.OnMessageReceived(args); } @@ -286,6 +286,11 @@ public sealed class CommandsExtension : VirtualParadiseClientExtension } } + for (int index = arguments.Length; index < parameters.Length; index++) + { + arguments[index] = parameters[index].DefaultValue; + } + object? returnValue = commandMethod.Invoke(command.Module, arguments); if (returnValue is Task task) {