Schumix.ExtraAddon.Commands.Functions.HandleMessage C# (CSharp) 메소드

HandleMessage() 공개 메소드

public HandleMessage ( IRCMessage sIRCMessage ) : void
sIRCMessage Schumix.Framework.Irc.IRCMessage
리턴 void
        public void HandleMessage(IRCMessage sIRCMessage)
        {
            var sMyNickInfo = sIrcBase.Networks[sIRCMessage.ServerName].sMyNickInfo;
            var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage;
            var sMyChannelInfo = sIrcBase.Networks[sIRCMessage.ServerName].sMyChannelInfo;

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

            if(!sMyChannelInfo.FSelect("message") || !sMyChannelInfo.FSelect("message", sIRCMessage.Channel))
            {
                sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoMessageFunction", sIRCMessage.Channel, sIRCMessage.ServerName));
                return;
            }

            if(sIRCMessage.Info[4].ToLower() == "channel")
            {
                if(sIRCMessage.Info.Length < 6)
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoChannelName", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

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

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

                if(!Rfc2812Util.IsValidChannelName(sIRCMessage.Info[5]))
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NotaChannelHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

                if(!Rfc2812Util.IsValidNick(sIRCMessage.Info[6]))
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NotaNickNameHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

                if(sMyNickInfo.NickStorage.ToLower() == sIRCMessage.Info[6].ToLower())
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("ICantLeftAMessageForMyself", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

                SchumixBase.DManager.Insert("`message`(ServerId, ServerName, Name, Channel, Message, Wrote, UnixTime)", sIRCMessage.ServerId, sIRCMessage.ServerName, sUtilities.SqlEscape(sIRCMessage.Info[6].ToLower()), sUtilities.SqlEscape(sIRCMessage.Info[5].ToLower()), sUtilities.SqlEscape(sIRCMessage.Info.SplitToString(7, SchumixBase.Space)), sIRCMessage.SqlEscapeNick, sUtilities.UnixTime);
                sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("message/channel", sIRCMessage.Channel, sIRCMessage.ServerName));
            }
            else
            {
                if(sIRCMessage.Info.Length < 5)
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoName", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

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

                if(!Rfc2812Util.IsValidNick(sIRCMessage.Info[4]))
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NotaNickNameHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

                if(sMyNickInfo.NickStorage.ToLower() == sIRCMessage.Info[4].ToLower())
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("ICantLeftAMessageForMyself", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

                SchumixBase.DManager.Insert("`message`(ServerId, ServerName, Name, Channel, Message, Wrote, UnixTime)", sIRCMessage.ServerId, sIRCMessage.ServerName, sUtilities.SqlEscape(sIRCMessage.Info[4].ToLower()), sIRCMessage.Channel.ToLower(), sUtilities.SqlEscape(sIRCMessage.Info.SplitToString(5, SchumixBase.Space)), sIRCMessage.SqlEscapeNick, sUtilities.UnixTime);
                sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("message", sIRCMessage.Channel, sIRCMessage.ServerName));
            }
        }