public void Log(ChatText text) { //todo: Async writing not working well in tab console System.Console.CursorVisible = false; var top = Math.Max(0, System.Console.CursorTop); if (!GuiApp.Pause) { System.Console.SetCursorPosition(0, top); System.Console.Write(new string(' ', ConsoleUtils.Width - 1)); System.Console.SetCursorPosition(0, top); text.SetNext(new ChatText("\n", TextColor.Reset)); } text.PrintNext(GuiApp.ConsoleColors); if (!GuiApp.Pause) { System.Console.SetCursorPosition(0, top + text.GetLines(ConsoleUtils.Width).Count >= System.Console.BufferHeight ? Math.Max(0, System.Console.BufferHeight - 1) : Math.Max(0, top + text.GetLines(ConsoleUtils.Width).Count)); } if (!GuiApp.Pause) { SetCursorPos(); } }
public void Log(ChatText text) { if (!GuiApp.Pause) { text.SetNext(new ChatText("", TextColor.Reset)); } text.PrintNext(GuiApp.ConsoleColors); if (!GuiApp.Pause) { System.Console.Write("\n"); } }
public override void Execute(ICommandSender sender, string label, string[] args, string origMessage) { var enabledPlugins = PluginManager.Plugins.Where(o => o.Value == PluginState.Enabled); var enabledText = new ChatText($"Enabled Plugins: ", TextColor.Green); var enabledList = enabledPlugins as KeyValuePair <IPlugin, PluginState>[] ?? enabledPlugins.ToArray(); enabledText.SetNext(new ChatText($"({enabledList.Count()}) ", TextColor.Reset)); ChatText last = null; foreach (var pair in enabledList) { enabledText.SetNext(last = new ChatText($"{pair.Key.GetName()}, ")); } if (last != null) { last.Text = last.Text.Substring(0, last.Text.Length - 2) + "."; } sender.SendChat(enabledText); var loadedPlugins = PluginManager.Plugins.Where(o => o.Value == PluginState.Loaded); var loadedText = new ChatText($"Loaded Plugins: ", TextColor.Gray); var loadedList = loadedPlugins as KeyValuePair <IPlugin, PluginState>[] ?? loadedPlugins.ToArray(); loadedText.SetNext(new ChatText($"({loadedList.Count()}) ", TextColor.Reset)); last = null; foreach (var pair in loadedList) { loadedText.SetNext(last = new ChatText($"{pair.Key.GetName()}, ")); } if (last != null) { last.Text = last.Text.Substring(0, last.Text.Length - 2) + "."; } sender.SendChat(loadedText); var disabledPlugins = PluginManager.Plugins.Where(o => o.Value == PluginState.Disabled); var disabledText = new ChatText($"Disabled Plugins: ", TextColor.Red); var disabledList = disabledPlugins as KeyValuePair <IPlugin, PluginState>[] ?? disabledPlugins.ToArray(); disabledText.SetNext(new ChatText($"({disabledList.Count()}) ", TextColor.Reset)); last = null; foreach (var pair in disabledList) { disabledText.SetNext(last = new ChatText($"{pair.Key.GetName()}, ")); } if (last != null) { last.Text = last.Text.Substring(0, last.Text.Length - 2) + "."; } sender.SendChat(disabledText); var failedPlugins = PluginManager.Plugins.Where(o => o.Value == PluginState.Failed); var failedText = new ChatText($"Failed Plugins: ", TextColor.DarkRed); var failedList = failedPlugins as KeyValuePair <IPlugin, PluginState>[] ?? failedPlugins.ToArray(); failedText.SetNext(new ChatText($"({failedList.Count()}) ", TextColor.Reset)); last = null; foreach (var pair in failedList) { failedText.SetNext(last = new ChatText($"{pair.Key.GetName()}, ")); } if (last != null) { last.Text = last.Text.Substring(0, last.Text.Length - 2) + "."; } sender.SendChat(failedText); }