private static bool Prefix(QueryProcessor __instance, string query) { if (__instance._sender == null) { return(false); } var player = __instance._sender.GetPlayer(); SynapseController.Server.Events.Server.InvokeConsoleCommandEvent(player, query); if (player == null) { return(false); } var args = query.Split(' '); if (SynapseController.CommandHandlers.ClientCommandHandler.TryGetCommand(args[0], out var command)) { //If sender has no permission and permission is not null or empty if (!__instance.GetPlayer().HasPermission(command.Permission) && !string.IsNullOrWhiteSpace(command.Permission)) { player.SendConsoleMessage(Server.Get.Configs.SynapseTranslation.GetTranslation("noperm").Replace("%perm%", command.Permission), "red"); return(false); } try { var flag = command.Execute(new Command.CommandContext { Arguments = args.Segment(1), Player = player, Platform = Command.Platform.ClientConsole }); var color = "blue"; switch (flag.State) { case Command.CommandResultState.Ok: color = "gray"; break; case Command.CommandResultState.Error: color = "red"; break; case CommandResultState.NoPermission: color = "yellow"; break; } player.SendConsoleMessage(flag.Message, color); } catch (Exception e) { Logger.Get.Error($"Synapse-Commands: Command Execution failed!!\n{e}\nStackTrace:\n{e.StackTrace}"); } return(false); } return(true); }
// ReSharper disable once InconsistentNaming public static bool Prefix(QueryProcessor __instance, string query) { try { Events.InvokeConsoleCommandEvent(__instance.GetPlayer(), query, out var allow); return(allow); } catch (Exception e) { Log.Error($"ConsoleCommand Event Error: {e}"); return(true); } }