Ejemplo n.º 1
0
		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);
		}
Ejemplo n.º 2
0
		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.");
					}
				}
			}
		}
Ejemplo n.º 3
0
		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.");
					}
				}
			}
		}