Exemplo n.º 1
0
        /// <summary>
        /// Tries to parse given line as a server command.
        /// </summary>
        /// <param name="line">The line to be parsed.</param>
        /// <param name="invokerClient">The invoker client if any.</param>
        /// <returns><see cref="bool"/></returns>
        public static bool TryParse(string line, MooNetClient invokerClient)
        {
            string output = string.Empty;
            string command;
            string parameters;
            var    found = false;

            if (invokerClient == null)
            {
                throw new ArgumentException("invokerClient");
            }

            if (!ExtractCommandAndParameters(line, out command, out parameters))
            {
                return(false);
            }

            foreach (var pair in CommandGroups)
            {
                if (pair.Key.Name != command)
                {
                    continue;
                }
                output = pair.Value.Handle(parameters, invokerClient);
                found  = true;
                break;
            }

            if (found == false)
            {
                output = string.Format("Unknown command: {0} {1}", command, parameters);
            }

            if (output == string.Empty)
            {
                return(true);
            }

            output = "[mooege] " + output;

            invokerClient.SendServerWhisper(output);

            return(true);
        }