public static bool RunPlayerMethod(string methodName, bool useItem, Player player, params object[] parameters) { if (Events.player.delegates.ContainsKey(methodName)) { return(RunPlayerEvent(methodName, useItem, player, parameters)); } bool result = false; object[] array = new object[parameters.Length + 1]; array[0] = player; for (int i = 0; i < parameters.Length; i++) { array[i + 1] = parameters[i]; } if (useItem) { Item item = player.inventory[player.selectedItem]; if (item.RunMethod(methodName, array)) { result = true; } } for (int j = 0; j < player.armor.Length; j++) { Item item2 = player.armor[j]; if (item2.RunMethod(methodName, array)) { result = true; } } for (int k = 0; k < player.buffType.Length; k++) { if (RunSpecifiedMethod("Buff " + Main.buffName[player.buffType[k]], player.buffCode[k], methodName, array)) { result = true; } } foreach (string key in Config.globalMod["ModPlayer"].Keys) { object obj = Config.globalMod["ModPlayer"][key]; if (obj != null && RunSpecifiedMethod(key + " ModPlayer", obj, methodName, array)) { result = true; } } return(result); }