public override bool TryParseCommand(string rawData, out string[] args)
        {
            args = null;
            var cmdArgs = new List <string>();

            DestructuredChatCommand chatCommand = null;
            bool isChatCommand = ChatCommander.TryParseCommand(rawData, out chatCommand);

            if (!isChatCommand)
            {
                return(false);
            }

            bool isThisCommand = chatCommand.Command.StartsWith(Token);

            if (isThisCommand)
            {
                // !READFEEDBACK [Empty | Player | HELP]
                string parsedCommand = chatCommand.Command.ToUpper();

                // Step 1 - Move past the command invocation...
                cmdArgs.Add(chatCommand.SourcePlayerName);
                parsedCommand = parsedCommand.Replace($"{Token}", string.Empty);

                // Step 2 - Trim what's left, look at what the string starts with.
                parsedCommand = parsedCommand.Trim();
                string[] remainingParts = parsedCommand.Split(' ');
                string   firstPart      = remainingParts[0];

                if (string.IsNullOrEmpty(firstPart))
                {
                    // Empty usage; this is valid.  Call it here.
                }
                else if (firstPart.ToUpper().StartsWith("HELP"))
                {
                    cmdArgs.Add("HELP");
                }
                else
                {
                    cmdArgs.Add(firstPart);
                }

                args = cmdArgs.ToArray();
            }

            return(isThisCommand);
        }
        public override bool TryParseCommand(string rawData, out string[] args)
        {
            args = null;
            var cmdArgs = new List <string>();

            DestructuredChatCommand chatCommand = null;
            bool isChatCommand = ChatCommander.TryParseCommand(rawData, out chatCommand);

            if (!isChatCommand)
            {
                return(false);
            }

            bool isThisCommand = chatCommand.Command.StartsWith(Token);

            if (isThisCommand)
            {
                // !REMOVEBOUNTY [PlayerName]
                // Step 1 - Move past the command invocation...
                cmdArgs.Add(chatCommand.SourcePlayerName);
                var parsedCommand = chatCommand.Command.Replace($"{Token} ", string.Empty);

                var parts = parsedCommand.Split(' ');
                if (parts.Length != 2)
                {
                    cmdArgs.Add("HELP");
                }
                else
                {
                    string targetPlayerName = parts[0];
                    cmdArgs.Add(targetPlayerName);

                    string value = parts[1];
                    cmdArgs.Add(value);
                }

                args = cmdArgs.ToArray();
            }

            return(isThisCommand);
        }
        public override bool TryParseCommand(string rawData, out string[] args)
        {
            args = null;
            var cmdArgs = new List <string>();

            DestructuredChatCommand chatCommand = null;
            bool isChatCommand = ChatCommander.TryParseCommand(rawData, out chatCommand);

            if (!isChatCommand)
            {
                return(false);
            }

            bool isThisCommand = chatCommand.Command.StartsWith(Token);

            if (isThisCommand)
            {
                // !REMOVEBOUNTY [PlayerName]
                // Step 1 - Move past the command invocation...
                cmdArgs.Add(chatCommand.SourcePlayerName);
                var parsedCommand = chatCommand.Command.Replace($"{Token} ", string.Empty);

                // Step 2 - Use what's left as the argument.
                //          If nothing's left, use the HELP keyword instead.
                if (string.IsNullOrEmpty(parsedCommand))
                {
                    cmdArgs.Add("HELP");
                }
                else
                {
                    cmdArgs.Add(parsedCommand);
                }

                args = cmdArgs.ToArray();
            }

            return(isThisCommand);
        }
Example #4
0
        public override bool TryParseCommand(string rawData, out string[] args)
        {
            args = null;
            var cmdArgs = new List <string>();

            DestructuredChatCommand chatCommand = null;
            bool isChatCommand = ChatCommander.TryParseCommand(rawData, out chatCommand);

            if (!isChatCommand)
            {
                return(false);
            }

            bool isThisCommand = chatCommand.Command.StartsWith(Token);

            if (isThisCommand)
            {
                // !REMOVESHIP [ShipName]
                // Step 1 - Remove token...
                cmdArgs.Add(chatCommand.SourcePlayerName);
                var parsedCommand = chatCommand.Command.Replace($"{Token} ", string.Empty);

                if (string.IsNullOrWhiteSpace(parsedCommand) ||
                    parsedCommand.Trim().ToLower() == "help")
                {
                    cmdArgs.Add("HELP");
                }
                else
                {
                    string shipName = parsedCommand.Trim();
                    cmdArgs.Add(shipName);
                }

                args = cmdArgs.ToArray();
            }

            return(isThisCommand);
        }