Пример #1
0
 protected void HandleUnknownMode(IRCMessage sIRCMessage)
 {
     if (!ModePrivmsg.IsNullOrEmpty())
     {
         sSendMessage.SendChatMessage(sIRCMessage.MessageType, ModePrivmsg, sLConsole.MessageHandler("Text6"));
     }
 }
Пример #2
0
 protected void HandleNeedMoreParams(IRCMessage sIRCMessage)
 {
     if (!ModePrivmsg.IsNullOrEmpty())
     {
         sSendMessage.SendChatMessage(sIRCMessage.MessageType, ModePrivmsg, sLConsole.MessageHandler("Text"));
     }
 }
Пример #3
0
        protected void HandleNotAChannelAdmin(IRCMessage sIRCMessage)
        {
            if (!ModePrivmsg.IsNullOrEmpty())
            {
                sSendMessage.SendChatMessage(sIRCMessage.MessageType, ModePrivmsg, sLConsole.MessageHandler("Text19"));
            }

            if (!KickPrivmsg.IsNullOrEmpty())
            {
                sSendMessage.SendChatMessage(sIRCMessage.MessageType, KickPrivmsg, sLConsole.MessageHandler("Text18"));
            }
        }
Пример #4
0
        protected void HandleUserNotinChannel(IRCMessage sIRCMessage)
        {
            if (!ModePrivmsg.IsNullOrEmpty())
            {
                sSendMessage.SendChatMessage(sIRCMessage.MessageType, ModePrivmsg, sLConsole.MessageHandler("Text5"));
            }

            if (!KickPrivmsg.IsNullOrEmpty())
            {
                sSendMessage.SendChatMessage(sIRCMessage.MessageType, KickPrivmsg, sLConsole.MessageHandler("Text5"));
            }
        }
Пример #5
0
        protected void HandleChanopPrivsNeeded(IRCMessage sIRCMessage)
        {
            if (!ModePrivmsg.IsNullOrEmpty())
            {
                if (sIRCMessage.Info.Length < 4)
                {
                    return;
                }

                sSendMessage.SendChatMessage(sIRCMessage.MessageType, sIRCMessage.Info[3], sLConsole.MessageHandler("Text19"));
            }
        }
Пример #6
0
        protected void HandleNotAChannelOwner(IRCMessage sIRCMessage)
        {
            if (!ModePrivmsg.IsNullOrEmpty())
            {
                if (sIRCMessage.Info.Length < 4)
                {
                    return;
                }

                sSendMessage.SendChatMessage(sIRCMessage.MessageType, sIRCMessage.Info[3], sLConsole.MessageHandler("Text19"));
            }

            if (!KickPrivmsg.IsNullOrEmpty())
            {
                if (sIRCMessage.Info.Length < 4)
                {
                    return;
                }

                sSendMessage.SendChatMessage(sIRCMessage.MessageType, sIRCMessage.Info[3], sLConsole.MessageHandler("Text18"));
            }
        }
Пример #7
0
        protected void HandleNoSuchNick(IRCMessage sIRCMessage)
        {
            if (!ModePrivmsg.IsNullOrEmpty() || ModePrivmsg != sMyNickInfo.NickStorage)
            {
                if (sIRCMessage.Info.Length < 4)
                {
                    return;
                }

                sSendMessage.SendChatMessage(sIRCMessage.MessageType, ModePrivmsg, sLConsole.MessageHandler("Text7"), sIRCMessage.Info[3]);
            }

            if (!KickPrivmsg.IsNullOrEmpty() || KickPrivmsg != sMyNickInfo.NickStorage)
            {
                if (sIRCMessage.Info.Length < 4)
                {
                    return;
                }

                sSendMessage.SendChatMessage(sIRCMessage.MessageType, KickPrivmsg, sLConsole.MessageHandler("Text7"), sIRCMessage.Info[3]);
            }
        }
Пример #8
0
        protected void HandleMode(IRCMessage sIRCMessage)
        {
            if (!IsAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.Operator))
            {
                return;
            }

            var text = sLManager.GetCommandTexts("mode", sIRCMessage.Channel, sIRCMessage.ServerName);

            if (text.Length < 9)
            {
                sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)));
                return;
            }

            if (!Rfc2812Util.IsValidChannelName(sIRCMessage.Channel))
            {
                sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("ThisIsNotAChannelDoNotWriteInPM", sIRCMessage.Channel, sIRCMessage.ServerName));
                return;
            }

            if (sIRCMessage.Info.Length < 5)
            {
                sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoRank", sIRCMessage.Channel, sIRCMessage.ServerName));
                return;
            }

            string rank = sIRCMessage.Info[4].ToLower();

            if (rank.Length > 5)
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[1]);
                return;
            }

            if (rank.Split('+').Length == 1 && rank.Split('-').Length == 1)
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[2]);
                return;
            }

            if (!ModeRegex.IsMatch(rank.Substring(1)))
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[3]);
                return;
            }

            foreach (var c in rank.Substring(1).ToCharArray())
            {
                if (Rfc2812Util.CharToChannelMode(c).ToString().IsNumber())
                {
                    sSendMessage.SendChatMessage(sIRCMessage, text[4]);
                    return;
                }
            }

            if (sIRCMessage.Info.Length == 5)
            {
                sSender.Mode(sIRCMessage.Channel, sIRCMessage.Info[4].ToLower());
                return;
            }

            if (sIRCMessage.Info.Length < 6)
            {
                sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoName", sIRCMessage.Channel, sIRCMessage.ServerName));
                return;
            }

            bool   StringEmpty = false;
            string name        = string.Empty;
            string error       = string.Empty;
            string rank2       = string.Empty;
            string status      = string.Empty;

            if (sIRCMessage.Info.Length >= 10)
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[5]);
                return;
            }

            if (rank.Length - 1 > sIRCMessage.Info.Length - 5)
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[6]);
                return;
            }

            if (rank.Length - 1 < sIRCMessage.Info.Length - 5)
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[7]);
                return;
            }

            if (rank.Contains(Rfc2812Util.ModeActionToChar(ModeAction.Remove).ToString()))
            {
                status = Rfc2812Util.ModeActionToChar(ModeAction.Remove).ToString();
            }
            else if (rank.Contains(Rfc2812Util.ModeActionToChar(ModeAction.Add).ToString()))
            {
                status = Rfc2812Util.ModeActionToChar(ModeAction.Add).ToString();
            }

            if (sIRCMessage.Info.Length >= 6 && Rfc2812Util.IsValidNick(sIRCMessage.Info[5]) && sIRCMessage.Info[5].ToLower() != sMyNickInfo.NickStorage.ToLower() && rank.Length > 1 && sChannelList.IsChannelRank(rank.Substring(1, 1)))
            {
                if (status == Rfc2812Util.ModeActionToChar(ModeAction.Remove).ToString())
                {
                    rank2 += rank.Substring(1, 1);
                    name  += SchumixBase.Space + sIRCMessage.Info[5];
                }
                else if (status == Rfc2812Util.ModeActionToChar(ModeAction.Add).ToString())
                {
                    rank2 += rank.Substring(1, 1);
                    name  += SchumixBase.Space + sIRCMessage.Info[5];
                }
            }
            else if (sIRCMessage.Info.Length >= 6 && !Rfc2812Util.IsValidNick(sIRCMessage.Info[5]) && sIRCMessage.Info[5].ToLower() != sMyNickInfo.NickStorage.ToLower())
            {
                if (!sIRCMessage.Info[5].IsNullOrEmpty())
                {
                    error += ", " + sIRCMessage.Info[5];
                }
                else
                {
                    StringEmpty = true;
                }
            }
            else if (sIRCMessage.Info.Length >= 6 && Rfc2812Util.IsValidNick(sIRCMessage.Info[5]) && sIRCMessage.Info[5].ToLower() == sMyNickInfo.NickStorage.ToLower())
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[0]);
            }

            if (sIRCMessage.Info.Length >= 7 && Rfc2812Util.IsValidNick(sIRCMessage.Info[6]) && sIRCMessage.Info[6].ToLower() != sMyNickInfo.NickStorage.ToLower() && rank.Length > 2 && sChannelList.IsChannelRank(rank.Substring(2).Substring(0, 1)))
            {
                if (status == Rfc2812Util.ModeActionToChar(ModeAction.Remove).ToString())
                {
                    rank2 += rank.Substring(2).Substring(0, 1);
                    name  += SchumixBase.Space + sIRCMessage.Info[6];
                }
                else if (status == Rfc2812Util.ModeActionToChar(ModeAction.Add).ToString())
                {
                    rank2 += rank.Substring(2).Substring(0, 1);
                    name  += SchumixBase.Space + sIRCMessage.Info[6];
                }
            }
            else if (sIRCMessage.Info.Length >= 7 && !Rfc2812Util.IsValidNick(sIRCMessage.Info[6]) && sIRCMessage.Info[6].ToLower() != sMyNickInfo.NickStorage.ToLower())
            {
                if (!sIRCMessage.Info[6].IsNullOrEmpty())
                {
                    error += ", " + sIRCMessage.Info[6];
                }
                else
                {
                    StringEmpty = true;
                }
            }
            else if (sIRCMessage.Info.Length >= 7 && Rfc2812Util.IsValidNick(sIRCMessage.Info[6]) && sIRCMessage.Info[6].ToLower() == sMyNickInfo.NickStorage.ToLower())
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[0]);
            }

            if (sIRCMessage.Info.Length >= 8 && Rfc2812Util.IsValidNick(sIRCMessage.Info[7]) && sIRCMessage.Info[7].ToLower() != sMyNickInfo.NickStorage.ToLower() && rank.Length > 3 && sChannelList.IsChannelRank(rank.Substring(3).Substring(0, 1)))
            {
                if (status == Rfc2812Util.ModeActionToChar(ModeAction.Remove).ToString())
                {
                    rank2 += rank.Substring(3).Substring(0, 1);
                    name  += SchumixBase.Space + sIRCMessage.Info[7];
                }
                else if (status == Rfc2812Util.ModeActionToChar(ModeAction.Add).ToString())
                {
                    rank2 += rank.Substring(3).Substring(0, 1);
                    name  += SchumixBase.Space + sIRCMessage.Info[7];
                }
            }
            else if (sIRCMessage.Info.Length >= 8 && !Rfc2812Util.IsValidNick(sIRCMessage.Info[7]) && sIRCMessage.Info[7].ToLower() != sMyNickInfo.NickStorage.ToLower())
            {
                if (!sIRCMessage.Info[7].IsNullOrEmpty())
                {
                    error += ", " + sIRCMessage.Info[7];
                }
                else
                {
                    StringEmpty = true;
                }
            }
            else if (sIRCMessage.Info.Length >= 8 && Rfc2812Util.IsValidNick(sIRCMessage.Info[7]) && sIRCMessage.Info[7].ToLower() == sMyNickInfo.NickStorage.ToLower())
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[0]);
            }

            if (sIRCMessage.Info.Length >= 9 && Rfc2812Util.IsValidNick(sIRCMessage.Info[8]) && sIRCMessage.Info[8].ToLower() != sMyNickInfo.NickStorage.ToLower() && rank.Length > 4 && sChannelList.IsChannelRank(rank.Substring(4).Substring(0, 1)))
            {
                if (status == Rfc2812Util.ModeActionToChar(ModeAction.Remove).ToString())
                {
                    rank2 += rank.Substring(4).Substring(0, 1);
                    name  += SchumixBase.Space + sIRCMessage.Info[8];
                }
                else if (status == Rfc2812Util.ModeActionToChar(ModeAction.Add).ToString())
                {
                    rank2 += rank.Substring(4).Substring(0, 1);
                    name  += SchumixBase.Space + sIRCMessage.Info[8];
                }
            }
            else if (sIRCMessage.Info.Length >= 9 && !Rfc2812Util.IsValidNick(sIRCMessage.Info[8]) && sIRCMessage.Info[8].ToLower() != sMyNickInfo.NickStorage.ToLower())
            {
                if (!sIRCMessage.Info[8].IsNullOrEmpty())
                {
                    error += ", " + sIRCMessage.Info[8];
                }
                else
                {
                    StringEmpty = true;
                }
            }
            else if (sIRCMessage.Info.Length >= 9 && Rfc2812Util.IsValidNick(sIRCMessage.Info[8]) && sIRCMessage.Info[8].ToLower() == sMyNickInfo.NickStorage.ToLower())
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[0]);
            }

            error = error.Remove(0, 2, ", ");

            if (!error.IsNullOrEmpty())
            {
                sSendMessage.SendChatMessage(sIRCMessage, error + SchumixBase.Colon + SchumixBase.Space + sLManager.GetWarningText("NotaNickNameHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName));
            }

            if (StringEmpty)
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[8]);
            }

            ModePrivmsg = sIRCMessage.Channel;
            sSender.Mode(sIRCMessage.Channel, status + rank2, name.Remove(0, 1, SchumixBase.Space));

            // Clean
            Thread.Sleep(5 * 1000);

            if (sIRCMessage.Channel.ToLower() == ModePrivmsg.ToLower() || !ModePrivmsg.IsNullOrEmpty())
            {
                ModePrivmsg = string.Empty;
            }
        }