/// <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]; }
/// <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); } }
/// <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]); }
/// <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); } }
/// <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(); }
/// <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(); }
/// <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]); }
/// <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]); }
/// <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()); }
/// <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()); }
/// <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); }
/// <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); }
/// <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]); }
/// <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]); }
/// <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]); }
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; }
/// <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); } }
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; }
/// <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; } }
/// <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")); } }
/// <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")); }
/// <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]); } }
/// <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")); } } }
/// <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]); } } } } }
/// <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]); } } }
/// <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]); } }
/// <summary> /// Reconnect parancs függvénye. /// </summary> protected void HandleReConnect(ConsoleMessage sConsoleMessage) { sIrcBase.Networks[_servername].sSender.Quit("Console: Reconnect."); sIrcBase.Networks[_servername].ReConnect(); }
/// <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]); } } }
/// <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")); } } }
/// <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")); } }
/// <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]); }
/// <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]); } } } }
/// <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]); } } } }