Example #1
0
        /// <summary>
        ///     Csatorna parancs függvénye.
        /// </summary>
        protected void HandleConsoleToChannel(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                return;
            }

            if(!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[1]))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                return;
            }

            if(!sIrcBase.Networks[_servername].sChannelList.List.ContainsKey(sConsoleMessage.Info[1].ToLower()))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("ImNotOnThisChannel"));
                return;
            }

            if(_channel == sConsoleMessage.Info[1].ToLower())
            {
                Log.Warning("Console", sLManager.GetConsoleWarningText("ChannelAlreadyBeenUsed"));
                return;
            }

            _channel = sConsoleMessage.Info[1].ToLower();
            Log.Notice("Console", sLManager.GetConsoleCommandText("cchannel"), sConsoleMessage.Info[1]);
            System.Console.Title = SchumixBase.Title + " || Console Writing Channel: " + _servername + SchumixBase.Colon + sConsoleMessage.Info[1];
        }
Example #2
0
        /// <summary>
        ///     Consolelog parancs függvénye.
        /// </summary>
        protected void HandleConsoleLog(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoValue"));
                return;
            }

            var text = sLManager.GetConsoleCommandTexts("consolelog");
            if(text.Length < 2)
            {
                Log.Error("Console", sLConsole.Translations("NoFound2"));
                return;
            }

            if(sConsoleMessage.Info[1].ToLower() == SchumixBase.On)
            {
                Log.Notice("Console", text[0]);
                ChangeLog(true);
            }
            else if(sConsoleMessage.Info[1].ToLower() == SchumixBase.Off)
            {
                Log.Notice("Console", text[1]);
                ChangeLog(false);
            }
        }
Example #3
0
        /// <summary>
        ///     Join parancs függvénye.
        /// </summary>
        protected void HandleJoin(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                return;
            }

            if(!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[1]))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                return;
            }

            if(sIrcBase.Networks[_servername].sChannelList.List.ContainsKey(sConsoleMessage.Info[1].ToLower()))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("ImAlreadyOnThisChannel"));
                return;
            }

            if(sIrcBase.Networks[_servername].sIgnoreChannel.IsIgnore(sConsoleMessage.Info[1].ToLower()))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("ThisChannelBlockedByAdmin"));
                return;
            }

            if(sConsoleMessage.Info.Length == 2)
                sIrcBase.Networks[_servername].sSender.Join(sConsoleMessage.Info[1]);
            else if(sConsoleMessage.Info.Length == 3)
                sIrcBase.Networks[_servername].sSender.Join(sConsoleMessage.Info[1], sConsoleMessage.Info[2]);

            Log.Notice("Console", sLManager.GetConsoleCommandText("join"), sConsoleMessage.Info[1]);
        }
Example #4
0
        /// <summary>
        ///     Help parancs függvénye.
        /// </summary>
        protected void HandleHelp(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length == 1)
            {
                var text = sLManager.GetConsoleCommandTexts("help");
                if(text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string commands = string.Empty;
                string aliascommands = string.Empty;

                foreach(var command in CCommandManager.GetCommandHandler())
                {
                    if(command.Key == "help")
                        continue;

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT BaseCommand FROM alias_console_command WHERE NewCommand = '{0}'", sUtilities.SqlEscape(command.Key));
                    if(!db.IsNull())
                    {
                        string basecommand = db["BaseCommand"].ToString();
                        aliascommands += " | " + command.Key + "->" + basecommand;
                        continue;
                    }

                    commands += ", " + command.Key;
                }

                Log.Notice("Console", text[0]);
                Log.Notice("Console", text[1], commands.Remove(0, 2, ", "));

                if(!aliascommands.IsNullOrEmpty())
                    Log.Notice("Console", text[2], aliascommands.Remove(0, 3, " | "));

                return;
            }

            string aliascommand = string.Empty;

            var db2 = SchumixBase.DManager.QueryFirstRow("SELECT BaseCommand FROM alias_console_command WHERE NewCommand = '{0}'", sUtilities.SqlEscape(sConsoleMessage.Info[1].ToLower()));
            if(!db2.IsNull())
            {
                aliascommand = sConsoleMessage.Info[1].ToLower();
                string basecommand = db2["BaseCommand"].ToString();
                sConsoleMessage.Info[1] = basecommand;
            }

            foreach(var t in sLManager.GetConsoleCommandHelpTexts(sConsoleMessage.Info.SplitToString(1, "/")))
            {
                if(!aliascommand.IsNullOrEmpty())
                    Log.Notice("Console", t.Replace(string.Format(" {0} ", sConsoleMessage.Info[1]), string.Format(" {0} ", aliascommand)));
                else
                    Log.Notice("Console", t);
            }
        }
Example #5
0
        /// <summary>
        ///     Connect parancs függvénye.
        /// </summary>
        protected void HandleConnect(ConsoleMessage sConsoleMessage)
        {
            if(sIrcBase.Networks[_servername].IsConnected())
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("ConnectedIrcServer"));
                return;
            }

            sIrcBase.Networks[_servername].Connect();
        }
Example #6
0
        /// <summary>
        ///     Disconnect parancs függvénye.
        /// </summary>
        protected void HandleDisConnect(ConsoleMessage sConsoleMessage)
        {
            if(!sIrcBase.Networks[_servername].IsConnected())
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoConnectedIrcServer"));
                return;
            }

            sIrcBase.Networks[_servername].sSender.Quit("Console: Disconnect.");
            sIrcBase.Networks[_servername].DisConnect();
        }
        /// <summary>
        ///     Disconnect parancs függvénye.
        /// </summary>
        protected void HandleDisConnect(ConsoleMessage sConsoleMessage)
        {
            if (!sIrcBase.Networks[_servername].IsConnected())
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoConnectedIrcServer"));
                return;
            }

            sIrcBase.Networks[_servername].sSender.Quit("Console: Disconnect.");
            sIrcBase.Networks[_servername].DisConnect();
        }
Example #8
0
        /// <summary>
        ///     Quit parancs függvénye.
        /// </summary>
        protected void HandleQuit(ConsoleMessage sConsoleMessage)
        {
            var text = sLManager.GetConsoleCommandTexts("quit");
            if(text.Length < 2)
            {
                Log.Error("Console", sLConsole.Translations("NoFound2"));
                return;
            }

            Log.Notice("Console", text[0]);
            SchumixBase.Quit();
            sIrcBase.Shutdown(text[1]);
        }
Example #9
0
        /// <summary>
        ///     Quit parancs függvénye.
        /// </summary>
        protected void HandleQuit(ConsoleMessage sConsoleMessage)
        {
            var text = sLManager.GetConsoleCommandTexts("quit");

            if (text.Length < 2)
            {
                Log.Error("Console", sLConsole.Translations("NoFound2"));
                return;
            }

            Log.Notice("Console", text[0]);
            SchumixBase.Quit();
            sIrcBase.Shutdown(text[1]);
        }
Example #10
0
        /// <summary>
        ///     Sys parancs függvénye.
        /// </summary>
        protected void HandleSys(ConsoleMessage sConsoleMessage)
        {
            var text = sLManager.GetConsoleCommandTexts("sys");
            if(text.Length < 7)
            {
                Log.Error("Console", sLConsole.Translations("NoFound2"));
                return;
            }

            var memory = sRuntime.MemorySizeInMB;
            Log.Notice("Console", text[0], sUtilities.GetVersion());
            Log.Notice("Console", text[1], sPlatform.GetPlatform());
            Log.Notice("Console", text[2], string.Format("{0} {1}bit", sPlatform.GetOSName(), sPlatform.Is64BitProcess ? 64 : 32));
            Log.Notice("Console", text[3]);
            Log.Notice("Console", text[4], memory);
            Log.Notice("Console", text[5], Process.GetCurrentProcess().Threads.Count);
            Log.Notice("Console", text[6], SchumixBase.sTimer.Uptime());
        }
Example #11
0
        /// <summary>
        ///     Sys parancs függvénye.
        /// </summary>
        protected void HandleSys(ConsoleMessage sConsoleMessage)
        {
            var text = sLManager.GetConsoleCommandTexts("sys");

            if (text.Length < 7)
            {
                Log.Error("Console", sLConsole.Translations("NoFound2"));
                return;
            }

            var memory = sRuntime.MemorySizeInMB;

            Log.Notice("Console", text[0], sUtilities.GetVersion());
            Log.Notice("Console", text[1], sPlatform.GetPlatform());
            Log.Notice("Console", text[2], string.Format("{0} {1}bit", sPlatform.GetOSName(), sPlatform.Is64BitProcess ? 64 : 32));
            Log.Notice("Console", text[3]);
            Log.Notice("Console", text[4], memory);
            Log.Notice("Console", text[5], Process.GetCurrentProcess().Threads.Count);
            Log.Notice("Console", text[6], SchumixBase.sTimer.Uptime());
        }
Example #12
0
        /// <summary>
        ///     Nick parancs függvénye.
        /// </summary>
        protected void HandleNick(ConsoleMessage sConsoleMessage)
        {
            var text = sLManager.GetConsoleCommandTexts("nick");

            if (text.Length < 2)
            {
                Log.Error("Console", sLConsole.Translations("NoFound2"));
                return;
            }

            if (sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                return;
            }

            sIrcBase.Networks[_servername].NewNick = true;
            string nick = sConsoleMessage.Info[1];

            if (!Rfc2812Util.IsValidNick(nick))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                return;
            }

            if (sIrcBase.Networks[_servername].sMyNickInfo.NickStorage == nick)
            {
                Log.Error("Console", text[1]);
                return;
            }

            if (sIrcBase.Networks[_servername].sChannelList.List[_channel].Names.ContainsKey(nick.ToLower()) && sIrcBase.Networks[_servername].sMyNickInfo.NickStorage.ToLower() != nick.ToLower())
            {
                Log.Error("Console", sLConsole.MessageHandler("Text14"));
                return;
            }

            sIrcBase.Networks[_servername].sMyNickInfo.ChangeNick(nick);
            sIrcBase.Networks[_servername].sSender.Nick(nick);
            Log.Notice("Console", text[0], nick);
        }
Example #13
0
        /// <summary>
        ///     Nick parancs függvénye.
        /// </summary>
        protected void HandleNick(ConsoleMessage sConsoleMessage)
        {
            var text = sLManager.GetConsoleCommandTexts("nick");
            if(text.Length < 2)
            {
                Log.Error("Console", sLConsole.Translations("NoFound2"));
                return;
            }

            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                return;
            }

            sIrcBase.Networks[_servername].NewNick = true;
            string nick = sConsoleMessage.Info[1];

            if(!Rfc2812Util.IsValidNick(nick))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                return;
            }

            if(sIrcBase.Networks[_servername].sMyNickInfo.NickStorage == nick)
            {
                Log.Error("Console", text[1]);
                return;
            }

            if(sIrcBase.Networks[_servername].sChannelList.List[_channel].Names.ContainsKey(nick.ToLower()) && sIrcBase.Networks[_servername].sMyNickInfo.NickStorage.ToLower() != nick.ToLower())
            {
                Log.Error("Console", sLConsole.MessageHandler("Text14"));
                return;
            }

            sIrcBase.Networks[_servername].sMyNickInfo.ChangeNick(nick);
            sIrcBase.Networks[_servername].sSender.Nick(nick);
            Log.Notice("Console", text[0], nick);
        }
Example #14
0
        /// <summary>
        ///     Left parancs függvénye.
        /// </summary>
        protected void HandleLeave(ConsoleMessage sConsoleMessage)
        {
            if (sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                return;
            }

            if (!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[1]))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                return;
            }

            if (!sIrcBase.Networks[_servername].sChannelList.List.ContainsKey(sConsoleMessage.Info[1].ToLower()))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("ImNotOnThisChannel"));
                return;
            }

            sIrcBase.Networks[_servername].sSender.Part(sConsoleMessage.Info[1]);
            Log.Notice("Console", sLManager.GetConsoleCommandText("leave"), sConsoleMessage.Info[1]);
        }
Example #15
0
        /// <summary>
        ///     Left parancs függvénye.
        /// </summary>
        protected void HandleLeave(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                return;
            }

            if(!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[1]))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                return;
            }

            if(!sIrcBase.Networks[_servername].sChannelList.List.ContainsKey(sConsoleMessage.Info[1].ToLower()))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("ImNotOnThisChannel"));
                return;
            }

            sIrcBase.Networks[_servername].sSender.Part(sConsoleMessage.Info[1]);
            Log.Notice("Console", sLManager.GetConsoleCommandText("leave"), sConsoleMessage.Info[1]);
        }
Example #16
0
        /// <summary>
        ///     Join parancs függvénye.
        /// </summary>
        protected void HandleJoin(ConsoleMessage sConsoleMessage)
        {
            if (sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                return;
            }

            if (!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[1]))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                return;
            }

            if (sIrcBase.Networks[_servername].sChannelList.List.ContainsKey(sConsoleMessage.Info[1].ToLower()))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("ImAlreadyOnThisChannel"));
                return;
            }

            if (sIrcBase.Networks[_servername].sIgnoreChannel.IsIgnore(sConsoleMessage.Info[1].ToLower()))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("ThisChannelBlockedByAdmin"));
                return;
            }

            if (sConsoleMessage.Info.Length == 2)
            {
                sIrcBase.Networks[_servername].sSender.Join(sConsoleMessage.Info[1]);
            }
            else if (sConsoleMessage.Info.Length == 3)
            {
                sIrcBase.Networks[_servername].sSender.Join(sConsoleMessage.Info[1], sConsoleMessage.Info[2]);
            }

            Log.Notice("Console", sLManager.GetConsoleCommandText("join"), sConsoleMessage.Info[1]);
        }
Example #17
0
        protected void HandleOldServerToNewServer(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoServerName"));
                return;
            }

            if(!sIrcBase.Networks.ContainsKey(sConsoleMessage.Info[1].ToLower()))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("ThereIsNoSuchAServerName"));
                return;
            }

            if(_servername == sConsoleMessage.Info[1].ToLower())
            {
                Log.Warning("Console", sLManager.GetConsoleWarningText("ServerAlreadyBeenUsed"));
                return;
            }

            _servername = sConsoleMessage.Info[1].ToLower();
            Log.Notice("Console", sLManager.GetConsoleCommandText("cserver"), sConsoleMessage.Info[1]);
            System.Console.Title = SchumixBase.Title + " || Console Writing Channel: " + sConsoleMessage.Info[1] + SchumixBase.Colon + _channel;
        }
Example #18
0
        /// <summary>
        ///     A bejövő információkat dolgozza fel és meghívja a parancsot ha létezik olyan.
        /// </summary>
        public bool CIncomingInfo(string info)
        {
            try
            {
                var CMessage = new ConsoleMessage();
                CMessage.Info = info.Split(SchumixBase.Space);
                string cmd = CMessage.Info[0].ToLower();

                if (ConsoleMethodMap.ContainsKey(cmd))
                {
                    ConsoleMethodMap[cmd].Method.Invoke(CMessage);
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                Log.Error("CIncomingInfo", sLConsole.GetString("Failure details: {0}"), e.Message);
                return(true);
            }
        }
Example #19
0
        protected void HandleOldServerToNewServer(ConsoleMessage sConsoleMessage)
        {
            if (sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoServerName"));
                return;
            }

            if (!sIrcBase.Networks.ContainsKey(sConsoleMessage.Info[1].ToLower()))
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("ThereIsNoSuchAServerName"));
                return;
            }

            if (_servername == sConsoleMessage.Info[1].ToLower())
            {
                Log.Warning("Console", sLManager.GetConsoleWarningText("ServerAlreadyBeenUsed"));
                return;
            }

            _servername = sConsoleMessage.Info[1].ToLower();
            Log.Notice("Console", sLManager.GetConsoleCommandText("cserver"), sConsoleMessage.Info[1]);
            System.Console.Title = SchumixBase.Title + " || Console Writing Channel: " + sConsoleMessage.Info[1] + SchumixBase.Colon + _channel;
        }
Example #20
0
        /// <summary>
        ///     A bejövő információkat dolgozza fel és meghívja a parancsot ha létezik olyan.
        /// </summary>
        public bool CIncomingInfo(string info)
        {
            try
            {
                var CMessage = new ConsoleMessage();
                CMessage.Info = info.Split(SchumixBase.Space);
                string cmd = CMessage.Info[0].ToLower();

                if(ConsoleMethodMap.ContainsKey(cmd))
                {
                    ConsoleMethodMap[cmd].Method.Invoke(CMessage);
                    return true;
                }
                else
                    return false;
            }
            catch(Exception e)
            {
                Log.Error("CIncomingInfo", sLConsole.GetString("Failure details: {0}"), e.Message);
                return true;
            }
        }
Example #21
0
        /// <summary>
        ///     Function parancs függvénye.
        /// </summary>
        protected void HandleFunction(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoValue1"));
                return;
            }

            if(sConsoleMessage.Info[1].ToLower() == "channel")
            {
                var text = sLManager.GetConsoleCommandTexts("function/channel");
                if(text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                    return;
                }

                if(!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[2]))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                    return;
                }

                var db0 = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername);
                if(db0.IsNull())
                {
                    Log.Error("Console", text[2]);
                    return;
                }

                if(sConsoleMessage.Info.Length < 4)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoValue1"));
                    return;
                }

                string channel = sConsoleMessage.Info[2].ToLower();
                string status = sConsoleMessage.Info[3].ToLower();

                if(sConsoleMessage.Info[3].ToLower() == "info")
                {
                    var text2 = sLManager.GetConsoleCommandTexts("function/channel/info");
                    if(text2.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    string[] ChannelInfo = sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsInfo(channel).Split('|');
                    if(ChannelInfo.Length < 2)
                        return;

                    Log.Notice("Console", text2[0], ChannelInfo[0]);
                    Log.Notice("Console", text2[1], ChannelInfo[1]);
                }
                else if(status == SchumixBase.On || status == SchumixBase.Off)
                {
                    if(sConsoleMessage.Info.Length < 5)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoFunctionName"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length >= 6)
                    {
                        string args = string.Empty;
                        string onfunction = string.Empty;
                        string offfunction = string.Empty;
                        string nosuchfunction = string.Empty;

                        for(int i = 4; i < sConsoleMessage.Info.Length; i++)
                        {
                            if(!sIrcBase.Networks[_servername].sMyChannelInfo.SearchChannelFunction(sConsoleMessage.Info[i]))
                            {
                                nosuchfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }

                            if(sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[i], channel) && status == SchumixBase.On)
                            {
                                onfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }
                            else if(!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[i], channel) && status == SchumixBase.Off)
                            {
                                offfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }

                            if(sIrcBase.Networks[_servername].sMyChannelInfo.SearchFunction(sConsoleMessage.Info[i]))
                            {
                                if(!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[i]) && status == SchumixBase.On)
                                {
                                    SchumixBase.DManager.Update("schumix", "FunctionStatus = 'on'", string.Format("FunctionName = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[i].ToLower(), _servername));
                                    sIrcBase.Networks[_servername].sMyChannelInfo.FunctionsReload();
                                }
                            }

                            args += ", " + sConsoleMessage.Info[i].ToLower();
                            SchumixBase.DManager.Update("channels", string.Format("Functions = '{0}'", sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctions(sConsoleMessage.Info[i].ToLower(), status, channel)), string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                            sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
                        }

                        if(!onfunction.IsNullOrEmpty())
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOn2"), onfunction.Remove(0, 2, ", "));

                        if(!offfunction.IsNullOrEmpty())
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOff2"), offfunction.Remove(0, 2, ", "));

                        if(!nosuchfunction.IsNullOrEmpty())
                            Log.Error("Console", sLConsole.Other("NoSuchFunctions2"), nosuchfunction.Remove(0, 2, ", "));

                        if(args.Length == 0)
                            return;

                        if(status == SchumixBase.On)
                            Log.Notice("Console", text[0],  args.Remove(0, 2, ", "));
                        else
                            Log.Notice("Console", text[1],  args.Remove(0, 2, ", "));
                    }
                    else
                    {
                        if(!sIrcBase.Networks[_servername].sMyChannelInfo.SearchChannelFunction(sConsoleMessage.Info[4]))
                        {
                            Log.Error("Console", sLConsole.Other("NoSuchFunctions"));
                            return;
                        }

                        if(sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[4], channel) && status == SchumixBase.On)
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOn"));
                            return;
                        }
                        else if(!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[4], channel) && status == SchumixBase.Off)
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOff"));
                            return;
                        }

                        if(sIrcBase.Networks[_servername].sMyChannelInfo.SearchFunction(sConsoleMessage.Info[4]))
                        {
                            if(!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[4]) && status == SchumixBase.On)
                            {
                                SchumixBase.DManager.Update("schumix", "FunctionStatus = 'on'", string.Format("FunctionName = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[4].ToLower(), _servername));
                                sIrcBase.Networks[_servername].sMyChannelInfo.FunctionsReload();
                            }
                        }

                        if(status == SchumixBase.On)
                            Log.Notice("Console", text[0], sConsoleMessage.Info[4].ToLower());
                        else
                            Log.Notice("Console", text[1], sConsoleMessage.Info[4].ToLower());

                        SchumixBase.DManager.Update("channels", string.Format("Functions = '{0}'", sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctions(sConsoleMessage.Info[4].ToLower(), status, channel)), string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                        sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
                    }
                }
                else
                    Log.Error("Console", sLManager.GetConsoleWarningText("WrongSwitch"));
            }
            else if(sConsoleMessage.Info[1].ToLower() == "update")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoValue1"));
                    return;
                }

                if(sConsoleMessage.Info[2].ToLower() == "all")
                {
                    var db = SchumixBase.DManager.Query("SELECT Channel FROM channels WHERE ServerName = '{0}'", _servername);
                    if(!db.IsNull())
                    {
                        foreach(DataRow row in db.Rows)
                        {
                            string channel = row["Channel"].ToString();
                            SchumixBase.DManager.Update("channels", string.Format("Functions = '{0}'", sUtilities.GetFunctionUpdate()), string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                        }

                        sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
                        Log.Notice("Console", sLManager.GetConsoleCommandText("function/update/all"));
                    }
                    else
                        Log.Error("Console", sLManager.GetConsoleWarningText("FaultyQuery"));
                }
                else
                {
                    if(!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[2]))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    Log.Notice("Console", sLManager.GetConsoleCommandText("function/update"), sConsoleMessage.Info[2].ToLower());
                    SchumixBase.DManager.Update("channels", string.Format("Functions = '{0}'", sUtilities.GetFunctionUpdate()), string.Format("Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername));
                    sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
                }
            }
            else if(sConsoleMessage.Info[1].ToLower() == "info")
            {
                var text = sLManager.GetConsoleCommandTexts("function/info");
                if(text.Length < 2)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string f = sIrcBase.Networks[_servername].sMyChannelInfo.FunctionsInfo();
                if(f.IsNullOrEmpty())
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("FaultyQuery"));
                    return;
                }

                string[] FunkcioInfo = f.Split('|');
                if(FunkcioInfo.Length < 2)
                    return;

                Log.Notice("Console", text[0], FunkcioInfo[0]);
                Log.Notice("Console", text[1], FunkcioInfo[1]);
            }
            else
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoFunctionName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("function");
                if(text.Length < 2)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                if(sConsoleMessage.Info[1].ToLower() == SchumixBase.On || sConsoleMessage.Info[1].ToLower() == SchumixBase.Off)
                {
                    if(sConsoleMessage.Info.Length >= 4)
                    {
                        string args = string.Empty;
                        string onfunction = string.Empty;
                        string offfunction = string.Empty;
                        string nosuchfunction = string.Empty;

                        for(int i = 2; i < sConsoleMessage.Info.Length; i++)
                        {
                            if(!sIrcBase.Networks[_servername].sMyChannelInfo.SearchFunction(sConsoleMessage.Info[i]))
                            {
                                nosuchfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }

                            if(sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[i]) && sConsoleMessage.Info[1].ToLower() == SchumixBase.On)
                            {
                                onfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }
                            else if(!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[i]) && sConsoleMessage.Info[1].ToLower() == SchumixBase.Off)
                            {
                                offfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }

                            args += ", " + sConsoleMessage.Info[i].ToLower();
                            SchumixBase.DManager.Update("schumix", string.Format("FunctionStatus = '{0}'", sConsoleMessage.Info[1].ToLower()), string.Format("FunctionName = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[i].ToLower(), _servername));
                            sIrcBase.Networks[_servername].sMyChannelInfo.FunctionsReload();
                        }

                        if(!onfunction.IsNullOrEmpty())
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOn2"), onfunction.Remove(0, 2, ", "));

                        if(!offfunction.IsNullOrEmpty())
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOff2"), offfunction.Remove(0, 2, ", "));

                        if(!nosuchfunction.IsNullOrEmpty())
                            Log.Error("Console", sLConsole.Other("NoSuchFunctions2"), nosuchfunction.Remove(0, 2, ", "));

                        if(args.Length == 0)
                            return;

                        if(sConsoleMessage.Info[1].ToLower() == SchumixBase.On)
                            Log.Notice("Console", text[0],  args.Remove(0, 2, ", "));
                        else
                            Log.Notice("Console", text[1],  args.Remove(0, 2, ", "));
                    }
                    else
                    {
                        if(!sIrcBase.Networks[_servername].sMyChannelInfo.SearchFunction(sConsoleMessage.Info[2]))
                        {
                            Log.Error("Console", sLConsole.Other("NoSuchFunctions"));
                            return;
                        }

                        if(sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[2]) && sConsoleMessage.Info[1].ToLower() == SchumixBase.On)
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOn"));
                            return;
                        }
                        else if(!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[2]) && sConsoleMessage.Info[1].ToLower() == SchumixBase.Off)
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOff"));
                            return;
                        }

                        if(sConsoleMessage.Info[1].ToLower() == SchumixBase.On)
                            Log.Notice("Console", text[0], sConsoleMessage.Info[2].ToLower());
                        else
                            Log.Notice("Console", text[1], sConsoleMessage.Info[2].ToLower());

                        SchumixBase.DManager.Update("schumix", string.Format("FunctionStatus = '{0}'", sConsoleMessage.Info[1].ToLower()), string.Format("FunctionName = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername));
                        sIrcBase.Networks[_servername].sMyChannelInfo.FunctionsReload();
                    }
                }
                else
                    Log.Error("Console", sLManager.GetConsoleWarningText("WrongSwitch"));
            }
        }
Example #22
0
        /// <summary>
        ///     Admin parancs függvénye.
        /// </summary>
        protected void HandleAdmin(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "info")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("admin/info");
                if(text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT Flag FROM admins WHERE Name = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername);
                int flag = !db.IsNull() ? db["Flag"].ToInt32() : -1;

                if((AdminFlag)flag == AdminFlag.HalfOperator)
                    Log.Notice("Console", text[0]);
                else if((AdminFlag)flag == AdminFlag.Operator)
                    Log.Notice("Console", text[1]);
                else if((AdminFlag)flag == AdminFlag.Administrator)
                    Log.Notice("Console", text[2]);
            }
            else if(sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "list")
            {
                var db = SchumixBase.DManager.Query("SELECT Name FROM admins WHERE ServerName = '{0}'", _servername);
                if(!db.IsNull())
                {
                    string admins = string.Empty;

                    foreach(DataRow row in db.Rows)
                    {
                        string name = row["Name"].ToString();
                        admins += ", " + name;
                    }

                    Log.Notice("Console", sLManager.GetConsoleCommandText("admin/list"), admins.Remove(0, 2, ", "));
                }
                else
                    Log.Error("Console", sLManager.GetConsoleWarningText("FaultyQuery"));
            }
            else if(sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "add")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("admin/add");
                if(text.Length < 5)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string name = sConsoleMessage.Info[2];
                if(!Rfc2812Util.IsValidNick(name))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM admins WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername);
                if(!db.IsNull())
                {
                    Log.Warning("Console", text[0]);
                    return;
                }

                string pass = sUtilities.GetRandomString();
                SchumixBase.DManager.Insert("`admins`(ServerId, ServerName, Name, Password)", IRCConfig.List[_servername].ServerId, _servername, name.ToLower(), sUtilities.Sha1(pass));

                if(SchumixBase.DManager.IsCreatedTable("hlmessage"))
                    SchumixBase.DManager.Insert("`hlmessage`(ServerId, ServerName, Name, Enabled)", IRCConfig.List[_servername].ServerId, _servername, name.ToLower(), SchumixBase.Off);

                Log.Notice("Console", text[1], name);
                Log.Notice("Console", text[2], pass);

                if(SchumixBase.DManager.IsCreatedTable("notes_users"))
                {
                    var db1 = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM notes_users WHERE Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name.ToLower()), _servername);
                    if(db1.IsNull())
                    {
                        SchumixBase.DManager.Insert("`notes_users`(ServerId, ServerName, Name, Password)", IRCConfig.List[_servername].ServerId, _servername, name.ToLower(), sUtilities.Sha1(pass));
                        Log.Notice("Console", text[3], name);
                        Log.Notice("Console", text[4], pass);
                    }
                }
            }
            else if(sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "remove")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("admin/remove");
                if(text.Length < 2)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string name = sConsoleMessage.Info[2];
                if(!Rfc2812Util.IsValidNick(name))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM admins WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername);
                if(db.IsNull())
                {
                    Log.Warning("Console", text[0]);
                    return;
                }

                SchumixBase.DManager.Delete("admins", string.Format("Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername));

                if(SchumixBase.DManager.IsCreatedTable("hlmessage"))
                    SchumixBase.DManager.Delete("hlmessage", string.Format("Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername));

                if(SchumixBase.DManager.IsCreatedTable("birthday"))
                {
                    var db1 = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM birthday WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername);
                    if(!db1.IsNull())
                        SchumixBase.DManager.Delete("birthday", string.Format("Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername));
                }

                Log.Notice("Console", text[1], name);
            }
            else if(sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "rank")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                    return;
                }

                if(sConsoleMessage.Info.Length < 4)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoRank"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("admin/rank");
                if(text.Length < 2)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string name = sConsoleMessage.Info[2].ToLower();
                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM admins WHERE Name = '{0}' And ServerName = '{1}'",  name, _servername);
                if(db.IsNull())
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("ThisIsntInTheList"));
                    return;
                }

                if(!Rfc2812Util.IsValidNick(name))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                    return;
                }

                int rank = sConsoleMessage.Info[3].ToInt32();

                if((AdminFlag)rank == AdminFlag.Administrator || (AdminFlag)rank == AdminFlag.Operator || (AdminFlag)rank == AdminFlag.HalfOperator)
                {
                    var db1 = SchumixBase.DManager.QueryFirstRow("SELECT Flag FROM admins WHERE Name = '{0}' And ServerName = '{1}'", name, _servername);
                    if(!db1.IsNull())
                    {
                        if(db1["Flag"].ToInt32() == rank)
                        {
                            Log.Error("Console", sLManager.GetConsoleWarningText("TheGivenRankIsntDifferent"));
                            return;
                        }
                    }

                    SchumixBase.DManager.Update("admins", string.Format("Flag = '{0}'", rank), string.Format("Name = '{0}' And ServerName = '{1}'", name, _servername));
                    Log.Notice("Console", text[0]);
                }
                else
                    Log.Error("Console", text[1]);
            }
            else
                Log.Notice("Console", sLManager.GetConsoleCommandText("admin"));
        }
Example #23
0
        /// <summary>
        ///     Reload parancs függvénye.
        /// </summary>
        protected void HandleReload(ConsoleMessage sConsoleMessage)
        {
            if (sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                return;
            }

            var text = sLManager.GetConsoleCommandTexts("reload");

            if (text.Length < 2)
            {
                Log.Error("Console", sLConsole.Translations("NoFound2"));
                return;
            }

            int i = -1;

            switch (sConsoleMessage.Info[1].ToLower())
            {
            case "config":
                new Config(SchumixConfig.ConfigDirectory, SchumixConfig.ConfigFile, SchumixConfig.ColorBindMode);
                sIrcBase.Networks[_servername].sIgnoreAddon.RemoveConfig();
                sIrcBase.Networks[_servername].sIgnoreAddon.LoadConfig();
                sIrcBase.Networks[_servername].sIgnoreChannel.RemoveConfig();
                sIrcBase.Networks[_servername].sIgnoreChannel.LoadConfig();
                sIrcBase.Networks[_servername].sIgnoreNickName.RemoveConfig();
                sIrcBase.Networks[_servername].sIgnoreNickName.LoadConfig();
                sIrcBase.Networks[_servername].ReloadMessageHandlerConfig();
                sLConsole.SetLocale(LocalizationConfig.Locale);
                sIrcBase.Networks[_servername].sCtcpSender.ClientInfoResponse = sLConsole.GetString("This client supports: UserInfo, Finger, Version, Source, Ping, Time and ClientInfo");
                i = 1;
                break;

            case "cachedb":
                SchumixBase.sCacheDB.Reload();
                i = 1;
                break;

            case "irc":
                sIrcBase.Reload();
                i = 1;
                break;
            }

            bool load = true;

            foreach (var plugin in sAddonManager.Addons[_servername].Addons)
            {
                if (!sAddonManager.Addons[_servername].IgnoreAssemblies.ContainsKey(plugin.Key) &&
                    plugin.Value.Reload(sConsoleMessage.Info[1].ToLower(), load) == 1)
                {
                    i = 1;
                }
                else if (!sAddonManager.Addons[_servername].IgnoreAssemblies.ContainsKey(plugin.Key) &&
                         plugin.Value.Reload(sConsoleMessage.Info[1].ToLower(), load) == 0)
                {
                    i = 0;
                }

                if (load)
                {
                    load = false;
                }
            }

            if (i == -1)
            {
                Log.Error("Console", text[0]);
            }
            else if (i == 0)
            {
                Log.Error("Console", text[1]);
            }
            else if (i == 1)
            {
                Log.Notice("Console", text[2], sConsoleMessage.Info[1]);
            }
        }
Example #24
0
        /// <summary>
        ///     Function parancs függvénye.
        /// </summary>
        protected void HandleFunction(ConsoleMessage sConsoleMessage)
        {
            if (sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoValue1"));
                return;
            }

            if (sConsoleMessage.Info[1].ToLower() == "channel")
            {
                var text = sLManager.GetConsoleCommandTexts("function/channel");
                if (text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                    return;
                }

                if (!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[2]))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                    return;
                }

                var db0 = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername);
                if (db0.IsNull())
                {
                    Log.Error("Console", text[2]);
                    return;
                }

                if (sConsoleMessage.Info.Length < 4)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoValue1"));
                    return;
                }

                string channel = sConsoleMessage.Info[2].ToLower();
                string status  = sConsoleMessage.Info[3].ToLower();

                if (sConsoleMessage.Info[3].ToLower() == "info")
                {
                    var text2 = sLManager.GetConsoleCommandTexts("function/channel/info");
                    if (text2.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    string[] ChannelInfo = sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsInfo(channel).Split('|');
                    if (ChannelInfo.Length < 2)
                    {
                        return;
                    }

                    Log.Notice("Console", text2[0], ChannelInfo[0]);
                    Log.Notice("Console", text2[1], ChannelInfo[1]);
                }
                else if (status == SchumixBase.On || status == SchumixBase.Off)
                {
                    if (sConsoleMessage.Info.Length < 5)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoFunctionName"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length >= 6)
                    {
                        string args           = string.Empty;
                        string onfunction     = string.Empty;
                        string offfunction    = string.Empty;
                        string nosuchfunction = string.Empty;

                        for (int i = 4; i < sConsoleMessage.Info.Length; i++)
                        {
                            if (!sIrcBase.Networks[_servername].sMyChannelInfo.SearchChannelFunction(sConsoleMessage.Info[i]))
                            {
                                nosuchfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }

                            if (sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[i], channel) && status == SchumixBase.On)
                            {
                                onfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }
                            else if (!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[i], channel) && status == SchumixBase.Off)
                            {
                                offfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }

                            if (sIrcBase.Networks[_servername].sMyChannelInfo.SearchFunction(sConsoleMessage.Info[i]))
                            {
                                if (!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[i]) && status == SchumixBase.On)
                                {
                                    SchumixBase.DManager.Update("schumix", "FunctionStatus = 'on'", string.Format("FunctionName = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[i].ToLower(), _servername));
                                    sIrcBase.Networks[_servername].sMyChannelInfo.FunctionsReload();
                                }
                            }

                            args += ", " + sConsoleMessage.Info[i].ToLower();
                            SchumixBase.DManager.Update("channels", string.Format("Functions = '{0}'", sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctions(sConsoleMessage.Info[i].ToLower(), status, channel)), string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                            sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
                        }

                        if (!onfunction.IsNullOrEmpty())
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOn2"), onfunction.Remove(0, 2, ", "));
                        }

                        if (!offfunction.IsNullOrEmpty())
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOff2"), offfunction.Remove(0, 2, ", "));
                        }

                        if (!nosuchfunction.IsNullOrEmpty())
                        {
                            Log.Error("Console", sLConsole.Other("NoSuchFunctions2"), nosuchfunction.Remove(0, 2, ", "));
                        }

                        if (args.Length == 0)
                        {
                            return;
                        }

                        if (status == SchumixBase.On)
                        {
                            Log.Notice("Console", text[0], args.Remove(0, 2, ", "));
                        }
                        else
                        {
                            Log.Notice("Console", text[1], args.Remove(0, 2, ", "));
                        }
                    }
                    else
                    {
                        if (!sIrcBase.Networks[_servername].sMyChannelInfo.SearchChannelFunction(sConsoleMessage.Info[4]))
                        {
                            Log.Error("Console", sLConsole.Other("NoSuchFunctions"));
                            return;
                        }

                        if (sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[4], channel) && status == SchumixBase.On)
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOn"));
                            return;
                        }
                        else if (!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[4], channel) && status == SchumixBase.Off)
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOff"));
                            return;
                        }

                        if (sIrcBase.Networks[_servername].sMyChannelInfo.SearchFunction(sConsoleMessage.Info[4]))
                        {
                            if (!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[4]) && status == SchumixBase.On)
                            {
                                SchumixBase.DManager.Update("schumix", "FunctionStatus = 'on'", string.Format("FunctionName = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[4].ToLower(), _servername));
                                sIrcBase.Networks[_servername].sMyChannelInfo.FunctionsReload();
                            }
                        }

                        if (status == SchumixBase.On)
                        {
                            Log.Notice("Console", text[0], sConsoleMessage.Info[4].ToLower());
                        }
                        else
                        {
                            Log.Notice("Console", text[1], sConsoleMessage.Info[4].ToLower());
                        }

                        SchumixBase.DManager.Update("channels", string.Format("Functions = '{0}'", sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctions(sConsoleMessage.Info[4].ToLower(), status, channel)), string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                        sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
                    }
                }
                else
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("WrongSwitch"));
                }
            }
            else if (sConsoleMessage.Info[1].ToLower() == "update")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoValue1"));
                    return;
                }

                if (sConsoleMessage.Info[2].ToLower() == "all")
                {
                    var db = SchumixBase.DManager.Query("SELECT Channel FROM channels WHERE ServerName = '{0}'", _servername);
                    if (!db.IsNull())
                    {
                        foreach (DataRow row in db.Rows)
                        {
                            string channel = row["Channel"].ToString();
                            SchumixBase.DManager.Update("channels", string.Format("Functions = '{0}'", sUtilities.GetFunctionUpdate()), string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                        }

                        sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
                        Log.Notice("Console", sLManager.GetConsoleCommandText("function/update/all"));
                    }
                    else
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("FaultyQuery"));
                    }
                }
                else
                {
                    if (!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[2]))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    Log.Notice("Console", sLManager.GetConsoleCommandText("function/update"), sConsoleMessage.Info[2].ToLower());
                    SchumixBase.DManager.Update("channels", string.Format("Functions = '{0}'", sUtilities.GetFunctionUpdate()), string.Format("Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername));
                    sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
                }
            }
            else if (sConsoleMessage.Info[1].ToLower() == "info")
            {
                var text = sLManager.GetConsoleCommandTexts("function/info");
                if (text.Length < 2)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string f = sIrcBase.Networks[_servername].sMyChannelInfo.FunctionsInfo();
                if (f.IsNullOrEmpty())
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("FaultyQuery"));
                    return;
                }

                string[] FunkcioInfo = f.Split('|');
                if (FunkcioInfo.Length < 2)
                {
                    return;
                }

                Log.Notice("Console", text[0], FunkcioInfo[0]);
                Log.Notice("Console", text[1], FunkcioInfo[1]);
            }
            else
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoFunctionName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("function");
                if (text.Length < 2)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                if (sConsoleMessage.Info[1].ToLower() == SchumixBase.On || sConsoleMessage.Info[1].ToLower() == SchumixBase.Off)
                {
                    if (sConsoleMessage.Info.Length >= 4)
                    {
                        string args           = string.Empty;
                        string onfunction     = string.Empty;
                        string offfunction    = string.Empty;
                        string nosuchfunction = string.Empty;

                        for (int i = 2; i < sConsoleMessage.Info.Length; i++)
                        {
                            if (!sIrcBase.Networks[_servername].sMyChannelInfo.SearchFunction(sConsoleMessage.Info[i]))
                            {
                                nosuchfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }

                            if (sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[i]) && sConsoleMessage.Info[1].ToLower() == SchumixBase.On)
                            {
                                onfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }
                            else if (!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[i]) && sConsoleMessage.Info[1].ToLower() == SchumixBase.Off)
                            {
                                offfunction += ", " + sConsoleMessage.Info[i].ToLower();
                                continue;
                            }

                            args += ", " + sConsoleMessage.Info[i].ToLower();
                            SchumixBase.DManager.Update("schumix", string.Format("FunctionStatus = '{0}'", sConsoleMessage.Info[1].ToLower()), string.Format("FunctionName = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[i].ToLower(), _servername));
                            sIrcBase.Networks[_servername].sMyChannelInfo.FunctionsReload();
                        }

                        if (!onfunction.IsNullOrEmpty())
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOn2"), onfunction.Remove(0, 2, ", "));
                        }

                        if (!offfunction.IsNullOrEmpty())
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOff2"), offfunction.Remove(0, 2, ", "));
                        }

                        if (!nosuchfunction.IsNullOrEmpty())
                        {
                            Log.Error("Console", sLConsole.Other("NoSuchFunctions2"), nosuchfunction.Remove(0, 2, ", "));
                        }

                        if (args.Length == 0)
                        {
                            return;
                        }

                        if (sConsoleMessage.Info[1].ToLower() == SchumixBase.On)
                        {
                            Log.Notice("Console", text[0], args.Remove(0, 2, ", "));
                        }
                        else
                        {
                            Log.Notice("Console", text[1], args.Remove(0, 2, ", "));
                        }
                    }
                    else
                    {
                        if (!sIrcBase.Networks[_servername].sMyChannelInfo.SearchFunction(sConsoleMessage.Info[2]))
                        {
                            Log.Error("Console", sLConsole.Other("NoSuchFunctions"));
                            return;
                        }

                        if (sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[2]) && sConsoleMessage.Info[1].ToLower() == SchumixBase.On)
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOn"));
                            return;
                        }
                        else if (!sIrcBase.Networks[_servername].sMyChannelInfo.FSelect(sConsoleMessage.Info[2]) && sConsoleMessage.Info[1].ToLower() == SchumixBase.Off)
                        {
                            Log.Warning("Console", sLManager.GetConsoleWarningText("FunctionAlreadyTurnedOff"));
                            return;
                        }

                        if (sConsoleMessage.Info[1].ToLower() == SchumixBase.On)
                        {
                            Log.Notice("Console", text[0], sConsoleMessage.Info[2].ToLower());
                        }
                        else
                        {
                            Log.Notice("Console", text[1], sConsoleMessage.Info[2].ToLower());
                        }

                        SchumixBase.DManager.Update("schumix", string.Format("FunctionStatus = '{0}'", sConsoleMessage.Info[1].ToLower()), string.Format("FunctionName = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername));
                        sIrcBase.Networks[_servername].sMyChannelInfo.FunctionsReload();
                    }
                }
                else
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("WrongSwitch"));
                }
            }
        }
Example #25
0
        /// <summary>
        ///     Channel parancs függvénye.
        /// </summary>
        protected void HandleChannel(ConsoleMessage sConsoleMessage)
        {
            if (sConsoleMessage.Info.Length < 2)
            {
                Log.Notice("Console", sLManager.GetConsoleCommandText("channel"));
                return;
            }

            if (sConsoleMessage.Info[1].ToLower() == "add")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("channel/add");
                if (text.Length < 2)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string channel = sConsoleMessage.Info[2].ToLower();

                if (!Rfc2812Util.IsValidChannelName(channel))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                    return;
                }

                if (sIrcBase.Networks[_servername].sChannelList.List.ContainsKey(sConsoleMessage.Info[1].ToLower()))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("ImAlreadyOnThisChannel"));
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", channel, _servername);
                if (!db.IsNull())
                {
                    Log.Warning("Console", text[0]);
                    return;
                }

                if (sConsoleMessage.Info.Length == 4)
                {
                    string pass = sConsoleMessage.Info[3];
                    sIrcBase.Networks[_servername].sSender.Join(channel, pass);
                    SchumixBase.DManager.Insert("`channels`(ServerId, ServerName, Channel, Password, Language)", IRCConfig.List[_servername].ServerId, _servername, channel, pass, sLManager.Locale);
                    SchumixBase.DManager.Update("channels", "Enabled = 'true'", string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                }
                else
                {
                    sIrcBase.Networks[_servername].sSender.Join(channel);
                    SchumixBase.DManager.Insert("`channels`(ServerId, ServerName, Channel, Password, Language)", IRCConfig.List[_servername].ServerId, _servername, channel, string.Empty, sLManager.Locale);
                    SchumixBase.DManager.Update("channels", "Enabled = 'true'", string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                }

                Log.Notice("Console", text[1], channel);
                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelListReload();
                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
            }
            else if (sConsoleMessage.Info[1].ToLower() == "remove")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("channel/remove");
                if (text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string channel = sConsoleMessage.Info[2].ToLower();

                if (!Rfc2812Util.IsValidChannelName(channel))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                    return;
                }

                if (channel == IRCConfig.List[_servername].MasterChannel.ToLower())
                {
                    Log.Warning("Console", text[0]);
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", channel, _servername);
                if (db.IsNull())
                {
                    Log.Warning("Console", text[1]);
                    return;
                }

                sIrcBase.Networks[_servername].sSender.Part(channel);
                SchumixBase.DManager.Delete("channels", string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                Log.Notice("Console", text[2], channel);

                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelListReload();
                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
            }
            else if (sConsoleMessage.Info[1].ToLower() == "update")
            {
                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelListReload();
                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
                Log.Notice("Console", sLManager.GetConsoleCommandText("channel/update"));
            }
            else if (sConsoleMessage.Info[1].ToLower() == "info")
            {
                var text = sLManager.GetConsoleCommandTexts("channel/info");
                if (text.Length < 6)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                var db = SchumixBase.DManager.Query("SELECT Channel, Enabled, Hidden, Error FROM channels WHERE ServerName = '{0}'", _servername);
                if (!db.IsNull())
                {
                    string ActiveChannels = string.Empty, InActiveChannels = string.Empty, HiddenChannels = string.Empty;

                    foreach (DataRow row in db.Rows)
                    {
                        string channel = row["Channel"].ToString();
                        bool   enabled = row["Enabled"].ToBoolean();
                        bool   hidden  = row["Hidden"].ToBoolean();

                        if (enabled && !hidden)
                        {
                            ActiveChannels += ", " + channel;
                        }
                        else if (!enabled && !hidden)
                        {
                            InActiveChannels += ", " + channel + SchumixBase.Colon + row["Error"].ToString();
                        }

                        if (hidden)
                        {
                            HiddenChannels += ", " + channel;
                        }
                    }

                    if (ActiveChannels.Length > 0)
                    {
                        Log.Notice("Console", text[0], ActiveChannels.Remove(0, 2, ", "));
                    }
                    else
                    {
                        Log.Notice("Console", text[1]);
                    }

                    if (InActiveChannels.Length > 0)
                    {
                        Log.Notice("Console", text[2], InActiveChannels.Remove(0, 2, ", "));
                    }
                    else
                    {
                        Log.Notice("Console", text[3]);
                    }

                    if (HiddenChannels.Length > 0)
                    {
                        Log.Notice("Console", text[4], HiddenChannels.Remove(0, 2, ", "));
                    }
                    else
                    {
                        Log.Notice("Console", text[5]);
                    }
                }
                else
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("FaultyQuery"));
                }
            }
            else if (sConsoleMessage.Info[1].ToLower() == "language")
            {
                var text = sLManager.GetConsoleCommandTexts("channel/language");
                if (text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                    return;
                }

                if (!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[2]))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername);
                if (db.IsNull())
                {
                    Log.Warning("Console", text[1]);
                    return;
                }

                if (sConsoleMessage.Info.Length < 4)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelLanguage"));
                    return;
                }

                db = SchumixBase.DManager.QueryFirstRow("SELECT Language FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername);
                if (!db.IsNull())
                {
                    if (db["Language"].ToString().ToLower() == sConsoleMessage.Info[3].ToLower())
                    {
                        Log.Warning("Console", text[2], sConsoleMessage.Info[3]);
                        return;
                    }
                }

                SchumixBase.DManager.Update("channels", string.Format("Language = '{0}'", sConsoleMessage.Info[3]), string.Format("Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername));
                Log.Notice("Console", text[0], sConsoleMessage.Info[3]);
                SchumixBase.sCacheDB.Reload("channels");
            }
            else if (sConsoleMessage.Info[1].ToLower() == "password")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoValue"));
                    return;
                }

                if (sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("channel/password/add");
                    if (text.Length < 3)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    if (!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[3]))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 5)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoPassword"));
                        return;
                    }

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if (db.IsNull())
                    {
                        Log.Warning("Console", text[0]);
                        return;
                    }

                    db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if (!db.IsNull())
                    {
                        if (!db["Password"].ToString().IsNullOrEmpty())
                        {
                            Log.Notice("Console", text[1]);
                            return;
                        }
                    }

                    SchumixBase.DManager.Update("channels", string.Format("Password = '******'", sConsoleMessage.Info[4]), string.Format("Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername));
                    Log.Notice("Console", text[2], sConsoleMessage.Info[3]);
                    SchumixBase.sCacheDB.Reload("channels");
                }
                else if (sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("channel/password/remove");
                    if (text.Length < 3)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    if (!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[3]))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if (db.IsNull())
                    {
                        Log.Warning("Console", text[0]);
                        return;
                    }

                    db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if (!db.IsNull())
                    {
                        if (db["Password"].ToString().IsNullOrEmpty())
                        {
                            Log.Notice("Console", text[1]);
                            return;
                        }
                    }

                    SchumixBase.DManager.Update("channels", "Password = ''", string.Format("Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername));
                    Log.Notice("Console", text[2]);
                    SchumixBase.sCacheDB.Reload("channels");
                }
                else if (sConsoleMessage.Info[2].ToLower() == "update")
                {
                    var text = sLManager.GetConsoleCommandTexts("channel/password/update");
                    if (text.Length < 3)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    if (!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[3]))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 5)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoPassword"));
                        return;
                    }

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if (db.IsNull())
                    {
                        Log.Warning("Console", text[0]);
                        return;
                    }

                    db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if (!db.IsNull())
                    {
                        if (db["Password"].ToString().IsNullOrEmpty())
                        {
                            Log.Notice("Console", text[1]);
                            return;
                        }
                    }

                    SchumixBase.DManager.Update("channels", string.Format("Password = '******'", sConsoleMessage.Info[4]), string.Format("Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername));
                    Log.Notice("Console", text[2], sConsoleMessage.Info[4]);
                    SchumixBase.sCacheDB.Reload("channels");
                }
                else if (sConsoleMessage.Info[2].ToLower() == "info")
                {
                    var text = sLManager.GetConsoleCommandTexts("channel/password/info");
                    if (text.Length < 3)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    if (!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[3]))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if (db.IsNull())
                    {
                        Log.Warning("Console", text[0]);
                        return;
                    }

                    db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if (!db.IsNull())
                    {
                        if (db["Password"].ToString().IsNullOrEmpty())
                        {
                            Log.Notice("Console", text[1]);
                        }
                        else
                        {
                            Log.Notice("Console", text[2]);
                        }
                    }
                }
            }
        }
Example #26
0
        /// <summary>
        ///     Ignore parancs függvénye.
        /// </summary>
        protected void HandleIgnore(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoValue"));
                return;
            }

            if(sConsoleMessage.Info[1].ToLower() == "irc")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if(sConsoleMessage.Info[2].ToLower() == "command")
                {
                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                        return;
                    }

                    if(sConsoleMessage.Info[3].ToLower() == "add")
                    {
                        var text = sLManager.GetConsoleCommandTexts("ignore/irc/command/add");
                        if(text.Length < 2)
                        {
                            Log.Error("Console", sLConsole.Translations("NoFound2"));
                            return;
                        }

                        if(sConsoleMessage.Info.Length < 5)
                        {
                            Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                            return;
                        }

                        string command = sConsoleMessage.Info[4].ToLower();

                        if(sIrcBase.Networks[_servername].sIgnoreIrcCommand.IsIgnore(command))
                        {
                            Log.Error("Console", text[0]);
                            return;
                        }

                        sIrcBase.Networks[_servername].sIgnoreIrcCommand.Add(command);
                        Log.Notice("Console", text[1]);
                    }
                    else if(sConsoleMessage.Info[3].ToLower() == "remove")
                    {
                        var text = sLManager.GetConsoleCommandTexts("ignore/irc/command/remove");
                        if(text.Length < 2)
                        {
                            Log.Error("Console", sLConsole.Translations("NoFound2"));
                            return;
                        }

                        if(sConsoleMessage.Info.Length < 5)
                        {
                            Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                            return;
                        }

                        string command = sConsoleMessage.Info[4].ToLower();

                        if(!sIrcBase.Networks[_servername].sIgnoreIrcCommand.IsIgnore(command))
                        {
                            Log.Error("Console", text[0]);
                            return;
                        }

                        sIrcBase.Networks[_servername].sIgnoreIrcCommand.Remove(command);
                        Log.Notice("Console", text[1]);
                    }
                    else if(sConsoleMessage.Info[3].ToLower() == "search")
                    {
                        var text = sLManager.GetConsoleCommandTexts("ignore/irc/command/search");
                        if(text.Length < 2)
                        {
                            Log.Error("Console", sLConsole.Translations("NoFound2"));
                            return;
                        }

                        if(sConsoleMessage.Info.Length < 5)
                        {
                            Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                            return;
                        }

                        if(sIrcBase.Networks[_servername].sIgnoreIrcCommand.Contains(sConsoleMessage.Info[4].ToLower()))
                            Log.Notice("Console", text[0]);
                        else
                            Log.Error("Console", text[1]);
                    }
                }
            }
            else if(sConsoleMessage.Info[1].ToLower() == "command")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if(sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/command/add");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                        return;
                    }

                    string command = sConsoleMessage.Info[3].ToLower();

                    if(command == "ignore" || command == "admin")
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoIgnoreCommand"));
                        return;
                    }

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT BaseCommand FROM alias_console_command WHERE NewCommand = '{0}'", sUtilities.SqlEscape(command));
                    if(!db.IsNull())
                    {
                        string basecommand = db["BaseCommand"].ToString();

                        if(basecommand == "ignore" || basecommand == "admin")
                        {
                            Log.Error("Console", sLManager.GetConsoleWarningText("NoIgnoreCommand"));
                            return;
                        }
                    }

                    if(sIrcBase.Networks[_servername].sIgnoreCommand.IsIgnore(command))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreCommand.Add(command);
                    Log.Notice("Console", text[1]);
                }
                else if(sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/command/remove");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                        return;
                    }

                    string command = sConsoleMessage.Info[3].ToLower();

                    if(!sIrcBase.Networks[_servername].sIgnoreCommand.IsIgnore(command))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreCommand.Remove(command);
                    Log.Notice("Console", text[1]);
                }
                else if(sConsoleMessage.Info[2].ToLower() == "search")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/command/search");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                        return;
                    }

                    if(sIrcBase.Networks[_servername].sIgnoreCommand.Contains(sConsoleMessage.Info[3].ToLower()))
                        Log.Notice("Console", text[0]);
                    else
                        Log.Error("Console", text[1]);
                }
            }
            else if(sConsoleMessage.Info[1].ToLower() == "channel")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if(sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/channel/add");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    string channel = sConsoleMessage.Info[3].ToLower();

                    if(!Rfc2812Util.IsValidChannelName(channel))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    if(channel == IRCConfig.List[_servername].MasterChannel.ToLower())
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoIgnoreMasterChannel"));
                        return;
                    }

                    if(sIrcBase.Networks[_servername].sIgnoreChannel.IsIgnore(channel))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreChannel.Add(channel);
                    Log.Notice("Console", text[1]);
                }
                else if(sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/channel/remove");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    string channel = sConsoleMessage.Info[3].ToLower();

                    if(!Rfc2812Util.IsValidChannelName(channel))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    if(!sIrcBase.Networks[_servername].sIgnoreChannel.IsIgnore(channel))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreChannel.Remove(channel);
                    Log.Notice("Console", text[1]);
                }
                else if(sConsoleMessage.Info[2].ToLower() == "search")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/channel/search");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    string channel = sConsoleMessage.Info[3].ToLower();

                    if(!Rfc2812Util.IsValidChannelName(channel))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    if(sIrcBase.Networks[_servername].sIgnoreChannel.Contains(channel))
                        Log.Notice("Console", text[0]);
                    else
                        Log.Error("Console", text[1]);
                }
            }
            else if(sConsoleMessage.Info[1].ToLower() == "nick")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if(sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/nick/add");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string nick = sConsoleMessage.Info[3].ToLower();

                    if(!Rfc2812Util.IsValidNick(nick))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                        return;
                    }

                    if(sIrcBase.Networks[_servername].sIgnoreNickName.IsIgnore(nick))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreNickName.Add(nick);
                    Log.Notice("Console", text[1]);
                }
                else if(sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/nick/remove");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string nick = sConsoleMessage.Info[3].ToLower();

                    if(!Rfc2812Util.IsValidNick(nick))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                        return;
                    }

                    if(!sIrcBase.Networks[_servername].sIgnoreNickName.IsIgnore(nick))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreNickName.Remove(nick);
                    Log.Notice("Console", text[1]);
                }
                else if(sConsoleMessage.Info[2].ToLower() == "search")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/nick/search");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string nick = sConsoleMessage.Info[3].ToLower();

                    if(!Rfc2812Util.IsValidNick(nick))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                        return;
                    }

                    if(sIrcBase.Networks[_servername].sIgnoreNickName.Contains(nick))
                        Log.Notice("Console", text[0]);
                    else
                        Log.Error("Console", text[1]);
                }
            }
            else if(sConsoleMessage.Info[1].ToLower() == "addon")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if(sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/addon/add");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string addon = sConsoleMessage.Info[3].ToLower();

                    if(!sAddonManager.IsAddon(_servername, addon))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("ThereIsNoSuchAnAddon"));
                        return;
                    }

                    if(sIrcBase.Networks[_servername].sIgnoreAddon.IsIgnore(addon))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreAddon.Add(addon);
                    sIrcBase.Networks[_servername].sIgnoreAddon.UnloadPlugin(addon);
                    Log.Notice("Console", text[1]);
                }
                else if(sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/addon/remove");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string addon = sConsoleMessage.Info[3].ToLower();

                    if(!sAddonManager.IsAddon(_servername, addon))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("ThereIsNoSuchAnAddon"));
                        return;
                    }

                    if(!sIrcBase.Networks[_servername].sIgnoreAddon.IsIgnore(addon))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreAddon.Remove(addon);
                    sIrcBase.Networks[_servername].sIgnoreAddon.LoadPlugin(addon);
                    Log.Notice("Console", text[1]);
                }
                else if(sConsoleMessage.Info[2].ToLower() == "search")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/addon/search");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string addon = sConsoleMessage.Info[3].ToLower();

                    if(!sAddonManager.IsAddon(_servername, addon))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("ThereIsNoSuchAnAddon"));
                        return;
                    }

                    if(sIrcBase.Networks[_servername].sIgnoreAddon.Contains(addon))
                        Log.Notice("Console", text[0]);
                    else
                        Log.Error("Console", text[1]);
                }
            }
        }
Example #27
0
        /// <summary>
        ///     Plugin parancs függvénye.
        /// </summary>
        protected void HandlePlugin(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "load")
            {
                var text = sLManager.GetConsoleCommandTexts("plugin/load");
                if(text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                if(sAddonManager.IsLoadingAddons())
                {
                    Log.Error("Console", text[2]);
                    return;
                }

                if(sAddonManager.LoadPluginsFromDirectory(AddonsConfig.Directory))
                {
                    foreach(var nw in sIrcBase.Networks)
                        sIrcBase.LoadProcessMethods(nw.Key);

                    Log.Notice("Console", text[0]);
                }
                else
                    Log.Error("Console", text[1]);
            }
            else if(sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "unload")
            {
                var text = sLManager.GetConsoleCommandTexts("plugin/unload");
                if(text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                if(!sAddonManager.IsLoadingAddons())
                {
                    Log.Error("Console", text[2]);
                    return;
                }

                foreach(var nw in sIrcBase.Networks)
                    sIrcBase.UnloadProcessMethods(nw.Key);

                if(sAddonManager.UnloadPlugins())
                    Log.Notice("Console", text[0]);
                else
                    Log.Error("Console", text[1]);
            }
            else
            {
                var text = sLManager.GetConsoleCommandTexts("plugin");
                if(text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string Plugins = string.Empty;
                string IgnorePlugins = string.Empty;

                foreach(var plugin in sAddonManager.Addons[_servername].Addons)
                {
                    if(!sIrcBase.Networks[_servername].sIgnoreAddon.IsIgnore(plugin.Key))
                        Plugins += ", " + plugin.Value.Name;
                    else
                        IgnorePlugins += ", " + plugin.Value.Name;
                }

                if(!Plugins.IsNullOrEmpty())
                    Log.Notice("Console", text[0], Plugins.Remove(0, 2, ", "));

                if(!IgnorePlugins.IsNullOrEmpty())
                    Log.Notice("Console", text[1], IgnorePlugins.Remove(0, 2, ", "));

                if(Plugins.IsNullOrEmpty() && IgnorePlugins.IsNullOrEmpty())
                    Log.Warning("Console", text[2]);
            }
        }
Example #28
0
 /// <summary>
 ///     Reconnect parancs függvénye.
 /// </summary>
 protected void HandleReConnect(ConsoleMessage sConsoleMessage)
 {
     sIrcBase.Networks[_servername].sSender.Quit("Console: Reconnect.");
     sIrcBase.Networks[_servername].ReConnect();
 }
Example #29
0
        /// <summary>
        ///     Plugin parancs függvénye.
        /// </summary>
        protected void HandlePlugin(ConsoleMessage sConsoleMessage)
        {
            if (sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "load")
            {
                var text = sLManager.GetConsoleCommandTexts("plugin/load");
                if (text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                if (sAddonManager.IsLoadingAddons())
                {
                    Log.Error("Console", text[2]);
                    return;
                }

                if (sAddonManager.LoadPluginsFromDirectory(AddonsConfig.Directory))
                {
                    foreach (var nw in sIrcBase.Networks)
                    {
                        sIrcBase.LoadProcessMethods(nw.Key);
                    }

                    Log.Notice("Console", text[0]);
                }
                else
                {
                    Log.Error("Console", text[1]);
                }
            }
            else if (sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "unload")
            {
                var text = sLManager.GetConsoleCommandTexts("plugin/unload");
                if (text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                if (!sAddonManager.IsLoadingAddons())
                {
                    Log.Error("Console", text[2]);
                    return;
                }

                foreach (var nw in sIrcBase.Networks)
                {
                    sIrcBase.UnloadProcessMethods(nw.Key);
                }

                if (sAddonManager.UnloadPlugins())
                {
                    Log.Notice("Console", text[0]);
                }
                else
                {
                    Log.Error("Console", text[1]);
                }
            }
            else
            {
                var text = sLManager.GetConsoleCommandTexts("plugin");
                if (text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string Plugins       = string.Empty;
                string IgnorePlugins = string.Empty;

                foreach (var plugin in sAddonManager.Addons[_servername].Addons)
                {
                    if (!sIrcBase.Networks[_servername].sIgnoreAddon.IsIgnore(plugin.Key))
                    {
                        Plugins += ", " + plugin.Value.Name;
                    }
                    else
                    {
                        IgnorePlugins += ", " + plugin.Value.Name;
                    }
                }

                if (!Plugins.IsNullOrEmpty())
                {
                    Log.Notice("Console", text[0], Plugins.Remove(0, 2, ", "));
                }

                if (!IgnorePlugins.IsNullOrEmpty())
                {
                    Log.Notice("Console", text[1], IgnorePlugins.Remove(0, 2, ", "));
                }

                if (Plugins.IsNullOrEmpty() && IgnorePlugins.IsNullOrEmpty())
                {
                    Log.Warning("Console", text[2]);
                }
            }
        }
Example #30
0
 /// <summary>
 ///     Reconnect parancs függvénye.
 /// </summary>
 protected void HandleReConnect(ConsoleMessage sConsoleMessage)
 {
     sIrcBase.Networks[_servername].sSender.Quit("Console: Reconnect.");
     sIrcBase.Networks[_servername].ReConnect();
 }
Example #31
0
        /// <summary>
        ///     Alias parancs függvénye.
        /// </summary>
        protected void HandleAlias(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoValue"));
                return;
            }

            if(sConsoleMessage.Info[1].ToLower() == "command")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if(sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("alias/command/add");
                    if(text.Length < 6)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 5)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                        return;
                    }

                    string newcommand = sConsoleMessage.Info[3].ToLower();
                    string basecommand = sConsoleMessage.Info[4].ToLower();

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM alias_console_command WHERE NewCommand = '{0}'", sUtilities.SqlEscape(newcommand));
                    if(!db.IsNull())
                    {
                        Log.Warning("Console", text[1]);
                        return;
                    }

                    var db1 = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM alias_console_command WHERE NewCommand = '{0}'", sUtilities.SqlEscape(basecommand));
                    if(!db1.IsNull())
                    {
                        Log.Warning("Console", text[2]);
                        return;
                    }

                    if(CCommandManager.GetCommandHandler().ContainsKey(newcommand))
                    {
                        Log.Warning("Console", text[3], newcommand);
                        return;
                    }

                    if(!CCommandManager.GetCommandHandler().ContainsKey(basecommand))
                    {
                        Log.Error("Console", text[4], basecommand);
                        return;
                    }

                    CCommandManager.RegisterHandler(newcommand, CCommandManager.GetCommandHandler()[basecommand].Method);
                    SchumixBase.DManager.Insert("`alias_console_command`(NewCommand, BaseCommand)", sUtilities.SqlEscape(newcommand), sUtilities.SqlEscape(basecommand));
                    Log.Notice("Console", text[5], newcommand, basecommand);
                }
                else if(sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("alias/command/remove");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetWarningText("NoCommand"));
                        return;
                    }

                    string command = sConsoleMessage.Info[3].ToLower();

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM alias_console_command WHERE NewCommand = '{0}'", sUtilities.SqlEscape(command));
                    if(db.IsNull())
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    CCommandManager.RemoveHandler(command, CCommandManager.GetCommandHandler()[command].Method);
                    SchumixBase.DManager.Delete("alias_console_command", string.Format("NewCommand = '{0}'", sUtilities.SqlEscape(command)));
                    Log.Notice("Console", text[1], command);
                }
                else if(sConsoleMessage.Info[2].ToLower() == "list")
                {
                    var text = sLManager.GetConsoleCommandTexts("alias/command/list");
                    if(text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    var db = SchumixBase.DManager.Query("SELECT NewCommand, BaseCommand FROM alias_console_command");
                    if(!db.IsNull())
                    {
                        string commandlist = string.Empty;

                        foreach(DataRow row in db.Rows)
                        {
                            string newcommand = row["NewCommand"].ToString();
                            string basecommand = row["BaseCommand"].ToString();
                            commandlist += ", " + newcommand + "->" + basecommand;
                        }

                        if(commandlist.Length > 0)
                            Log.Notice("Console", text[0], commandlist.Remove(0, 2, ", "));
                        else
                            Log.Notice("Console", text[1]);
                    }
                    else
                        Log.Error("Console", sLManager.GetConsoleWarningText("FaultyQuery"));
                }
            }
        }
Example #32
0
        /// <summary>
        ///     Admin parancs függvénye.
        /// </summary>
        protected void HandleAdmin(ConsoleMessage sConsoleMessage)
        {
            if (sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "info")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("admin/info");
                if (text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                var db   = SchumixBase.DManager.QueryFirstRow("SELECT Flag FROM admins WHERE Name = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername);
                int flag = !db.IsNull() ? db["Flag"].ToInt32() : -1;

                if ((AdminFlag)flag == AdminFlag.HalfOperator)
                {
                    Log.Notice("Console", text[0]);
                }
                else if ((AdminFlag)flag == AdminFlag.Operator)
                {
                    Log.Notice("Console", text[1]);
                }
                else if ((AdminFlag)flag == AdminFlag.Administrator)
                {
                    Log.Notice("Console", text[2]);
                }
            }
            else if (sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "list")
            {
                var db = SchumixBase.DManager.Query("SELECT Name FROM admins WHERE ServerName = '{0}'", _servername);
                if (!db.IsNull())
                {
                    string admins = string.Empty;

                    foreach (DataRow row in db.Rows)
                    {
                        string name = row["Name"].ToString();
                        admins += ", " + name;
                    }

                    Log.Notice("Console", sLManager.GetConsoleCommandText("admin/list"), admins.Remove(0, 2, ", "));
                }
                else
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("FaultyQuery"));
                }
            }
            else if (sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "add")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("admin/add");
                if (text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string name = sConsoleMessage.Info[2];
                if (!Rfc2812Util.IsValidNick(name))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM admins WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername);
                if (!db.IsNull())
                {
                    Log.Warning("Console", text[0]);
                    return;
                }

                string pass = sUtilities.GetRandomString();
                SchumixBase.DManager.Insert("`admins`(ServerId, ServerName, Name, Password)", IRCConfig.List[_servername].ServerId, _servername, name.ToLower(), sUtilities.Sha1(pass));

                if (SchumixBase.DManager.IsCreatedTable("hlmessage"))
                {
                    SchumixBase.DManager.Insert("`hlmessage`(ServerId, ServerName, Name, Enabled)", IRCConfig.List[_servername].ServerId, _servername, name.ToLower(), SchumixBase.Off);
                }

                Log.Notice("Console", text[1], name);
                Log.Notice("Console", text[2], pass);
            }
            else if (sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "remove")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("admin/remove");
                if (text.Length < 2)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string name = sConsoleMessage.Info[2];
                if (!Rfc2812Util.IsValidNick(name))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM admins WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername);
                if (db.IsNull())
                {
                    Log.Warning("Console", text[0]);
                    return;
                }

                SchumixBase.DManager.Delete("admins", string.Format("Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername));

                if (SchumixBase.DManager.IsCreatedTable("hlmessage"))
                {
                    SchumixBase.DManager.Delete("hlmessage", string.Format("Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername));
                }

                if (SchumixBase.DManager.IsCreatedTable("birthday"))
                {
                    var db1 = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM birthday WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername);
                    if (!db1.IsNull())
                    {
                        SchumixBase.DManager.Delete("birthday", string.Format("Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername));
                    }
                }

                Log.Notice("Console", text[1], name);
            }
            else if (sConsoleMessage.Info.Length >= 2 && sConsoleMessage.Info[1].ToLower() == "rank")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                    return;
                }

                if (sConsoleMessage.Info.Length < 4)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoRank"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("admin/rank");
                if (text.Length < 2)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string name = sConsoleMessage.Info[2].ToLower();
                if (!Rfc2812Util.IsValidNick(name))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                    return;
                }

                int rank = sConsoleMessage.Info[3].ToInt32();

                if ((AdminFlag)rank == AdminFlag.Administrator || (AdminFlag)rank == AdminFlag.Operator || (AdminFlag)rank == AdminFlag.HalfOperator)
                {
                    SchumixBase.DManager.Update("admins", string.Format("Flag = '{0}'", rank), string.Format("Name = '{0}' And ServerName = '{1}'", name, _servername));
                    Log.Notice("Console", text[0]);
                }
                else
                {
                    Log.Error("Console", text[1]);
                }
            }
            else
            {
                Log.Notice("Console", sLManager.GetConsoleCommandText("admin"));
            }
        }
Example #33
0
        /// <summary>
        ///     Reload parancs függvénye.
        /// </summary>
        protected void HandleReload(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                return;
            }

            var text = sLManager.GetConsoleCommandTexts("reload");
            if(text.Length < 2)
            {
                Log.Error("Console", sLConsole.Translations("NoFound2"));
                return;
            }

            int i = -1;

            switch(sConsoleMessage.Info[1].ToLower())
            {
                case "config":
                    new Config(SchumixConfig.ConfigDirectory, SchumixConfig.ConfigFile, SchumixConfig.ColorBindMode);
                    sIrcBase.Networks[_servername].sIgnoreAddon.RemoveConfig();
                    sIrcBase.Networks[_servername].sIgnoreAddon.LoadConfig();
                    sIrcBase.Networks[_servername].sIgnoreChannel.RemoveConfig();
                    sIrcBase.Networks[_servername].sIgnoreChannel.LoadConfig();
                    sIrcBase.Networks[_servername].sIgnoreNickName.RemoveConfig();
                    sIrcBase.Networks[_servername].sIgnoreNickName.LoadConfig();
                    sIrcBase.Networks[_servername].ReloadMessageHandlerConfig();
                    sLConsole.SetLocale(LocalizationConfig.Locale);
                    sIrcBase.Networks[_servername].sCtcpSender.ClientInfoResponse = sLConsole.GetString("This client supports: UserInfo, Finger, Version, Source, Ping, Time and ClientInfo");
                    i = 1;
                    break;
                case "cachedb":
                    SchumixBase.sCacheDB.Reload();
                    i = 1;
                    break;
                case "irc":
                    sIrcBase.Reload();
                    i = 1;
                    break;
            }

            bool load = true;

            foreach(var plugin in sAddonManager.Addons[_servername].Addons)
            {
                if(!sAddonManager.Addons[_servername].IgnoreAssemblies.ContainsKey(plugin.Key) &&
                   plugin.Value.Reload(sConsoleMessage.Info[1].ToLower(), load) == 1)
                    i = 1;
                else if(!sAddonManager.Addons[_servername].IgnoreAssemblies.ContainsKey(plugin.Key) &&
                        plugin.Value.Reload(sConsoleMessage.Info[1].ToLower(), load) == 0)
                    i = 0;

                if(load)
                    load = false;
            }

            if(i == -1)
                Log.Error("Console", text[0]);
            else if(i == 0)
                Log.Error("Console", text[1]);
            else if(i == 1)
                Log.Notice("Console", text[2], sConsoleMessage.Info[1]);
        }
Example #34
0
        /// <summary>
        ///     Channel parancs függvénye.
        /// </summary>
        protected void HandleChannel(ConsoleMessage sConsoleMessage)
        {
            if(sConsoleMessage.Info.Length < 2)
            {
                Log.Notice("Console", sLManager.GetConsoleCommandText("channel"));
                return;
            }

            if(sConsoleMessage.Info[1].ToLower() == "add")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("channel/add");
                if(text.Length < 2)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string channel = sConsoleMessage.Info[2].ToLower();

                if(!Rfc2812Util.IsValidChannelName(channel))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                    return;
                }

                if(sIrcBase.Networks[_servername].sChannelList.List.ContainsKey(sConsoleMessage.Info[1].ToLower()))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("ImAlreadyOnThisChannel"));
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", channel, _servername);
                if(!db.IsNull())
                {
                    Log.Warning("Console", text[0]);
                    return;
                }

                if(sConsoleMessage.Info.Length == 4)
                {
                    string pass = sConsoleMessage.Info[3];
                    sIrcBase.Networks[_servername].sSender.Join(channel, pass);
                    SchumixBase.DManager.Insert("`channels`(ServerId, ServerName, Channel, Password, Language)", IRCConfig.List[_servername].ServerId, _servername, channel, pass, sLManager.Locale);
                    SchumixBase.DManager.Update("channels", "Enabled = 'true'", string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                }
                else
                {
                    sIrcBase.Networks[_servername].sSender.Join(channel);
                    SchumixBase.DManager.Insert("`channels`(ServerId, ServerName, Channel, Password, Language)", IRCConfig.List[_servername].ServerId, _servername, channel, string.Empty, sLManager.Locale);
                    SchumixBase.DManager.Update("channels", "Enabled = 'true'", string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                }

                Log.Notice("Console", text[1], channel);
                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelListReload();
                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
            }
            else if(sConsoleMessage.Info[1].ToLower() == "remove")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                    return;
                }

                var text = sLManager.GetConsoleCommandTexts("channel/remove");
                if(text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                string channel = sConsoleMessage.Info[2].ToLower();

                if(!Rfc2812Util.IsValidChannelName(channel))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                    return;
                }

                if(channel == IRCConfig.List[_servername].MasterChannel.ToLower())
                {
                    Log.Warning("Console", text[0]);
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", channel, _servername);
                if(db.IsNull())
                {
                    Log.Warning("Console", text[1]);
                    return;
                }

                sIrcBase.Networks[_servername].sSender.Part(channel);
                SchumixBase.DManager.Delete("channels", string.Format("Channel = '{0}' And ServerName = '{1}'", channel, _servername));
                Log.Notice("Console", text[2], channel);

                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelListReload();
                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
            }
            else if(sConsoleMessage.Info[1].ToLower() == "update")
            {
                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelListReload();
                sIrcBase.Networks[_servername].sMyChannelInfo.ChannelFunctionsReload();
                Log.Notice("Console", sLManager.GetConsoleCommandText("channel/update"));
            }
            else if(sConsoleMessage.Info[1].ToLower() == "info")
            {
                var text = sLManager.GetConsoleCommandTexts("channel/info");
                if(text.Length < 6)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                var db = SchumixBase.DManager.Query("SELECT Channel, Enabled, Hidden, Error FROM channels WHERE ServerName = '{0}'", _servername);
                if(!db.IsNull())
                {
                    string ActiveChannels = string.Empty, InActiveChannels = string.Empty, HiddenChannels = string.Empty;

                    foreach(DataRow row in db.Rows)
                    {
                        string channel = row["Channel"].ToString();
                        bool enabled = row["Enabled"].ToBoolean();
                        bool hidden = row["Hidden"].ToBoolean();

                        if(enabled && !hidden)
                            ActiveChannels += ", " + channel;
                        else if(!enabled && !hidden)
                            InActiveChannels += ", " + channel + SchumixBase.Colon + row["Error"].ToString();

                        if(hidden)
                            HiddenChannels += ", " + channel;
                    }

                    if(ActiveChannels.Length > 0)
                        Log.Notice("Console", text[0], ActiveChannels.Remove(0, 2, ", "));
                    else
                        Log.Notice("Console", text[1]);

                    if(InActiveChannels.Length > 0)
                        Log.Notice("Console", text[2], InActiveChannels.Remove(0, 2, ", "));
                    else
                        Log.Notice("Console", text[3]);

                    if(HiddenChannels.Length > 0)
                        Log.Notice("Console", text[4], HiddenChannels.Remove(0, 2, ", "));
                    else
                        Log.Notice("Console", text[5]);
                }
                else
                    Log.Error("Console", sLManager.GetConsoleWarningText("FaultyQuery"));
            }
            else if(sConsoleMessage.Info[1].ToLower() == "language")
            {
                var text = sLManager.GetConsoleCommandTexts("channel/language");
                if(text.Length < 3)
                {
                    Log.Error("Console", sLConsole.Translations("NoFound2"));
                    return;
                }

                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                    return;
                }

                if(!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[2]))
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                    return;
                }

                var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername);
                if(db.IsNull())
                {
                    Log.Warning("Console", text[1]);
                    return;
                }

                if(sConsoleMessage.Info.Length < 4)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelLanguage"));
                    return;
                }

                db = SchumixBase.DManager.QueryFirstRow("SELECT Language FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername);
                if(!db.IsNull())
                {
                    if(db["Language"].ToString().ToLower() == sConsoleMessage.Info[3].ToLower())
                    {
                        Log.Warning("Console", text[2], sConsoleMessage.Info[3]);
                        return;
                    }
                }

                SchumixBase.DManager.Update("channels", string.Format("Language = '{0}'", sConsoleMessage.Info[3]), string.Format("Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[2].ToLower(), _servername));
                Log.Notice("Console", text[0], sConsoleMessage.Info[3]);
                SchumixBase.sCacheDB.Reload("channels");
            }
            else if(sConsoleMessage.Info[1].ToLower() == "password")
            {
                if(sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("NoValue"));
                    return;
                }

                if(sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("channel/password/add");
                    if(text.Length < 3)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    if(!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[3]))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 5)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoPassword"));
                        return;
                    }

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if(db.IsNull())
                    {
                        Log.Warning("Console", text[0]);
                        return;
                    }

                    db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if(!db.IsNull())
                    {
                        if(!db["Password"].ToString().IsNullOrEmpty())
                        {
                            Log.Notice("Console", text[1]);
                            return;
                        }
                    }

                    SchumixBase.DManager.Update("channels", string.Format("Password = '******'", sConsoleMessage.Info[4]), string.Format("Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername));
                    Log.Notice("Console", text[2], sConsoleMessage.Info[3]);
                    SchumixBase.sCacheDB.Reload("channels");
                }
                else if(sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("channel/password/remove");
                    if(text.Length < 3)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    if(!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[3]))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if(db.IsNull())
                    {
                        Log.Warning("Console", text[0]);
                        return;
                    }

                    db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if(!db.IsNull())
                    {
                        if(db["Password"].ToString().IsNullOrEmpty())
                        {
                            Log.Notice("Console", text[1]);
                            return;
                        }
                    }

                    SchumixBase.DManager.Update("channels", "Password = ''", string.Format("Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername));
                    Log.Notice("Console", text[2]);
                    SchumixBase.sCacheDB.Reload("channels");
                }
                else if(sConsoleMessage.Info[2].ToLower() == "update")
                {
                    var text = sLManager.GetConsoleCommandTexts("channel/password/update");
                    if(text.Length < 3)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    if(!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[3]))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 5)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoPassword"));
                        return;
                    }

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if(db.IsNull())
                    {
                        Log.Warning("Console", text[0]);
                        return;
                    }

                    db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if(!db.IsNull())
                    {
                        if(db["Password"].ToString().IsNullOrEmpty())
                        {
                            Log.Notice("Console", text[1]);
                            return;
                        }
                    }

                    SchumixBase.DManager.Update("channels", string.Format("Password = '******'", sConsoleMessage.Info[4]), string.Format("Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername));
                    Log.Notice("Console", text[2], sConsoleMessage.Info[4]);
                    SchumixBase.sCacheDB.Reload("channels");
                }
                else if(sConsoleMessage.Info[2].ToLower() == "info")
                {
                    var text = sLManager.GetConsoleCommandTexts("channel/password/info");
                    if(text.Length < 3)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if(sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    if(!Rfc2812Util.IsValidChannelName(sConsoleMessage.Info[3]))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if(db.IsNull())
                    {
                        Log.Warning("Console", text[0]);
                        return;
                    }

                    db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM channels WHERE Channel = '{0}' And ServerName = '{1}'", sConsoleMessage.Info[3].ToLower(), _servername);
                    if(!db.IsNull())
                    {
                        if(db["Password"].ToString().IsNullOrEmpty())
                            Log.Notice("Console", text[1]);
                        else
                            Log.Notice("Console", text[2]);
                    }
                }
            }
        }
Example #35
0
        /// <summary>
        ///     Ignore parancs függvénye.
        /// </summary>
        protected void HandleIgnore(ConsoleMessage sConsoleMessage)
        {
            if (sConsoleMessage.Info.Length < 2)
            {
                Log.Error("Console", sLManager.GetConsoleWarningText("NoValue"));
                return;
            }

            if (sConsoleMessage.Info[1].ToLower() == "irc")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if (sConsoleMessage.Info[2].ToLower() == "command")
                {
                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                        return;
                    }

                    if (sConsoleMessage.Info[3].ToLower() == "add")
                    {
                        var text = sLManager.GetConsoleCommandTexts("ignore/irc/command/add");
                        if (text.Length < 2)
                        {
                            Log.Error("Console", sLConsole.Translations("NoFound2"));
                            return;
                        }

                        if (sConsoleMessage.Info.Length < 5)
                        {
                            Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                            return;
                        }

                        string command = sConsoleMessage.Info[4].ToLower();

                        if (sIrcBase.Networks[_servername].sIgnoreIrcCommand.IsIgnore(command))
                        {
                            Log.Error("Console", text[0]);
                            return;
                        }

                        sIrcBase.Networks[_servername].sIgnoreIrcCommand.Add(command);
                        Log.Notice("Console", text[1]);
                    }
                    else if (sConsoleMessage.Info[3].ToLower() == "remove")
                    {
                        var text = sLManager.GetConsoleCommandTexts("ignore/irc/command/remove");
                        if (text.Length < 2)
                        {
                            Log.Error("Console", sLConsole.Translations("NoFound2"));
                            return;
                        }

                        if (sConsoleMessage.Info.Length < 5)
                        {
                            Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                            return;
                        }

                        string command = sConsoleMessage.Info[4].ToLower();

                        if (!sIrcBase.Networks[_servername].sIgnoreIrcCommand.IsIgnore(command))
                        {
                            Log.Error("Console", text[0]);
                            return;
                        }

                        sIrcBase.Networks[_servername].sIgnoreIrcCommand.Remove(command);
                        Log.Notice("Console", text[1]);
                    }
                    else if (sConsoleMessage.Info[3].ToLower() == "search")
                    {
                        var text = sLManager.GetConsoleCommandTexts("ignore/irc/command/search");
                        if (text.Length < 2)
                        {
                            Log.Error("Console", sLConsole.Translations("NoFound2"));
                            return;
                        }

                        if (sConsoleMessage.Info.Length < 5)
                        {
                            Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                            return;
                        }

                        if (sIrcBase.Networks[_servername].sIgnoreIrcCommand.Contains(sConsoleMessage.Info[4].ToLower()))
                        {
                            Log.Notice("Console", text[0]);
                        }
                        else
                        {
                            Log.Error("Console", text[1]);
                        }
                    }
                }
            }
            else if (sConsoleMessage.Info[1].ToLower() == "command")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if (sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/command/add");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                        return;
                    }

                    string command = sConsoleMessage.Info[3].ToLower();

                    if (command == "ignore" || command == "admin")
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoIgnoreCommand"));
                        return;
                    }

                    if (sIrcBase.Networks[_servername].sIgnoreCommand.IsIgnore(command))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreCommand.Add(command);
                    Log.Notice("Console", text[1]);
                }
                else if (sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/command/remove");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                        return;
                    }

                    string command = sConsoleMessage.Info[3].ToLower();

                    if (!sIrcBase.Networks[_servername].sIgnoreCommand.IsIgnore(command))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreCommand.Remove(command);
                    Log.Notice("Console", text[1]);
                }
                else if (sConsoleMessage.Info[2].ToLower() == "search")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/command/search");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoCommand"));
                        return;
                    }

                    if (sIrcBase.Networks[_servername].sIgnoreCommand.Contains(sConsoleMessage.Info[3].ToLower()))
                    {
                        Log.Notice("Console", text[0]);
                    }
                    else
                    {
                        Log.Error("Console", text[1]);
                    }
                }
            }
            else if (sConsoleMessage.Info[1].ToLower() == "channel")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if (sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/channel/add");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    string channel = sConsoleMessage.Info[3].ToLower();

                    if (!Rfc2812Util.IsValidChannelName(channel))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    if (channel == IRCConfig.List[_servername].MasterChannel.ToLower())
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoIgnoreMasterChannel"));
                        return;
                    }

                    if (sIrcBase.Networks[_servername].sIgnoreChannel.IsIgnore(channel))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreChannel.Add(channel);
                    Log.Notice("Console", text[1]);
                }
                else if (sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/channel/remove");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    string channel = sConsoleMessage.Info[3].ToLower();

                    if (!Rfc2812Util.IsValidChannelName(channel))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    if (!sIrcBase.Networks[_servername].sIgnoreChannel.IsIgnore(channel))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreChannel.Remove(channel);
                    Log.Notice("Console", text[1]);
                }
                else if (sConsoleMessage.Info[2].ToLower() == "search")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/channel/search");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoChannelName"));
                        return;
                    }

                    string channel = sConsoleMessage.Info[3].ToLower();

                    if (!Rfc2812Util.IsValidChannelName(channel))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaChannelHasBeenSet"));
                        return;
                    }

                    if (sIrcBase.Networks[_servername].sIgnoreChannel.Contains(channel))
                    {
                        Log.Notice("Console", text[0]);
                    }
                    else
                    {
                        Log.Error("Console", text[1]);
                    }
                }
            }
            else if (sConsoleMessage.Info[1].ToLower() == "nick")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if (sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/nick/add");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string nick = sConsoleMessage.Info[3].ToLower();

                    if (!Rfc2812Util.IsValidNick(nick))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                        return;
                    }

                    if (sIrcBase.Networks[_servername].sIgnoreNickName.IsIgnore(nick))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreNickName.Add(nick);
                    Log.Notice("Console", text[1]);
                }
                else if (sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/nick/remove");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string nick = sConsoleMessage.Info[3].ToLower();

                    if (!Rfc2812Util.IsValidNick(nick))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                        return;
                    }

                    if (!sIrcBase.Networks[_servername].sIgnoreNickName.IsIgnore(nick))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreNickName.Remove(nick);
                    Log.Notice("Console", text[1]);
                }
                else if (sConsoleMessage.Info[2].ToLower() == "search")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/nick/search");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string nick = sConsoleMessage.Info[3].ToLower();

                    if (!Rfc2812Util.IsValidNick(nick))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NotaNickNameHasBeenSet"));
                        return;
                    }

                    if (sIrcBase.Networks[_servername].sIgnoreNickName.Contains(nick))
                    {
                        Log.Notice("Console", text[0]);
                    }
                    else
                    {
                        Log.Error("Console", text[1]);
                    }
                }
            }
            else if (sConsoleMessage.Info[1].ToLower() == "addon")
            {
                if (sConsoleMessage.Info.Length < 3)
                {
                    Log.Error("Console", sLManager.GetConsoleWarningText("No1Value"));
                    return;
                }

                if (sConsoleMessage.Info[2].ToLower() == "add")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/addon/add");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string addon = sConsoleMessage.Info[3].ToLower();

                    if (!sAddonManager.IsAddon(_servername, addon))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("ThereIsNoSuchAnAddon"));
                        return;
                    }

                    if (sIrcBase.Networks[_servername].sIgnoreAddon.IsIgnore(addon))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreAddon.Add(addon);
                    sIrcBase.Networks[_servername].sIgnoreAddon.UnloadPlugin(addon);
                    Log.Notice("Console", text[1]);
                }
                else if (sConsoleMessage.Info[2].ToLower() == "remove")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/addon/remove");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string addon = sConsoleMessage.Info[3].ToLower();

                    if (!sAddonManager.IsAddon(_servername, addon))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("ThereIsNoSuchAnAddon"));
                        return;
                    }

                    if (!sIrcBase.Networks[_servername].sIgnoreAddon.IsIgnore(addon))
                    {
                        Log.Error("Console", text[0]);
                        return;
                    }

                    sIrcBase.Networks[_servername].sIgnoreAddon.Remove(addon);
                    sIrcBase.Networks[_servername].sIgnoreAddon.LoadPlugin(addon);
                    Log.Notice("Console", text[1]);
                }
                else if (sConsoleMessage.Info[2].ToLower() == "search")
                {
                    var text = sLManager.GetConsoleCommandTexts("ignore/addon/search");
                    if (text.Length < 2)
                    {
                        Log.Error("Console", sLConsole.Translations("NoFound2"));
                        return;
                    }

                    if (sConsoleMessage.Info.Length < 4)
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("NoName"));
                        return;
                    }

                    string addon = sConsoleMessage.Info[3].ToLower();

                    if (!sAddonManager.IsAddon(_servername, addon))
                    {
                        Log.Error("Console", sLManager.GetConsoleWarningText("ThereIsNoSuchAnAddon"));
                        return;
                    }

                    if (sIrcBase.Networks[_servername].sIgnoreAddon.Contains(addon))
                    {
                        Log.Notice("Console", text[0]);
                    }
                    else
                    {
                        Log.Error("Console", text[1]);
                    }
                }
            }
        }