public bool Ignore(IRCMessage sIRCMessage) { string nick = sIRCMessage.Nick.ToLower(); if(CommandFloodList.ContainsKey(nick)) { if(!CommandFloodList[nick].IsIgnore && CommandFloodList[nick].Message >= FloodingConfig.NumberOfCommands) { CommandFloodList[nick].IsIgnore = true; CommandFloodList[nick].Warring = true; CommandFloodList[nick].BanTime = DateTime.Now.AddMinutes(1); CommandFloodList[nick].Message = 0; sSendMessage.SendCMPrivmsg(nick, sLManager.GetWarningText("CommandsDisabled2", sIRCMessage.Channel, sIRCMessage.ServerName), FloodingConfig.Seconds); return true; } if(CommandFloodList[nick].IsIgnore) { if(CommandFloodList[nick].Warring) { CommandFloodList[nick].Warring = false; sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("CommandsDisabled", sIRCMessage.Channel, sIRCMessage.ServerName)); } return true; } } return false; }
public void HandleRoll(IRCMessage sIRCMessage) { var rand = new Random(); int number = rand.Next(0, 100); var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage; sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("roll", sIRCMessage.Channel, sIRCMessage.ServerName), number); }
protected void HandleWhois(IRCMessage sIRCMessage) { if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoWhoisName", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } string nick = sIRCMessage.Info[4].ToLower(); if(WhoisList.ContainsKey(nick)) Monitor.Enter(WhoisList[nick].Lock); var whois = new Whois(); whois.Channel = sIRCMessage.Channel; whois.Message = string.Empty; whois.Online = false; Monitor.Enter(whois.Lock); if(WhoisList.ContainsKey(nick)) WhoisList.Remove(nick); WhoisList.Add(nick, whois); sSender.Whois(nick); }
protected void HandleTranslate(IRCMessage sIRCMessage) { if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoTranslateLanguage", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!sIRCMessage.Info[4].Contains("|")) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoTranslateLanguage", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(sIRCMessage.Info.Length < 6) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoTranslateText", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } string url = sUtilities.GetUrl("http://www.google.com/translate_t?hl=en&ie=UTF8&text=", sIRCMessage.Info.SplitToString(5, SchumixBase.Space), "&langpair=" + sIRCMessage.Info[4]); var Regex = new Regex("mouseout=\"this.style.backgroundColor='#fff'\">(?<text>.+)</span></span></div></div>", RegexOptions.CultureInvariant); if(!Regex.IsMatch(url)) sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("translate", sIRCMessage.Channel, sIRCMessage.ServerName)); else sSendMessage.SendChatMessage(sIRCMessage, "{0}", Regex.Match(url).Groups["text"].ToString()); }
protected void HandleGoogle(IRCMessage sIRCMessage) { var text = sLManager.GetCommandTexts("google", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 4) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoGoogleText", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } string url = sUtilities.GetUrl("http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=", sIRCMessage.Info.SplitToString(4, SchumixBase.Space)); var google = new GoogleWebResponseData(); google = JsonHelper.Deserialise<GoogleWebResponseData>(url); if(google.ResultSet.Results.Length > 0) { sSendMessage.SendChatMessage(sIRCMessage, text[2], google.ResultSet.Results[0].TitleNoFormatting); sSendMessage.SendChatMessage(sIRCMessage, text[3], google.ResultSet.Results[0].UnescapedUrl); } else { sSendMessage.SendChatMessage(sIRCMessage, text[0]); sSendMessage.SendChatMessage(sIRCMessage, text[1]); } }
protected void HandleLeave(IRCMessage sIRCMessage) { if(IsWarningAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("WarningAdmin", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!IsAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) return; if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoChannelName", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!Rfc2812Util.IsValidChannelName(sIRCMessage.Info[4])) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NotaChannelHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!sChannelList.List.ContainsKey(sIRCMessage.Info[4].ToLower())) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("ImNotOnThisChannel", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } sSender.Part(sIRCMessage.Info[4]); sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("leave", sIRCMessage.Channel, sIRCMessage.ServerName), sIRCMessage.Info[4]); }
protected void HandlePrivmsg(IRCMessage sIRCMessage) { if(sIgnoreNickName.IsIgnore(sIRCMessage.Nick)) return; if(ConsoleLog.CLog) { Log.SetForegroundColor(ConsoleColor.Yellow); Log.WriteLine("[{0}] <{1}> {2}", sIRCMessage.Channel, sIRCMessage.Nick, sIRCMessage.Args); Log.SetForegroundColor(ConsoleColor.Gray); } if(Rfc2812Util.IsAction(sIRCMessage.Args)) sIrcLog.LogInFile(sIRCMessage.Channel, sIRCMessage.Nick, sLConsole.GetString("[ACTION] {0}"), Rfc2812Util.GetAction(sIRCMessage.Args)); else sIrcLog.LogInFile(sIRCMessage.Channel, sIRCMessage.Nick, sIRCMessage.Args); if(!Rfc2812Util.IsValidChannelName(sIRCMessage.Channel)) sIRCMessage.Channel = sIRCMessage.Nick; // Nem 100% a müködés. Ha baj van akkor az adott helyen kell javítani nem így globálisan. (sqlescape) sCtcpSender.CtcpReply(sIRCMessage); if(sMyChannelInfo.FSelect(IFunctions.Commands) || !Rfc2812Util.IsValidChannelName(sIRCMessage.Channel)) { if(!sMyChannelInfo.FSelect(IChannelFunctions.Commands, sIRCMessage.Channel) && Rfc2812Util.IsValidChannelName(sIRCMessage.Channel)) return; HandleCommand(sIRCMessage); } }
public void HandlePrime(IRCMessage sIRCMessage) { var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage; var text = sLManager.GetCommandTexts("prime", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 3) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoNumber", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!sIRCMessage.Info[4].IsNumber()) { sSendMessage.SendChatMessage(sIRCMessage, text[0]); return; } bool prim = sUtilities.IsPrime(sIRCMessage.Info[4].ToInt32()); if(!prim) sSendMessage.SendChatMessage(sIRCMessage, text[1], sIRCMessage.Info[4]); else sSendMessage.SendChatMessage(sIRCMessage, text[2], sIRCMessage.Info[4]); }
protected void HandleCannotJoinChannel(IRCMessage sIRCMessage) { if(sIRCMessage.Info.Length < 4) return; SchumixBase.DManager.Update("channels", string.Format("Enabled = 'false', Error = '{0}'", sLConsole.MessageHandler("Text17-1", sLManager.GetChannelLocalization(ChannelPrivmsg, sIRCMessage.ServerName))), string.Format("Channel = '{0}' And ServerName = '{1}'", sIRCMessage.Info[3].ToLower(), sIRCMessage.ServerName)); sSendMessage.SendChatMessage(sIRCMessage.MessageType, ChannelPrivmsg, sLConsole.MessageHandler("Text17", sLManager.GetChannelLocalization(ChannelPrivmsg, sIRCMessage.ServerName)), sIRCMessage.Info[3]); ChannelPrivmsg = sMyNickInfo.NickStorage; }
private void HandleCommand(IRCMessage sIRCMessage) { sIRCMessage.Info[3] = sIRCMessage.Info[3].Remove(0, 1, SchumixBase.Colon); Schumix(sIRCMessage); if(sIRCMessage.Info[3].IsNullOrEmpty() || sIRCMessage.Info[3].Length < PLength || sIRCMessage.Info[3].Substring(0, PLength) != IRCConfig.List[sIRCMessage.ServerName].CommandPrefix) return; sIRCMessage.Info[3] = sIRCMessage.Info[3].Remove(0, PLength); IncomingInfo(sIRCMessage.Info[3].ToLower(), sIRCMessage); }
public void HandleMd5(IRCMessage sIRCMessage) { var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage; if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoValue", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } sSendMessage.SendChatMessage(sIRCMessage, sUtilities.Md5(sIRCMessage.Info.SplitToString(4, SchumixBase.Space))); }
protected void HandleColors(IRCMessage sIRCMessage) { if(IsWarningAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("WarningAdmin", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!IsAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) return; sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("colors", sIRCMessage.Channel, sIRCMessage.ServerName)); }
/// <summary> /// Ha a szobában a köszönés funkció be van kapcsolva, /// akkor köszön az éppen belépőnek. /// </summary> public void HandleJoin(IRCMessage sIRCMessage) { if(sIRCMessage.Nick == sIrcBase.Networks[sIRCMessage.ServerName].sMyNickInfo.NickStorage) return; if(sFunctions.AutoKick("join", sIRCMessage.Nick, sIRCMessage.Channel)) return; if(sIrcBase.Networks[sIRCMessage.ServerName].sIgnoreNickName.IsIgnore(sIRCMessage.Nick)) return; var sMyChannelInfo = sIrcBase.Networks[sIRCMessage.ServerName].sMyChannelInfo; var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage; var sSender = sIrcBase.Networks[sIRCMessage.ServerName].sSender; sIRCMessage.Channel = sIRCMessage.Channel.Remove(0, 1, SchumixBase.Colon); sNameList.Add(sIRCMessage.Channel, sIRCMessage.Nick); if(sMyChannelInfo.FSelect(IFunctions.Automode) && sMyChannelInfo.FSelect(IChannelFunctions.Automode, sIRCMessage.Channel)) { AutoMode = true; ModeChannel = sIRCMessage.Channel; sSender.NickServStatus(sIRCMessage.Nick); } if(sMyChannelInfo.FSelect(IFunctions.Greeter) && sMyChannelInfo.FSelect(IChannelFunctions.Greeter, sIRCMessage.Channel)) { var rand = new Random(); string greeter = string.Empty; var text = sLManager.GetCommandTexts("handlejoin", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 3) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } var text2 = sLManager.GetCommandTexts("handlejoin/random", sIRCMessage.Channel, sIRCMessage.ServerName); greeter = text2[rand.Next(0, text2.Length-1)]; if(DateTime.Now.Hour >= 3 && DateTime.Now.Hour <= 9) sSendMessage.SendChatMessage(sIRCMessage, text[0], sIRCMessage.Nick); else if(DateTime.Now.Hour >= 20 && DateTime.Now.Hour < 3) sSendMessage.SendChatMessage(sIRCMessage, text[1], sIRCMessage.Nick); else { if(IsAdmin(sIRCMessage.Nick, sIRCMessage.Host)) sSendMessage.SendChatMessage(sIRCMessage, text[2]); else sSendMessage.SendChatMessage(sIRCMessage, "{0} {1}", greeter, sIRCMessage.Nick); } } }
protected void HandleNick(IRCMessage sIRCMessage) { if(IsWarningAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("WarningAdmin", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!IsAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) return; var text = sLManager.GetCommandTexts("nick", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 2) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoName", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } sIrcBase.Networks[sIRCMessage.ServerName].NewNick = true; string nick = sIRCMessage.Info[4]; if(!Rfc2812Util.IsValidNick(nick)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NotaNickNameHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(sMyNickInfo.NickStorage == nick) { sSendMessage.SendChatMessage(sIRCMessage, text[1]); return; } if(sChannelList.List[sIRCMessage.Channel.ToLower()].Names.ContainsKey(nick.ToLower()) && sMyNickInfo.NickStorage.ToLower() != nick.ToLower()) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.MessageHandler("Text14", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } NewNickPrivmsg = sIRCMessage.Channel; sMyNickInfo.ChangeNick(nick); sSendMessage.SendChatMessage(sIRCMessage, text[0], nick); sSender.Nick(nick); }
protected void HandleInfo(IRCMessage sIRCMessage) { var text = sLManager.GetCommandTexts("info", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 4) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } sSendMessage.SendChatMessage(sIRCMessage, text[0], Consts.SchumixProgrammedBy); sSendMessage.SendChatMessage(sIRCMessage, text[1], Consts.SchumixDevelopers); sSendMessage.SendChatMessage(sIRCMessage, text[2], Consts.SchumixWebsite); sSendMessage.SendChatMessage(sIRCMessage, text[3]); }
public void HandleCalc(IRCMessage sIRCMessage) { var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage; if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoValue", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } var client = new WAClient(WolframAlphaConfig.Key); var solution = client.Solve(sIRCMessage.Info.SplitToString(4, SchumixBase.Space)); sSendMessage.SendChatMessage(sIRCMessage, "{0}", solution); }
public void HandleXrev(IRCMessage sIRCMessage) { var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage; if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoValue", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(sIRCMessage.Info[4].ToLower() == "github") { var text = sLManager.GetCommandTexts("xrev/github", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 7) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } if(sIRCMessage.Info.Length < 6) { sSendMessage.SendChatMessage(sIRCMessage, text[0]); return; } if(sIRCMessage.Info.Length < 7) { sSendMessage.SendChatMessage(sIRCMessage, text[1]); return; } if(sIRCMessage.Info.Length < 8) { sSendMessage.SendChatMessage(sIRCMessage, text[2]); return; } var github = new Github(sIRCMessage.Info[5], sIRCMessage.Info[6], sIRCMessage.Info[7]); if(github.UserName.IsNullOrEmpty() || github.Message.IsNullOrEmpty() || github.Url.IsNullOrEmpty()) { sSendMessage.SendChatMessage(sIRCMessage, text[3]); return; } sSendMessage.SendChatMessage(sIRCMessage, text[4], github.Message); sSendMessage.SendChatMessage(sIRCMessage, text[5], github.Url); sSendMessage.SendChatMessage(sIRCMessage, text[6], github.UserName); } }
public void FloodCommand(IRCMessage sIRCMessage) { if(sMyChannelInfo.FSelect(IFunctions.Antiflood) && sMyChannelInfo.FSelect(IChannelFunctions.Antiflood, sIRCMessage.Channel.ToLower())) { string nick = sIRCMessage.Nick.ToLower(); if(nick == "py-ctcp") return; if(CommandFloodList.ContainsKey(nick) && !CommandFloodList[nick].IsIgnore) CommandFloodList[nick].Message++; else if(!CommandFloodList.ContainsKey(nick)) CommandFloodList.Add(nick, new CommandFlood()); } }
public bool Help(IRCMessage sIRCMessage) { // Fél Operátor parancsok segítségei if(sIRCMessage.Info[4].ToLower() == "autofunction") { var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage; if(IsWarningAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("WarningAdmin", sIRCMessage.Channel, sIRCMessage.ServerName)); return true; } if(!IsAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) return false; if(sIRCMessage.Info.Length < 6) { var text = sLManager.GetCommandHelpTexts("autofunction", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 4) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return true; } if(IsAdmin(sIRCMessage.Nick, AdminFlag.HalfOperator)) { sSendMessage.SendChatMessage(sIRCMessage, text[0]); sSendMessage.SendChatMessage(sIRCMessage, text[1]); return true; } else if(IsAdmin(sIRCMessage.Nick, AdminFlag.Operator)) { sSendMessage.SendChatMessage(sIRCMessage, text[2]); sSendMessage.SendChatMessage(sIRCMessage, text[3]); return true; } else if(IsAdmin(sIRCMessage.Nick, AdminFlag.Administrator)) { sSendMessage.SendChatMessage(sIRCMessage, text[2]); sSendMessage.SendChatMessage(sIRCMessage, text[3]); return true; } } } return false; }
protected void HandleDate(IRCMessage sIRCMessage) { var text = sLManager.GetCommandTexts("date", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 2) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } var time = DateTime.Now; string nameday = sUtilities.NameDay(sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)); if(!nameday.IsNullOrEmpty()) sSendMessage.SendChatMessage(sIRCMessage, text[0], time.Year, time.Month.ToMonthFormat(), time.Day.ToDayFormat(), nameday); else sSendMessage.SendChatMessage(sIRCMessage, text[1], time.Year, time.Month.ToMonthFormat(), time.Day.ToDayFormat()); }
protected void HandleOnline(IRCMessage sIRCMessage) { if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoName", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(sChannelList.List[sIRCMessage.Channel.ToLower()].Names.ContainsKey(sIRCMessage.Info[4].ToLower())) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.MessageHandler("Text11", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } IsOnline = true; OnlinePrivmsg = sIRCMessage.Channel; sSender.NickServInfo(sIRCMessage.Info[4]); }
public bool Help(IRCMessage sIRCMessage) { var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage; string command = IRCConfig.List[sIRCMessage.ServerName].NickName + SchumixBase.Comma; if(sIRCMessage.Info[4].ToLower() == command.ToLower()) { if(sIRCMessage.Info.Length < 6) return false; if(sIRCMessage.Info[5].ToLower() == "csc" || sIRCMessage.Info[5].ToLower() == "c#compiler") { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandHelpText("schumix2/csc", sIRCMessage.Channel, sIRCMessage.ServerName)); return true; } } return false; }
protected void HandleWarning(IRCMessage sIRCMessage) { if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoName", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!IsAdmin(sIRCMessage.Nick, sIRCMessage.Host) && sIRCMessage.Info[4].Length > 0 && sIRCMessage.Info[4].Substring(0, 1) == "#") { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoOperator", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(sIRCMessage.Info.Length == 5) sSendMessage.SendChatMessage(sIRCMessage.MessageType, sIRCMessage.Info[4], sLManager.GetCommandText("warning", sIRCMessage.Channel, sIRCMessage.ServerName), sIRCMessage.Nick, sIRCMessage.Channel); else if(sIRCMessage.Info.Length >= 6) sSendMessage.SendChatMessage(sIRCMessage.MessageType, sIRCMessage.Info[4], "{0}", sIRCMessage.Info.SplitToString(5, SchumixBase.Space)); }
protected void HandleJoin(IRCMessage sIRCMessage) { if(IsWarningAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("WarningAdmin", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!IsAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) return; if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoChannelName", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!Rfc2812Util.IsValidChannelName(sIRCMessage.Info[4])) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NotaChannelHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(sChannelList.List.ContainsKey(sIRCMessage.Info[4].ToLower())) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("ImAlreadyOnThisChannel", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(sIgnoreChannel.IsIgnore(sIRCMessage.Info[4].ToLower())) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("ThisChannelBlockedByAdmin", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } ChannelPrivmsg = sIRCMessage.Channel; sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("join", sIRCMessage.Channel, sIRCMessage.ServerName), sIRCMessage.Info[4]); if(sIRCMessage.Info.Length == 5) sSender.Join(sIRCMessage.Info[4]); else if(sIRCMessage.Info.Length == 6) sSender.Join(sIRCMessage.Info[4], sIRCMessage.Info[5]); }
protected void HandleXbot(IRCMessage sIRCMessage) { var text = sLManager.GetCommandTexts("xbot", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 4) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } sSendMessage.SendChatMessage(sIRCMessage, text[0], sUtilities.GetVersion()); string commands = string.Empty; string aliascommands = string.Empty; foreach(var command in sIrcBase.Networks[sIRCMessage.ServerName].CommandMethodMap) { if(command.Value.Permission != CommandPermission.Normal) continue; if(command.Key == "xbot") continue; if(sIgnoreCommand.IsIgnore(command.Key)) continue; var db = SchumixBase.DManager.QueryFirstRow("SELECT BaseCommand FROM alias_irc_command WHERE NewCommand = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(command.Key), sIRCMessage.ServerName); if(!db.IsNull()) { string basecommand = db["BaseCommand"].ToString(); aliascommands += " | " + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + command.Key + "->" + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + basecommand; continue; } commands += " | " + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + command.Key; } sSendMessage.SendChatMessage(sIRCMessage, text[1], Consts.SchumixProgrammedBy); sSendMessage.SendChatMessage(sIRCMessage, text[2], commands.Remove(0, 3, " | ")); if(!aliascommands.IsNullOrEmpty()) sSendMessage.SendChatMessage(sIRCMessage, text[3], aliascommands.Remove(0, 3, " | ")); }
public void HandleWiki(IRCMessage sIRCMessage) { var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage; var text = sLManager.GetCommandTexts("wiki", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } if(sIRCMessage.Info.Length < 5) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoGoogleText", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } string url = sUtilities.GetUrl("http://" + sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName).Substring(0, 2).ToLower() + ".wikipedia.org/w/api.php?action=opensearch&format=xml&search=", sIRCMessage.Info.SplitToString(4, SchumixBase.Space)); if(url.Contains("<Text xml:space=\"preserve\">")) { url = url.Replace(""", "\""); url = url.Remove(0, url.IndexOf("<Text xml:space=\"preserve\">") + "<Text xml:space=\"preserve\">".Length); string _text = url.Substring(0, url.IndexOf("</Text>")); url = url.Remove(0, url.IndexOf("<Description xml:space=\"preserve\">") + "<Description xml:space=\"preserve\">".Length); string _des = url.Substring(0, url.IndexOf("</Description>")); url = url.Remove(0, url.IndexOf("<Url xml:space=\"preserve\">") + "<Url xml:space=\"preserve\">".Length); string _url = url.Substring(0, url.IndexOf("</Url>")); sSendMessage.SendChatMessage(sIRCMessage, text[0], _text); sSendMessage.SendChatMessage(sIRCMessage, text[1], _url); if(_des.Length <= 200) sSendMessage.SendChatMessage(sIRCMessage, text[2], _des); else sSendMessage.SendChatMessage(sIRCMessage, text[3], _des.Substring(0, 200)); } else sSendMessage.SendChatMessage(sIRCMessage, text[4]); }
public bool HandleHelp(IRCMessage sIRCMessage) { var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage; // Adminisztrátor parancsok if(sIRCMessage.Info[4].ToLower() == "test") { if(sTestCommand.IsWarningAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.Administrator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("WarningAdmin", sIRCMessage.Channel, sIRCMessage.ServerName)); return true; } if(!sTestCommand.IsAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.Administrator)) return false; sSendMessage.SendChatMessage(sIRCMessage, "Teszt célokra használt parancs."); return true; } return false; }
protected void HandleQuit(IRCMessage sIRCMessage) { if(IsWarningAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.Administrator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("WarningAdmin", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!IsAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.Administrator)) return; var text = sLManager.GetCommandTexts("quit", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 2) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } sSendMessage.SendChatMessage(sIRCMessage, text[0]); SchumixBase.Quit(); sIrcBase.Shutdown(string.Format(text[1], sIRCMessage.Nick)); }
protected void HandleIrc(IRCMessage sIRCMessage) { var text = sLManager.GetCommandTexts("irc", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 2) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } if(sIRCMessage.Info.Length == 4) { var db = SchumixBase.DManager.Query("SELECT Command FROM irc_commands WHERE Language = '{0}'", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)); if(!db.IsNull()) { string commands = string.Empty; foreach(DataRow row in db.Rows) commands += " | " + row["Command"].ToString(); if(commands.IsNullOrEmpty()) sSendMessage.SendChatMessage(sIRCMessage, text[0], "none"); else sSendMessage.SendChatMessage(sIRCMessage, text[0], commands.Remove(0, 3, " | ")); } else sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("FaultyQuery", sIRCMessage.Channel, sIRCMessage.ServerName)); } else { var db = SchumixBase.DManager.QueryFirstRow("SELECT Text FROM irc_commands WHERE Command = '{0}' AND Language = '{1}'", sUtilities.SqlEscape(sIRCMessage.Info[4]), sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)); if(!db.IsNull()) sSendMessage.SendChatMessage(sIRCMessage, db["Text"].ToString()); else sSendMessage.SendChatMessage(sIRCMessage, text[1]); } }
protected void HandleAdmin(IRCMessage sIRCMessage) { if(!IsAdmin(sIRCMessage.Nick)) return; if(sIRCMessage.Info.Length >= 5 && sIRCMessage.Info[4].ToLower() == "access") { if(sIRCMessage.Info.Length < 6) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoPassword", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } var text = sLManager.GetCommandTexts("admin/access", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 4) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } string name = sIRCMessage.SqlEscapeNick.ToLower(); var db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM admins WHERE Name = '{0}' And ServerName = '{1}'", name, sIRCMessage.ServerName); if(!db.IsNull()) { if(db["Password"].ToString() == sUtilities.Sha1(sIRCMessage.Info[5])) { SchumixBase.DManager.Update("admins", string.Format("Vhost = '{0}'", sIRCMessage.Host), string.Format("Name = '{0}' And ServerName = '{1}'", name, sIRCMessage.ServerName)); UpdateLCDB("UPDATE admins SET {0} WHERE {1}", string.Format("Vhost = '{0}'", sIRCMessage.Host), string.Format("Name = '{0}' And ServerName = '{1}'", name, sIRCMessage.ServerName)); sSendMessage.SendChatMessage(sIRCMessage, text[0]); } else { sSendMessage.SendChatMessage(sIRCMessage, text[1]); return; } } if(!sChannelList.IsChannelList(sIRCMessage.Nick.ToLower())) { sSendMessage.SendChatMessage(sIRCMessage, text[2]); sSendMessage.SendChatMessage(sIRCMessage, text[3]); sChannelList.NewThread(sIRCMessage.ServerName, sIRCMessage.Nick.ToLower()); } return; } else if(sIRCMessage.Info.Length >= 5 && sIRCMessage.Info[4].ToLower() == "newpassword") { if(sIRCMessage.Info.Length < 6) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoOldPassword", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(sIRCMessage.Info.Length < 7) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoNewPassword", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } var text = sLManager.GetCommandTexts("admin/newpassword", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 2) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } string name = sIRCMessage.SqlEscapeNick.ToLower(); var db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM admins WHERE Name = '{0}' And ServerName = '{1}'", name, sIRCMessage.ServerName); if(!db.IsNull()) { if(db["Password"].ToString() == sUtilities.Sha1(sIRCMessage.Info[5])) { SchumixBase.DManager.Update("admins", string.Format("Password = '******'", sUtilities.Sha1(sIRCMessage.Info[6])), string.Format("Name = '{0}' And ServerName = '{1}'", name, sIRCMessage.ServerName)); UpdateLCDB("UPDATE admins SET {0} WHERE {1}", string.Format("Password = '******'", sUtilities.Sha1(sIRCMessage.Info[6])), string.Format("Name = '{0}' And ServerName = '{1}'", name, sIRCMessage.ServerName)); sSendMessage.SendChatMessage(sIRCMessage, text[0], sIRCMessage.Info[6]); } else { sSendMessage.SendChatMessage(sIRCMessage, text[1]); return; } } return; } if(IsWarningAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("WarningAdmin", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!IsAdmin(sIRCMessage.Nick, sIRCMessage.Host, AdminFlag.HalfOperator)) return; if(sIRCMessage.Info.Length >= 5 && sIRCMessage.Info[4].ToLower() == "info") { var text = sLManager.GetCommandTexts("admin/info", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 3) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } string name = sIRCMessage.Nick; if(sIRCMessage.Info.Length >= 6) name = sIRCMessage.Info[5]; if(!Rfc2812Util.IsValidNick(name)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NotaNickNameHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } var db = SchumixBase.DManager.QueryFirstRow("SELECT Flag FROM admins WHERE Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name.ToLower()), sIRCMessage.ServerName); int flag = !db.IsNull() ? db["Flag"].ToInt32() : -1; if((AdminFlag)flag == AdminFlag.HalfOperator) sSendMessage.SendChatMessage(sIRCMessage, text[0]); else if((AdminFlag)flag == AdminFlag.Operator) sSendMessage.SendChatMessage(sIRCMessage, text[1]); else if((AdminFlag)flag == AdminFlag.Administrator) sSendMessage.SendChatMessage(sIRCMessage, text[2]); } else if(sIRCMessage.Info.Length >= 5 && sIRCMessage.Info[4].ToLower() == "list") { var db = SchumixBase.DManager.Query("SELECT Name FROM admins WHERE ServerName = '{0}'", sIRCMessage.ServerName); if(!db.IsNull()) { string admins = string.Empty; foreach(DataRow row in db.Rows) { string name = row["Name"].ToString(); admins += ", " + name; } sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("admin/list", sIRCMessage.Channel, sIRCMessage.ServerName), admins.Remove(0, 2, ", ")); } else sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("FaultyQuery", sIRCMessage.Channel, sIRCMessage.ServerName)); } else if(sIRCMessage.Info.Length >= 5 && sIRCMessage.Info[4].ToLower() == "add") { if(sIRCMessage.Info.Length < 6) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoName", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } var text = sLManager.GetCommandTexts("admin/add", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 7) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } string name = sIRCMessage.Info[5]; if(!Rfc2812Util.IsValidNick(name)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NotaNickNameHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM admins WHERE Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name.ToLower()), sIRCMessage.ServerName); if(!db.IsNull()) { sSendMessage.SendChatMessage(sIRCMessage, text[0]); return; } string pass = sUtilities.GetRandomString(); SchumixBase.DManager.Insert("`admins`(ServerId, ServerName, Name, Password)", sIRCMessage.ServerId, sIRCMessage.ServerName, sUtilities.SqlEscape(name.ToLower()), sUtilities.Sha1(pass)); UpdateLCDB("INSERT INTO `admins`(ServerId, ServerName, Name, Password) VALUES ('{0}', '{1}', '{2}', '{3}')", sIRCMessage.ServerId, sIRCMessage.ServerName, sUtilities.SqlEscape(name.ToLower()), sUtilities.Sha1(pass)); if(SchumixBase.DManager.IsCreatedTable("hlmessage")) SchumixBase.DManager.Insert("`hlmessage`(ServerId, ServerName, Name, Enabled)", sIRCMessage.ServerId, sIRCMessage.ServerName, sUtilities.SqlEscape(name.ToLower()), "off"); sSendMessage.SendChatMessage(sIRCMessage, text[1], name); sSendMessage.SendChatMessage(sIRCMessage.MessageType, name, text[2], pass); sSendMessage.SendChatMessage(sIRCMessage.MessageType, name, text[3], IRCConfig.List[sIRCMessage.ServerName].CommandPrefix); sSendMessage.SendChatMessage(sIRCMessage.MessageType, name, text[4], IRCConfig.List[sIRCMessage.ServerName].CommandPrefix); 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()), sIRCMessage.ServerName); if(db1.IsNull()) { SchumixBase.DManager.Insert("`notes_users`(ServerId, ServerName, Name, Password)", sIRCMessage.ServerId, sIRCMessage.ServerName, sUtilities.SqlEscape(name.ToLower()), sUtilities.Sha1(pass)); sSendMessage.SendChatMessage(sIRCMessage.MessageType, name, text[5]); sSendMessage.SendChatMessage(sIRCMessage.MessageType, name, text[6], IRCConfig.List[sIRCMessage.ServerName].CommandPrefix); } } } else if(sIRCMessage.Info.Length >= 5 && sIRCMessage.Info[4].ToLower() == "remove") { if(sIRCMessage.Info.Length < 6) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoName", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } var text = sLManager.GetCommandTexts("admin/remove", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 2) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } string name = sIRCMessage.Info[5]; if(!Rfc2812Util.IsValidNick(name)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NotaNickNameHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM admins WHERE Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name.ToLower()), sIRCMessage.ServerName); if(db.IsNull()) { sSendMessage.SendChatMessage(sIRCMessage, text[0]); return; } if(IsAdmin(sIRCMessage.Nick, AdminFlag.HalfOperator) && IsAdmin(name, AdminFlag.Operator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoOperator", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(IsAdmin(sIRCMessage.Nick, AdminFlag.HalfOperator) && IsAdmin(name, AdminFlag.Administrator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoAdministrator", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(IsAdmin(sIRCMessage.Nick, AdminFlag.Operator) && IsAdmin(name, AdminFlag.Administrator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoAdministrator", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } SchumixBase.DManager.Delete("admins", string.Format("Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name.ToLower()), sIRCMessage.ServerName)); UpdateLCDB("DELETE FROM admins WHERE {0}", string.Format("Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name.ToLower()), sIRCMessage.ServerName)); if(SchumixBase.DManager.IsCreatedTable("hlmessage")) SchumixBase.DManager.Delete("hlmessage", string.Format("Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name.ToLower()), sIRCMessage.ServerName)); if(SchumixBase.DManager.IsCreatedTable("birthday")) { var db1 = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM birthday WHERE Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name.ToLower()), sIRCMessage.ServerName); if(!db1.IsNull()) SchumixBase.DManager.Delete("birthday", string.Format("Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name.ToLower()), sIRCMessage.ServerName)); } sSendMessage.SendChatMessage(sIRCMessage, text[1], name); } else if(sIRCMessage.Info.Length >= 5 && sIRCMessage.Info[4].ToLower() == "rank") { if(sIRCMessage.Info.Length < 6) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoName", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(sIRCMessage.Info.Length < 7) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoRank", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } var text = sLManager.GetCommandTexts("admin/rank", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 2) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } string name = sIRCMessage.Info[5].ToLower(); var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM admins WHERE Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name), sIRCMessage.ServerName); if(db.IsNull()) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("ThisIsntInTheList", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(!Rfc2812Util.IsValidNick(name)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NotaNickNameHasBeenSet", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(IsAdmin(sIRCMessage.Nick, AdminFlag.HalfOperator) && IsAdmin(name, AdminFlag.Operator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoOperator", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(IsAdmin(sIRCMessage.Nick, AdminFlag.HalfOperator) && IsAdmin(name, AdminFlag.Administrator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoAdministrator", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(IsAdmin(sIRCMessage.Nick, AdminFlag.Operator) && IsAdmin(name, AdminFlag.Administrator)) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoAdministrator", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } int rank = sIRCMessage.Info[6].ToInt32(); if(IsAdmin(sIRCMessage.Nick, AdminFlag.HalfOperator) && IsAdmin(name, AdminFlag.HalfOperator) && (AdminFlag)rank == AdminFlag.Operator) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoOperator", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(IsAdmin(sIRCMessage.Nick, AdminFlag.HalfOperator) && IsAdmin(name, AdminFlag.HalfOperator) && (AdminFlag)rank == AdminFlag.Administrator) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoAdministrator", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } if(IsAdmin(sIRCMessage.Nick, AdminFlag.Operator) && IsAdmin(name, AdminFlag.Operator) && (AdminFlag)rank == AdminFlag.Administrator) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoAdministrator", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } 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}'", sUtilities.SqlEscape(name), sIRCMessage.ServerName); if(!db1.IsNull()) { if(db1["Flag"].ToInt32() == rank) { sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("TheGivenRankIsntDifferent", sIRCMessage.Channel, sIRCMessage.ServerName)); return; } } SchumixBase.DManager.Update("admins", string.Format("Flag = '{0}'", rank), string.Format("Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name), sIRCMessage.ServerName)); UpdateLCDB("UPDATE admins SET {0} WHERE {1}", string.Format("Flag = '{0}'", rank), string.Format("Name = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(name), sIRCMessage.ServerName)); sSendMessage.SendChatMessage(sIRCMessage, text[0]); } else sSendMessage.SendChatMessage(sIRCMessage, text[1]); } else { var text = sLManager.GetCommandTexts("admin", sIRCMessage.Channel, sIRCMessage.ServerName); if(text.Length < 7) { sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))); return; } if(IsAdmin(sIRCMessage.Nick, AdminFlag.HalfOperator)) { string commands = string.Empty; string aliascommands = string.Empty; foreach(var command in sIrcBase.Networks[sIRCMessage.ServerName].CommandMethodMap) { if(command.Value.Permission != CommandPermission.HalfOperator) continue; if(command.Key == "admin") continue; if(sIgnoreCommand.IsIgnore(command.Key)) continue; var db = SchumixBase.DManager.QueryFirstRow("SELECT BaseCommand FROM alias_irc_command WHERE NewCommand = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(command.Key), sIRCMessage.ServerName); if(!db.IsNull()) { string basecommand = db["BaseCommand"].ToString(); aliascommands += " | " + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + command.Key + "->" + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + basecommand; continue; } commands += " | " + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + command.Key; } sSendMessage.SendChatMessage(sIRCMessage, text[0]); sSendMessage.SendChatMessage(sIRCMessage, text[1], commands.Remove(0, 3, " | ")); if(!aliascommands.IsNullOrEmpty()) sSendMessage.SendChatMessage(sIRCMessage, text[6], aliascommands.Remove(0, 3, " | ")); } else if(IsAdmin(sIRCMessage.Nick, AdminFlag.Operator)) { string commands = string.Empty; string aliascommands = string.Empty; foreach(var command in sIrcBase.Networks[sIRCMessage.ServerName].CommandMethodMap) { if(command.Value.Permission == CommandPermission.Normal || command.Value.Permission == CommandPermission.Administrator) continue; if(command.Key == "admin") continue; if(sIgnoreCommand.IsIgnore(command.Key)) continue; var db = SchumixBase.DManager.QueryFirstRow("SELECT BaseCommand FROM alias_irc_command WHERE NewCommand = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(command.Key), sIRCMessage.ServerName); if(!db.IsNull()) { string basecommand = db["BaseCommand"].ToString(); aliascommands += " | " + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + command.Key + "->" + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + basecommand; continue; } commands += " | " + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + command.Key; } sSendMessage.SendChatMessage(sIRCMessage, text[2]); sSendMessage.SendChatMessage(sIRCMessage, text[3], commands.Remove(0, 3, " | ")); if(!aliascommands.IsNullOrEmpty()) sSendMessage.SendChatMessage(sIRCMessage, text[6], aliascommands.Remove(0, 3, " | ")); } else if(IsAdmin(sIRCMessage.Nick, AdminFlag.Administrator)) { string commands = string.Empty; string aliascommands = string.Empty; foreach(var command in sIrcBase.Networks[sIRCMessage.ServerName].CommandMethodMap) { if(command.Value.Permission == CommandPermission.Normal) continue; if(command.Key == "admin") continue; if(sIgnoreCommand.IsIgnore(command.Key)) continue; var db = SchumixBase.DManager.QueryFirstRow("SELECT BaseCommand FROM alias_irc_command WHERE NewCommand = '{0}' And ServerName = '{1}'", sUtilities.SqlEscape(command.Key), sIRCMessage.ServerName); if(!db.IsNull()) { string basecommand = db["BaseCommand"].ToString(); aliascommands += " | " + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + command.Key + "->" + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + basecommand; continue; } commands += " | " + IRCConfig.List[sIRCMessage.ServerName].CommandPrefix + command.Key; } sSendMessage.SendChatMessage(sIRCMessage, text[4]); sSendMessage.SendChatMessage(sIRCMessage, text[5], commands.Remove(0, 3, " | ")); if(!aliascommands.IsNullOrEmpty()) sSendMessage.SendChatMessage(sIRCMessage, text[6], aliascommands.Remove(0, 3, " | ")); } } }