コード例 #1
0
        /// <summary>
        /// Allows the user to send chat messages, commands, and to leave the server.
        /// </summary>
        private void CommandPrompt()
        {
            try
            {
                string text = "";
                Thread.Sleep(500);
                handler.SendRespawnPacket();

                while (client.Client.Connected)
                {
                    text = ConsoleIO.ReadLine();
                    if (ConsoleIO.BasicIO && text.Length > 0 && text[0] == (char)0x00)
                    {
                        //Process a request from the GUI
                        string[] command = text.Substring(1).Split((char)0x00);
                        switch (command[0].ToLower())
                        {
                        case "autocomplete":
                            if (command.Length > 1)
                            {
                                ConsoleIO.WriteLine((char)0x00 + "autocomplete" + (char)0x00 + handler.AutoComplete(command[1]));
                            }
                            else
                            {
                                Console.WriteLine((char)0x00 + "autocomplete" + (char)0x00);
                            }
                            break;
                        }
                    }
                    else
                    {
                        text = text.Trim();
                        if (text.Length > 0)
                        {
                            if (Settings.internalCmdChar == ' ' || text[0] == Settings.internalCmdChar)
                            {
                                string response_msg = "";
                                string command      = Settings.internalCmdChar == ' ' ? text : text.Substring(1);
                                if (!PerformInternalCommand(Settings.ExpandVars(command), ref response_msg) && Settings.internalCmdChar == '/')
                                {
                                    SendText(text);
                                }
                                else if (response_msg.Length > 0)
                                {
                                    ConsoleIO.WriteLineFormatted("§8MCC: " + response_msg);
                                }
                            }
                            else
                            {
                                SendText(text);
                            }
                        }
                    }
                }
            }
            catch (IOException) { }
            catch (NullReferenceException) { }
        }
コード例 #2
0
        private static void ConsoleInputHandler()
        {
            try
            {
                while (true)
                {
                    string text = ConsoleIO.ReadLine();
                    if (text.Length > 0 && text[0] == (char)0x00)
                    {
                        //Process a request from the GUI
                        string[] command = text.Substring(1).Split((char)0x00);
                        switch (command[0].ToLower())
                        {
                            //case "autocomplete":
                            //    if (command.Length > 1) { ConsoleIO.WriteLine((char)0x00 + "autocomplete" + (char)0x00 + handler.AutoComplete(command[1])); }
                            //    else Console.WriteLine((char)0x00 + "autocomplete" + (char)0x00);
                            //    break;
                        }
                    }
                    else
                    {
                        text = text.Trim();
                        if (text.Length > 0)
                        {
                            if (Settings.internalCmdChar == ' ' || text[0] == Settings.internalCmdChar)
                            {
                                string         command        = Settings.internalCmdChar == ' ' ? text : text.Substring(1);
                                CommandHandler commandHandler = Program.CommandHandler;

                                if (!commandHandler.runCommand(command) && Settings.internalCmdChar == '/')
                                {
                                    //SendText(text);
                                }
                            }
                            //else SendText(text);
                        }
                    }
                }
            }
            catch (IOException) { }
            catch (NullReferenceException) { }
        }