Пример #1
0
        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();
            }
        }
Пример #2
0
 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");
     }
 }
Пример #3
0
        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);
        }