public Type GetFirstUnsupportedParameter() { foreach (var param in InvokeParameters) { if (!GameConsoleParser.IsSupportedParameterType(param.Type)) { return param.Type; } } return null; }
public override void Invoke(string[] paramStrings) { if (paramStrings.Length == 1) { if (GameConsoleParser.Parse(paramStrings[0], InvokeParameters[0].Type, out object value)) { if (CanSetValue()) { SetValue(value); if (_saveMode != ConsoleVarAttribute.SaveMode.NotSaved) SaveValue(value); } else { Log.Warning($"Cannot set {DisplayName}'s value."); } } else { Log.Warning($"Type {InvokeParameters[0].Type.GetPrettyName()} expected."); } } else if (paramStrings.Length == 0) { if (CanGetValue()) { GameConsole.Write($"{DisplayName} = {GetValue() ?? "null"}", GameConsole.LineColor.Command); } else { Log.Warning($"Cannot get {DisplayName}'s value."); } } else { Log.Warning($"Expecting 0 or 1 parameter."); } }