// Token: 0x06000CCC RID: 3276 RVA: 0x0003161C File Offset: 0x0002F81C public static bool RunCommand(ref global::ConsoleSystem.Arg arg, bool bWantReply = true) { Type[] array = global::ConsoleSystem.FindTypes(arg.Class); if (array.Length == 0) { if (bWantReply) { arg.ReplyWith("Console class not found: " + arg.Class); } return(false); } if (bWantReply) { arg.ReplyWith(string.Concat(new string[] { "command ", arg.Class, ".", arg.Function, " was executed" })); } Type[] array2 = array; int i = 0; while (i < array2.Length) { Type type = array2[i]; MethodInfo method = type.GetMethod(arg.Function); if (method != null && method.IsStatic) { if (!arg.CheckPermissions(method.GetCustomAttributes(true))) { if (bWantReply) { arg.ReplyWith("No permission: " + arg.Class + "." + arg.Function); } return(false); } object[] array3 = new global::ConsoleSystem.Arg[] { arg }; try { method.Invoke(null, array3); } catch (Exception ex) { Debug.LogWarning(string.Concat(new string[] { "Error: ", arg.Class, ".", arg.Function, " - ", ex.Message })); arg.ReplyWith(string.Concat(new string[] { "Error: ", arg.Class, ".", arg.Function, " - ", ex.Message })); return(false); } arg = (array3[0] as global::ConsoleSystem.Arg); return(true); } else { FieldInfo field = type.GetField(arg.Function); if (field != null && field.IsStatic) { if (!arg.CheckPermissions(field.GetCustomAttributes(true))) { if (bWantReply) { arg.ReplyWith("No permission: " + arg.Class + "." + arg.Function); } return(false); } Type fieldType = field.FieldType; if (arg.HasArgs(1)) { try { string str = field.GetValue(null).ToString(); if (fieldType == typeof(float)) { field.SetValue(null, float.Parse(arg.Args[0])); } if (fieldType == typeof(int)) { field.SetValue(null, int.Parse(arg.Args[0])); } if (fieldType == typeof(string)) { field.SetValue(null, arg.Args[0]); } if (fieldType == typeof(bool)) { field.SetValue(null, bool.Parse(arg.Args[0])); } if (bWantReply) { arg.ReplyWith(string.Concat(new string[] { arg.Class, ".", arg.Function, ": changed ", Facepunch.Utility.String.QuoteSafe(str), " to ", Facepunch.Utility.String.QuoteSafe(field.GetValue(null).ToString()), " (", fieldType.Name, ")" })); } } catch (Exception) { if (bWantReply) { arg.ReplyWith("error setting value: " + arg.Class + "." + arg.Function); } } } else if (bWantReply) { arg.ReplyWith(string.Concat(new string[] { arg.Class, ".", arg.Function, ": ", Facepunch.Utility.String.QuoteSafe(field.GetValue(null).ToString()), " (", fieldType.Name, ")" })); } return(true); } else { PropertyInfo property = type.GetProperty(arg.Function); if (property != null && property.GetGetMethod().IsStatic&& property.GetSetMethod().IsStatic) { if (!arg.CheckPermissions(property.GetCustomAttributes(true))) { if (bWantReply) { arg.ReplyWith("No permission: " + arg.Class + "." + arg.Function); } return(false); } Type propertyType = property.PropertyType; if (arg.HasArgs(1)) { try { string str2 = property.GetValue(null, null).ToString(); if (propertyType == typeof(float)) { property.SetValue(null, float.Parse(arg.Args[0]), null); } if (propertyType == typeof(int)) { property.SetValue(null, int.Parse(arg.Args[0]), null); } if (propertyType == typeof(string)) { property.SetValue(null, arg.Args[0], null); } if (propertyType == typeof(bool)) { property.SetValue(null, bool.Parse(arg.Args[0]), null); } if (bWantReply) { arg.ReplyWith(string.Concat(new string[] { arg.Class, ".", arg.Function, ": changed ", Facepunch.Utility.String.QuoteSafe(str2), " to ", Facepunch.Utility.String.QuoteSafe(property.GetValue(null, null).ToString()), " (", propertyType.Name, ")" })); } } catch (Exception) { if (bWantReply) { arg.ReplyWith("error setting value: " + arg.Class + "." + arg.Function); } } } else if (bWantReply) { arg.ReplyWith(string.Concat(new string[] { arg.Class, ".", arg.Function, ": ", Facepunch.Utility.String.QuoteSafe(property.GetValue(null, null).ToString()), " (", propertyType.Name, ")" })); } return(true); } else { i++; } } } } if (bWantReply) { arg.ReplyWith("Command not found: " + arg.Class + "." + arg.Function); } return(false); }
public static void find(ref global::ConsoleSystem.Arg arg) { if (!arg.HasArgs(1)) { return; } string text = arg.Args[0]; string text2 = string.Empty; Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); for (int i = 0; i < assemblies.Length; i++) { Type[] types = assemblies[i].GetTypes(); for (int j = 0; j < types.Length; j++) { if (types[j].IsSubclassOf(typeof(global::ConsoleSystem))) { MethodInfo[] methods = types[j].GetMethods(); for (int k = 0; k < methods.Length; k++) { if (methods[k].IsStatic) { if (!(text != "*") || types[j].Name.Contains(text) || methods[k].Name.Contains(text)) { if (arg.CheckPermissions(methods[k].GetCustomAttributes(true))) { string text3 = text2; text2 = string.Concat(new string[] { text3, types[j].Name, ".", global::global.BuildMethodString(ref methods[k]), "\n" }); } } } } FieldInfo[] fields = types[j].GetFields(); for (int l = 0; l < fields.Length; l++) { if (fields[l].IsStatic) { if (!(text != "*") || types[j].Name.Contains(text) || fields[l].Name.Contains(text)) { if (arg.CheckPermissions(fields[l].GetCustomAttributes(true))) { string text3 = text2; text2 = string.Concat(new string[] { text3, types[j].Name, ".", global::global.BuildFieldsString(ref fields[l]), "\n" }); } } } } PropertyInfo[] properties = types[j].GetProperties(); for (int m = 0; m < properties.Length; m++) { if (!(text != "*") || types[j].Name.Contains(text) || properties[m].Name.Contains(text)) { if (arg.CheckPermissions(properties[m].GetCustomAttributes(true))) { string text3 = text2; text2 = string.Concat(new string[] { text3, types[j].Name, ".", global::global.BuildPropertyString(ref properties[m]), "\n" }); } } } } } } arg.ReplyWith("Finding " + text + ":\n" + text2); }