public static void ExecuteCommandLine(ToolCommandHandler.ConsoleCmdTrigger trigger, string line) { var text = new StringStream(line); trigger.Text = text; var isSelect = text.ConsumeNext(RealmCommandHandler.SelectCommandPrefix); if (isSelect) { var cmd = ToolCommandHandler.Instance.SelectCommand(text); if (cmd != null) { Console.WriteLine("Selected: " + cmd); trigger.SelectedCommand = cmd; return; } else if (trigger.SelectedCommand != null) { Console.WriteLine("Cleared Command selection."); trigger.SelectedCommand = null; return; } } ToolCommandHandler.Instance.Trigger(trigger); }
internal static void Run() { DatabaseUtil.ReleaseConsole(); var server = RealmServ.Instance; if (!server.IsRunning) { Thread.Sleep(300); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } else { Console.WriteLine("Console ready. Type ? for help"); DefaultTrigger = new DefaultCmdTrigger { Args = new RealmServerCmdArgs(null, false, null) }; while (RealmServ.Instance.IsRunning) { string line; try { while (!Console.KeyAvailable && RealmServ.Instance.IsRunning) { Thread.Sleep(100); } if (!RealmServ.Instance.IsRunning) { break; } line = Console.ReadLine(); } catch { // console shutdown break; } if (line == null || !RealmServ.Instance.IsRunning) { break; } try { if (DatabaseUtil.IsWaiting) { DatabaseUtil.Input.Write(line); } else { var text = new StringStream(line); DefaultTrigger.Text = text; if (!DefaultTrigger.InitTrigger()) { continue; } var isSelect = text.ConsumeNext(RealmCommandHandler.SelectCommandPrefix); if (isSelect) { var cmd = RealmCommandHandler.Instance.SelectCommand(text); if (cmd != null) { Console.WriteLine(@"Selected: {0}", cmd); DefaultTrigger.SelectedCommand = cmd; } else if (DefaultTrigger.SelectedCommand != null) { Console.WriteLine(@"Cleared Command selection."); DefaultTrigger.SelectedCommand = null; } } else { bool dbl; RealmCommandHandler.ConsumeCommandPrefix(text, out dbl); DefaultTrigger.Args.Double = dbl; RealmCommandHandler.Instance.ExecuteInContext(DefaultTrigger, OnExecuted, OnFail); } } } catch (Exception e) { LogUtil.ErrorException(e, false, "Failed to execute Command."); } } } }
internal static void Run() { DatabaseUtil.ReleaseConsole(); var server = RealmServer.RealmServer.Instance; if (!server.IsRunning) { Thread.Sleep(300); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } else { Console.WriteLine("Console ready. Type ? for help"); DefaultTrigger = new DefaultCmdTrigger { Args = new RealmServerCmdArgs(null, false, null) }; while (ServerApp<RealmServer.RealmServer>.Instance.IsRunning) { string line; try { while (Console.KeyAvailable == false && ServerApp<RealmServer.RealmServer>.Instance.IsRunning) Thread.Sleep(100); if (!ServerApp<RealmServer.RealmServer>.Instance.IsRunning) break; //NOTE if some key pressed in console without Enter will lock line = Console.ReadLine(); } catch { // console shutdown break; } if (line == null || !ServerApp<RealmServer.RealmServer>.Instance.IsRunning) { break; } try { if (DatabaseUtil.IsWaiting) { DatabaseUtil.Input.Write(line); } else { var text = new StringStream(line); DefaultTrigger.Text = text; if (!DefaultTrigger.InitTrigger()) { continue; } var isSelect = text.ConsumeNext(RealmCommandHandler.SelectCommandPrefix); if (isSelect) { var cmd = RealmCommandHandler.Instance.SelectCommand(text); if (cmd != null) { Console.WriteLine("Selected: " + cmd); DefaultTrigger.SelectedCommand = cmd; } else if (DefaultTrigger.SelectedCommand != null) { Console.WriteLine("Cleared Command selection."); DefaultTrigger.SelectedCommand = null; } } else { RealmCommandHandler.Instance.ExecuteInContext(DefaultTrigger, true, OnExecuted, OnFail); } } } catch (Exception e) { LogUtil.ErrorException(e, false, "Failed to execute Command."); } } } }