Example #1
0
        private void CheckChatForJoinRequest(On.RoR2.Console.orig_RunCmd orig, RoR2.Console self, RoR2.Console.CmdSender sender, string concommandName, List <string> userArgs)
        {
            orig(self, sender, concommandName, userArgs);

            if (concommandName.Equals("say", StringComparison.InvariantCultureIgnoreCase))
            {
                string[] userInput   = userArgs.FirstOrDefault().Split(new char[] { ' ' }, count: 3);
                string   chatCommand = userInput.FirstOrDefault();
                if (string.IsNullOrWhiteSpace(chatCommand))
                {
                    return;
                }

                if (chatCommand.Equals("join_as", StringComparison.InvariantCultureIgnoreCase) || chatCommand.Equals("join", StringComparison.InvariantCultureIgnoreCase))
                {
                    string bodyString = userInput.ElementAtOrDefault(1) ?? "";
                    string userString = userInput.ElementAtOrDefault(2) ?? "";

                    JoinAs(sender.networkUser, bodyString, userString);
                }
            }
        }
Example #2
0
        private void CheckChatForJoinRequest(On.RoR2.Console.orig_RunCmd orig, RoR2.Console self, RoR2.Console.CmdSender sender, string concommandName, List <string> userArgs)
        {
            orig(self, sender, concommandName, userArgs);

            if (concommandName.Equals("say", StringComparison.InvariantCultureIgnoreCase))
            {
                var userInput   = userArgs.FirstOrDefault().Split(' ');
                var chatCommand = userInput.FirstOrDefault();
                if (chatCommand.IsNullOrWhiteSpace())
                {
                    return;
                }

                if (chatCommand.Equals("join_as", StringComparison.InvariantCultureIgnoreCase) || chatCommand.Equals("join", StringComparison.InvariantCultureIgnoreCase))
                {
                    List <string> data       = userInput.ToList();
                    string        bodyString = userInput.ElementAtOrDefault(1) ?? "";
                    string        userString = userInput.LastOrDefault() ?? "";
                    string        newstring  = "";
                    bool          open       = false;
                    if (bodyString.Contains('"') && userString.Contains('"'))
                    {
                        bodyString = "";
                        for (int i = 1; i < data.Count; i++)
                        {
                            var str = data.ElementAt(i) ?? "";
                            if (str == userInput.ElementAtOrDefault(1))
                            {
                            }
                            foreach (var item in str)
                            {
                                if (item == '"')
                                {
                                    open = open == false ? true : false;
                                }
                                else
                                {
                                    newstring += item;
                                }
                            }
                            bodyString += open == true ? newstring + " " : newstring;
                            newstring   = "";
                        }
                        userString = "";
                    }
                    else
                    {
                        bodyString = userInput.ElementAtOrDefault(1) ?? "";
                        userString = userInput.ElementAtOrDefault(2) ?? "";
                    }
                    JoinAs(sender.networkUser, bodyString, userString);
                }
            }
        }
Example #3
0
        private static void Console_RunCmd(On.RoR2.Console.orig_RunCmd orig, RoR2.Console self, RoR2.Console.CmdSender sender, string concommandName, List <string> userArgs)
        {
            orig(self, sender, concommandName, userArgs);

            if (!NetworkServer.active || Run.instance == null)
            {
                return;
            }

            if (!concommandName.Equals("say", StringComparison.InvariantCultureIgnoreCase))
            {
                return;
            }

            string chatMessage = userArgs.FirstOrDefault();

            if (string.IsNullOrWhiteSpace(chatMessage) || !chatMessage.StartsWith("/"))
            {
                return;
            }
            string[] splitMessage    = chatMessage.Split(new char[] { ' ' });
            string   chatCommandName = splitMessage.FirstOrDefault().Substring(1); // substring removes leading slash

            string[] commandArgs = splitMessage.Skip(1).ToArray();


            if (!_chatCommands.TryGetValue(chatCommandName.ToUpperInvariant(), out ChatCommand chatCommand))
            {
                SendChatMessage("Unable to find command, try /help");
            }

            string resultMessage = chatCommand.Handler(sender.networkUser, commandArgs);

            if (!string.IsNullOrWhiteSpace(resultMessage))
            {
                SendChatMessage(resultMessage);
            }
        }
Example #4
0
        private void CheckforJoinAsRequest(On.RoR2.Console.orig_RunCmd orig, RoR2.Console self, RoR2.Console.CmdSender sender, string concommandName, List <string> userArgs)
        {
            orig(self, sender, concommandName, userArgs);

            if (concommandName.Equals("say", StringComparison.OrdinalIgnoreCase))
            {
                var userMsg   = ArgsHelper.GetValue(userArgs, 0).ToLower();
                var isRequest = userMsg.StartsWith("join_as");
                if (isRequest)
                {
                    var    argsRequest = userMsg.Split(' ').ToList();
                    string bodyString  = ArgsHelper.GetValue(argsRequest, 1);
                    string userString  = ArgsHelper.GetValue(argsRequest, 2);

                    JoinAs(sender.networkUser, bodyString, userString);
                }
            }
        }