public override void Hook_Nick(config.channel channel, User Target, string OldNick) { Notification result = Notification.RetrieveTarget(Target.Nick); while (result != null) { core.irc._SlowQueue.DeliverMessage(result.Source_Name + "! " + OldNick + " just changed nicknames to " + Target.Nick + " which you wanted to talk with, in " + channel.Name + ". This message was delivered to you because you asked me to notify you about this user's activity. For more information, see http://meta.wikimedia.org/wiki/WM-Bot", result.Source_Name, IRC.priority.low); lock (Notification.NotificationList) { Notification.NotificationList.Remove(result); } result = Notification.RetrieveTarget(Target.Nick); } result = Notification.RetrieveTarget(OldNick); while (result != null) { core.irc._SlowQueue.DeliverMessage(result.Source_Name + "! " + OldNick + " just changed a nickname to " + Target.Nick + " which you wanted to talk with, in " + channel.Name + ". This message was delivered to you because you asked me to notify you about this user's activity. For more information, see http://meta.wikimedia.org/wiki/WM-Bot", result.Source_Name, IRC.priority.low); lock (Notification.NotificationList) { Notification.NotificationList.Remove(result); } result = Notification.RetrieveTarget(OldNick); } if (Target.Nick.ToLower() != OldNick.ToLower()) { result = Notification.RetrieveSource(OldNick); while (result != null) { result.Source_Name = Target.Nick; result = Notification.RetrieveSource(OldNick); } } }
public override void Hook_PRIV(config.channel channel, User invoker, string message) { if (message.StartsWith("!") && message.Contains("|")) { DebugLog("Parsing: " + message, 6); string user = message.Substring(message.IndexOf("|") + 1); user = user.Trim(); DebugLog("Parsed user - " + user, 6); if (user.Contains(" ")) { user = user.Substring(0, user.IndexOf(" ")); } if (user != "") { DebugLog("Adding user to list " + user, 6); Ring.Add(new Buffer.Item(invoker.Nick, user)); } } else { message = message.ToLower(); if (message.Contains(channel.instance.Nick) && !message.Contains("thanks to") && (message.Contains("thanks") || message.Contains("thank you")) && !message.Contains("no thank")) { string response = "Hey " + invoker.Nick + ", you are welcome!"; Buffer.Item x = Ring.getUser(invoker.Nick); DebugLog("Checking if user was recently informed using infobot"); if (x != null) { response = "Hey " + invoker.Nick + ", you are welcome, but keep in mind I am just a stupid bot, it was actually " + x.User + " who helped you :-)"; Ring.Delete(x); } core.irc._SlowQueue.DeliverMessage(response, channel); } } }
public override void Hook_PRIV(config.channel channel, User invoker, string message) { if (message == "@replag") { core.irc._SlowQueue.DeliverMessage("Replication lag is approximately " + GetReplag(), channel); return; } }
public override void Hook_PRIV(Channel channel, User invoker, string message) { if (message == Configuration.System.CommandPrefix + "ping") { Info i = new Info(); i.channel = channel; Thread thread = new Thread(Ping); thread.Start(i); } }
public override void Hook_Kick(config.channel channel, User source, User user) { Notification result = Notification.RetrieveTarget(user.Nick); while (result != null) { core.irc._SlowQueue.DeliverMessage(result.Source_Name + "! " + user.Nick + " just got kicked from " + channel.Name + ". This message was delivered to you because you asked me to notify you about this user's activity. For more information, see http://meta.wikimedia.org/wiki/WM-Bot", result.Source_Name, IRC.priority.low); lock (Notification.NotificationList) { Notification.NotificationList.Remove(result); } result = Notification.RetrieveTarget(user.Nick); } }
public override bool Hook_OnPrivateFromUser(string message, User user) { WriteStatus(user.Nick, user.Host, "<private message>", item.Action.Talk); if (message.StartsWith("@seen ")) { string parameter = ""; parameter = message.Substring(message.IndexOf(" ") + 1); if (parameter != "") { RetrieveStatus(parameter, null, user.Nick); return true; } } if (message.StartsWith("@seenrx ")) { core.irc._SlowQueue.DeliverMessage("Sorry but this command can be used in channels only (it's cpu expensive so it can be used on public by trusted users only)", user.Nick, IRC.priority.low); return true; } return false; }
public static void IrcKick(Channel Channel, User Source, User Target) { lock(ExtensionHandler.Extensions) { foreach (Module module in ExtensionHandler.Extensions) { if (!module.IsWorking) { continue; } try { module.Hook_Kick(Channel, Source, Target); } catch (Exception fail) { Syslog.Log("MODULE: exception at Hook_Kick in " + module.Name, true); Core.HandleException(fail, module.Name); } } } }
public virtual void Hook_Quit(User user, string Message) { return; }
public virtual bool Hook_SetConfig(config.channel chan, User invoker, string config, string value) { return false; }
public virtual void Hook_Part(config.channel channel, User user) { return; }
/// <summary> /// This hook is called when someone send a private message to channel /// </summary> /// <param name="channel">channel</param> /// <param name="invoker">invoker</param> /// <param name="message">message</param> public virtual void Hook_PRIV(config.channel channel, User invoker, string message) { return; }
public virtual bool Hook_OnPrivateFromUser(string message, User user) { return false; }
public virtual void Hook_OnSelf(config.channel channel, User self, string message) { return; }
public override void Hook_OnSelf(config.channel channel, User self, string message) { chanLog(message, channel, config.username, ""); }
public override void Hook_Quit(User user, string Message) { WriteStatus(user.Nick, user.Host, "N/A", item.Action.Exit, "", Message); }
public override bool Hook_GetConfig(config.channel chan, User invoker, string config) { switch (config) { case "recent-changes-template": core.irc._SlowQueue.DeliverMessage("Value of " + config + " is: " + GetConfig(chan, "RC.Template", "<default value>"), chan); return true; } return false; }
public override bool Hook_SetConfig(config.channel chan, User invoker, string config, string value) { switch (config) { case "recent-changes-template": if (value != "null") { Module.SetConfig(chan, "RC.Template", value); core.irc._SlowQueue.DeliverMessage(messages.get("configuresave", chan.Language, new List<string> { value, config }), chan); chan.SaveConfig(); return true; } else { Module.SetConfig(chan, "RC.Template", ""); core.irc._SlowQueue.DeliverMessage(messages.get("configuresave", chan.Language, new List<string> { "null", config }), chan); chan.SaveConfig(); return true; } } return false; }
public override void Hook_Nick(config.channel channel, User Target, string OldNick) { WriteStatus(OldNick, Target.Host, channel.Name, item.Action.Nick, Target.Nick); return; }
public override void Hook_Kick(config.channel channel, User source, User user) { WriteStatus(user.Nick, user.Host, channel.Name, item.Action.Kick); }
public override void Hook_ACTN(config.channel channel, User invoker, string message) { WriteStatus(invoker.Nick, invoker.Host, channel.Name, item.Action.Talk); }
public override void Hook_PRIV(config.channel channel, User invoker, string message) { // "\uff01" is the full-width version of "!". if ((message.StartsWith("!") || message.StartsWith("\uff01")) && GetConfig(channel, "Infobot.Enabled", true)) { while (Unwritable) { Thread.Sleep(10); } Unwritable = true; infobot_core.InfoItem item = new infobot_core.InfoItem(); item.Channel = channel; item.Name = "!" + message.Substring(1); // Normalizing "!". item.User = invoker.Nick; item.Host = invoker.Host; jobs.Add(item); Unwritable = false; } infobot_core infobot = null; if (message.StartsWith("@")) { infobot = (infobot_core)channel.RetrieveObject("Infobot"); if (infobot == null) { core.Log("Object Infobot in " + channel.Name + " doesn't exist", true); } if (GetConfig(channel, "Infobot.Enabled", true)) { if (infobot != null) { infobot.Find(message, channel); infobot.RSearch(message, channel); } } } if (Snapshots) { if (message.StartsWith("@infobot-recovery ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { string name = message.Substring("@infobot-recovery ".Length); if (!GetConfig(channel, "Infobot.Enabled", true)) { core.irc._SlowQueue.DeliverMessage("Infobot is not enabled in this channel", channel.Name, IRC.priority.low); return; } if (infobot != null) { infobot.RecoverSnapshot(channel, name); } return; } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message.StartsWith("@infobot-snapshot ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { string name = message.Substring("@infobot-snapshot ".Length); if (!GetConfig(channel, "Infobot.Enabled", true)) { core.irc._SlowQueue.DeliverMessage("Infobot is not enabled in this channel", channel.Name, IRC.priority.low); return; } if (infobot != null) { infobot.CreateSnapshot(channel, name); } return; } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message.StartsWith("@infobot-set-raw ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "trust")) { string name = message.Substring("@infobot-set-raw ".Length); if (!GetConfig(channel, "Infobot.Enabled", true)) { core.irc._SlowQueue.DeliverMessage("Infobot is not enabled in this channel", channel.Name, IRC.priority.low); return; } if (infobot != null) { infobot.setRaw(name, invoker.Nick, channel); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message.StartsWith("@infobot-unset-raw ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "trust")) { string name = message.Substring("@infobot-unset-raw ".Length); if (!GetConfig(channel, "Infobot.Enabled", true)) { core.irc._SlowQueue.DeliverMessage("Infobot is not enabled in this channel", channel.Name, IRC.priority.low); return; } if (infobot != null) { infobot.unsetRaw(name, invoker.Nick, channel); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message.StartsWith("@infobot-snapshot-rm ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { string name = message.Substring("@infobot-snapshot-rm ".Length); name.Replace(".", ""); name.Replace("/", ""); name.Replace("\\", ""); name.Replace("*", ""); name.Replace("?", ""); if (name == "") { core.irc._SlowQueue.DeliverMessage("You should specify a file name", channel.Name, IRC.priority.normal); return; } if (!File.Exists(SnapshotsDirectory + Path.DirectorySeparatorChar + channel.Name + Path.DirectorySeparatorChar + name)) { core.irc._SlowQueue.DeliverMessage("File not found", channel.Name, IRC.priority.normal); return; } File.Delete(SnapshotsDirectory + Path.DirectorySeparatorChar + channel.Name + Path.DirectorySeparatorChar + name); core.irc._SlowQueue.DeliverMessage("Requested file was removed", channel.Name, IRC.priority.normal); return; } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == "@infobot-snapshot-ls") { string files = ""; DirectoryInfo di = new DirectoryInfo(SnapshotsDirectory + Path.DirectorySeparatorChar + channel.Name); FileInfo[] rgFiles = di.GetFiles("*"); int curr = 0; int displaying = 0; foreach (FileInfo fi in rgFiles) { curr++; if (files.Length < 200) { files += fi.Name + " "; displaying++; } } string response = ""; if (curr == displaying) { response = "There are " + displaying.ToString() + " files: " + files; } else { response = "There are " + curr.ToString() + " files, but displaying only " + displaying.ToString() + " of them: " + files; } if (curr == 0) { response = "There is no snapshot so far, create one!:)"; } core.irc._SlowQueue.DeliverMessage(response, channel.Name, IRC.priority.normal); return; } } if (message.StartsWith("@infobot-share-trust+ ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (channel.shared != "local") { core.irc._SlowQueue.DeliverMessage(messages.get("infobot16", channel.Language), channel.Name); return; } if (channel.shared != "local" && channel.shared != "") { core.irc._SlowQueue.DeliverMessage(messages.get("infobot15", channel.Language), channel.Name); return; } else { if (message.Length <= "@infobot-share-trust+ ".Length) { core.irc._SlowQueue.DeliverMessage(messages.get("db6", channel.Language), channel.Name); return; } string name = message.Substring("@infobot-share-trust+ ".Length); config.channel guest = core.getChannel(name); if (guest == null) { core.irc._SlowQueue.DeliverMessage(messages.get("db8", channel.Language), channel.Name); return; } if (channel.SharedLinkedChan.Contains(guest)) { core.irc._SlowQueue.DeliverMessage(messages.get("db14", channel.Language), channel.Name); return; } core.irc._SlowQueue.DeliverMessage(messages.get("db1", channel.Language, new List<string> { name }), channel.Name); lock (channel.SharedLinkedChan) { channel.SharedLinkedChan.Add(guest); } channel.SaveConfig(); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message.StartsWith("@infobot-ignore- ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "trust")) { string item = message.Substring("@infobot-ignore+ ".Length); if (item != "") { if (!channel.Infobot_IgnoredNames.Contains(item)) { core.irc._SlowQueue.DeliverMessage(messages.get("infobot-ignore-found", channel.Language, new List<string> { item }), channel.Name); return; } channel.Infobot_IgnoredNames.Remove(item); core.irc._SlowQueue.DeliverMessage(messages.get("infobot-ignore-rm", channel.Language, new List<string> { item }), channel.Name); channel.SaveConfig(); return; } } else { if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } } } if (message.StartsWith("@infobot-ignore+ ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "trust")) { string item = message.Substring("@infobot-ignore+ ".Length); if (item != "") { if (channel.Infobot_IgnoredNames.Contains(item)) { core.irc._SlowQueue.DeliverMessage(messages.get("infobot-ignore-exist", channel.Language, new List<string> { item }), channel.Name); return; } channel.Infobot_IgnoredNames.Add(item); core.irc._SlowQueue.DeliverMessage(messages.get("infobot-ignore-ok", channel.Language, new List<string> { item }), channel.Name); channel.SaveConfig(); return; } } else { if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } } } if (message == "@infobot-off") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (!GetConfig(channel, "Infobot.Enabled", true)) { core.irc._SlowQueue.DeliverMessage(messages.get("infobot1", channel.Language), channel.Name); return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("infobot2", channel.Language), channel.Name, IRC.priority.high); SetConfig(channel, "Infobot.Enabled", false); channel.SaveConfig(); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message.StartsWith("@infobot-share-trust- ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (channel.shared != "local") { core.irc._SlowQueue.DeliverMessage(messages.get("infobot16", channel.Language), channel.Name); return; } else { if (message.Length <= "@infobot-share-trust+ ".Length) { core.irc._SlowQueue.DeliverMessage(messages.get("db6", channel.Language), channel.Name); return; } string name = message.Substring("@infobot-share-trust- ".Length); config.channel target = core.getChannel(name); if (target == null) { core.irc._SlowQueue.DeliverMessage(messages.get("db8", channel.Language), channel.Name); return; } if (channel.SharedLinkedChan.Contains(target)) { channel.SharedLinkedChan.Remove(target); core.irc._SlowQueue.DeliverMessage(messages.get("db2", channel.Language, new List<string> { name }), channel.Name); channel.SaveConfig(); return; } core.irc._SlowQueue.DeliverMessage(messages.get("db4", channel.Language), channel.Name); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message.StartsWith("@infobot-detail ")) { if ((message.Length) <= "@infobot-detail ".Length) { core.irc._SlowQueue.DeliverMessage(messages.get("db6", channel.Language), channel.Name); return; } if (GetConfig(channel, "Infobot.Enabled", true)) { if (channel.shared == "local" || channel.shared == "") { if (infobot != null) { infobot.Info(message.Substring(16), channel); } return; } if (channel.shared != "") { config.channel db = core.getChannel(channel.shared); if (db == null) { core.irc._SlowQueue.DeliverMessage("Error, null pointer to shared channel", channel.Name, IRC.priority.low); return; } if (infobot != null) { infobot.Info(message.Substring(16), channel); } return; } return; } core.irc._SlowQueue.DeliverMessage("Infobot is not enabled on this channel", channel.Name, IRC.priority.low); return; } if (message.StartsWith("@infobot-link ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (channel.shared == "local") { core.irc._SlowQueue.DeliverMessage(messages.get("infobot17", channel.Language), channel.Name); return; } if (channel.shared != "") { core.irc._SlowQueue.DeliverMessage(messages.get("infobot18", channel.Language, new List<string> { channel.shared }), channel.Name); return; } if ((message.Length - 1) < "@infobot-link ".Length) { core.irc._SlowQueue.DeliverMessage(messages.get("db6", channel.Language), channel.Name); return; } string name = message.Substring("@infobot-link ".Length); config.channel db = core.getChannel(name); if (db == null) { core.irc._SlowQueue.DeliverMessage(messages.get("db8", channel.Language), channel.Name); return; } if (!infobot_core.Linkable(db, channel)) { core.irc._SlowQueue.DeliverMessage(messages.get("db9", channel.Language), channel.Name); return; } channel.shared = name.ToLower(); core.irc._SlowQueue.DeliverMessage(messages.get("db10", channel.Language), channel.Name); channel.SaveConfig(); return; } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == "@infobot-share-off") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (channel.shared == "") { core.irc._SlowQueue.DeliverMessage(messages.get("infobot14", channel.Language), channel.Name); return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("infobot13", channel.Language), channel.Name); foreach (config.channel curr in config.channels) { if (curr.shared == channel.Name.ToLower()) { curr.shared = ""; curr.SaveConfig(); core.irc._SlowQueue.DeliverMessage(messages.get("infobot19", curr.Language, new List<string> { invoker.Nick }), curr.Name); } } channel.shared = ""; channel.SaveConfig(); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == "@infobot-on") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (GetConfig(channel, "Infobot.Enabled", true)) { core.irc._SlowQueue.DeliverMessage(messages.get("infobot3", channel.Language), channel.Name); return; } SetConfig(channel, "Infobot.Enabled", true); channel.SaveConfig(); core.irc._SlowQueue.DeliverMessage(messages.get("infobot4", channel.Language), channel.Name, IRC.priority.high); return; } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == "@infobot-share-on") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (channel.shared == "local") { core.irc._SlowQueue.DeliverMessage(messages.get("infobot11", channel.Language), channel.Name, IRC.priority.high); return; } if (channel.shared != "local" && channel.shared != "") { core.irc._SlowQueue.DeliverMessage(messages.get("infobot15", channel.Language), channel.Name, IRC.priority.high); return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("infobot12", channel.Language), channel.Name); channel.shared = "local"; channel.SaveConfig(); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } }
public override void Hook_PRIV(config.channel channel, User invoker, string message) { if (Module.GetConfig(channel, "Statistics.Enabled", false)) { Statistics st = (Statistics)channel.RetrieveObject("Statistics"); if (st != null) { st.Stat(invoker.Nick, message, invoker.Host); } } if (message == "@statistics-off") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (!Module.GetConfig(channel, "Statistics.Enabled", false)) { core.irc._SlowQueue.DeliverMessage(messages.get("StatE2", channel.Language), channel.Name); return; } else { Module.SetConfig(channel, "Statistics.Enabled", false); channel.SaveConfig(); core.irc._SlowQueue.DeliverMessage(messages.get("Stat-off", channel.Language), channel.Name); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == "@statistics-reset") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { Statistics st = (Statistics)channel.RetrieveObject("Statistics"); if (st != null) { st.Delete(); } core.irc._SlowQueue.DeliverMessage(messages.get("Statdt", channel.Language), channel.Name); return; } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == "@statistics-on") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (Module.GetConfig(channel, "Statistics.Enabled", false)) { core.irc._SlowQueue.DeliverMessage(messages.get("StatE1", channel.Language), channel.Name); return; } else { Module.SetConfig(channel, "Statistics.Enabled", true); channel.SaveConfig(); core.irc._SlowQueue.DeliverMessage(messages.get("Stat-on", channel.Language), channel.Name); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } }
public override bool Hook_SetConfig(config.channel chan, User invoker, string config, string value) { bool _temp_a; switch (config) { case "infobot-trim-white-space-in-name": if (bool.TryParse(value, out _temp_a)) { Module.SetConfig(chan, "Infobot.Trim-white-space-in-name", _temp_a); core.irc._SlowQueue.DeliverMessage(messages.get("configuresave", chan.Language, new List<string> { value, config }), chan.Name); chan.SaveConfig(); return true; } core.irc._SlowQueue.DeliverMessage(messages.get("configure-va", chan.Language, new List<string> { config, value }), chan.Name); return true; case "infobot-auto-complete": if (bool.TryParse(value, out _temp_a)) { Module.SetConfig(chan, "Infobot.auto-complete", _temp_a); core.irc._SlowQueue.DeliverMessage(messages.get("configuresave", chan.Language, new List<string> { value, config }), chan.Name); chan.SaveConfig(); return true; } core.irc._SlowQueue.DeliverMessage(messages.get("configure-va", chan.Language, new List<string> { config, value }), chan.Name); return true; case "infobot-sorted": if (bool.TryParse(value, out _temp_a)) { Module.SetConfig(chan, "Infobot.Sorted", _temp_a); core.irc._SlowQueue.DeliverMessage(messages.get("configuresave", chan.Language, new List<string> { value, config }), chan.Name); chan.SaveConfig(); return true; } core.irc._SlowQueue.DeliverMessage(messages.get("configure-va", chan.Language, new List<string> { config, value }), chan.Name); return true; case "infobot-help": if (bool.TryParse(value, out _temp_a)) { Module.SetConfig(chan, "Infobot.Help", _temp_a); core.irc._SlowQueue.DeliverMessage(messages.get("configuresave", chan.Language, new List<string> { value, config }), chan.Name); chan.SaveConfig(); return true; } core.irc._SlowQueue.DeliverMessage(messages.get("configure-va", chan.Language, new List<string> { config, value }), chan.Name); return true; case "infobot-case": if (bool.TryParse(value, out _temp_a)) { Module.SetConfig(chan, "Infobot.Case", _temp_a); core.irc._SlowQueue.DeliverMessage(messages.get("configuresave", chan.Language, new List<string> { value, config }), chan.Name); chan.SaveConfig(); infobot_core infobot = (infobot_core)chan.RetrieveObject("Infobot"); if (infobot != null) { infobot.Sensitive = _temp_a; } return true; } core.irc._SlowQueue.DeliverMessage(messages.get("configure-va", chan.Language, new List<string> { config, value }), chan.Name); return true; } return false; }
public override void Hook_PRIV(config.channel channel, User invoker, string message) { WriteStatus(invoker.Nick, invoker.Host, channel.Name, item.Action.Talk); if (message.StartsWith("@seen ")) { if (GetConfig(channel, "Seen.Enabled", false)) { string parameter = ""; if (message.Contains(" ")) { parameter = message.Substring(message.IndexOf(" ") + 1); } if (parameter != "") { RetrieveStatus(parameter, channel, invoker.Nick); return; } } } if (message.StartsWith("@seenrx ")) { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "trust")) { if (GetConfig(channel, "Seen.Enabled", false)) { string parameter = ""; if (message.Contains(" ")) { parameter = message.Substring(message.IndexOf(" ") + 1); } if (parameter != "") { RegEx(parameter, channel, invoker.Nick); return; } } return; } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == "@seen-off") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (!GetConfig(channel, "Seen.Enabled", false)) { core.irc._SlowQueue.DeliverMessage(messages.get("seen-e2", channel.Language), channel.Name); return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("seen-off", channel.Language), channel.Name, IRC.priority.high); SetConfig(channel, "Seen.Enabled", false); channel.SaveConfig(); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == "@seen-on") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (GetConfig(channel, "Seen.Enabled", false)) { core.irc._SlowQueue.DeliverMessage(messages.get("seen-oe", channel.Language), channel.Name); return; } SetConfig(channel, "Seen.Enabled", true); channel.SaveConfig(); core.irc._SlowQueue.DeliverMessage(messages.get("seen-on", channel.Language), channel.Name, IRC.priority.high); return; } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } }
public override void Hook_PRIV(config.channel channel, User invoker, string message) { if (message.StartsWith(config.CommandPrefix + "RC-")) { if (channel.Users.IsApproved(invoker, "trust")) { if (GetConfig(channel, "RC.Enabled", false)) { string[] a = message.Split(' '); if (a.Length < 3) { core.irc._SlowQueue.DeliverMessage(messages.get("Feed8", channel.Language, new List<string> { invoker.Nick }), channel.Name); return; } string wiki = a[1]; string Page = a[2]; RecentChanges rc = (RecentChanges)channel.RetrieveObject("RC"); if (rc != null) { rc.removeString(wiki, Page); } return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("Feed3", channel.Language), channel.Name); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message.StartsWith(config.CommandPrefix + "recentchanges- ")) { if (channel.Users.IsApproved(invoker, "root")) { if (GetConfig(channel, "RC.Enabled", false)) { if (!message.Contains(" ")) { if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("InvalidWiki", channel.Language), channel.Name); } return; } string _channel = message.Substring(message.IndexOf(" ") + 1); if (RecentChanges.DeleteChannel(channel, _channel)) { core.irc._SlowQueue.DeliverMessage(messages.get("Wiki-", channel.Language), channel.Name, IRC.priority.high); } return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("Feed3", channel.Language), channel.Name); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message.StartsWith(config.CommandPrefix + "RC+ ")) { if (channel.Users.IsApproved(invoker, "trust")) { if (GetConfig(channel, "RC.Enabled", false)) { string[] a = message.Split(' '); if (a.Length < 3) { core.irc._SlowQueue.DeliverMessage(messages.get("Feed4", channel.Language) + invoker.Nick + messages.get("Feed5", channel.Language), channel.Name); return; } string wiki = a[1]; string Page = a[2]; RecentChanges rc = (RecentChanges)channel.RetrieveObject("RC"); if (rc != null) { rc.insertString(wiki, Page); } return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("Feed3", channel.Language), channel.Name); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == config.CommandPrefix + "recentchanges-off") { if (channel.Users.IsApproved(invoker, "admin")) { if (!GetConfig(channel, "RC.Enabled", false)) { core.irc._SlowQueue.DeliverMessage(messages.get("Feed6", channel.Language), channel.Name); return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("Feed7", channel.Language), channel.Name); SetConfig(channel, "RC.Enabled", false); channel.SaveConfig(); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == config.CommandPrefix + "recentchanges-on") { if (channel.Users.IsApproved(invoker, "recentchanges-manage")) { if (GetConfig(channel, "RC.Enabled", false)) { core.irc._SlowQueue.DeliverMessage(messages.get("Feed1", channel.Language), channel.Name); return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("Feed2", channel.Language), channel.Name); SetConfig(channel, "RC.Enabled", true); channel.SaveConfig(); config.Save(); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message.StartsWith(config.CommandPrefix + "recentchanges+")) { if (channel.Users.IsApproved(invoker, "recentchanges-manage")) { if (GetConfig(channel, "RC.Enabled", false)) { if (!message.Contains(" ")) { if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("InvalidWiki", channel.Language), channel.Name); } return; } string _channel = message.Substring(message.IndexOf(" ") + 1); if (RecentChanges.InsertChannel(channel, _channel)) { core.irc._SlowQueue.DeliverMessage(messages.get("Wiki+", channel.Language), channel.Name); } return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("Feed3", channel.Language), channel.Name); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } }
public override void Hook_Part(config.channel channel, User user) { WriteStatus(user.Nick, user.Host, channel.Name, item.Action.Part); }
public override void Hook_ACTN(config.channel channel, User invoker, string message) { chanLog(message, channel, invoker.Nick, invoker.Host, false); }
public virtual void Hook_Kick(config.channel channel, User source, User user) { return; }
public override void Hook_PRIV(config.channel channel, User invoker, string message) { chanLog(message, channel, invoker.Nick, invoker.Host); if (message == "@logon") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (Module.GetConfig(channel, "Logging.Enabled", false)) { core.irc._SlowQueue.DeliverMessage(messages.get("ChannelLogged", channel.Language), channel.Name); return; } else { core.irc._SlowQueue.DeliverMessage(messages.get("LoggingOn", channel.Language), channel.Name); Module.SetConfig(channel, "Logging.Enabled", true); channel.SaveConfig(); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } if (message == "@logoff") { if (channel.Users.isApproved(invoker.Nick, invoker.Host, "admin")) { if (!Module.GetConfig(channel, "Logging.Enabled", false)) { core.irc._SlowQueue.DeliverMessage(messages.get("LogsE1", channel.Language), channel.Name); return; } else { Module.SetConfig(channel, "Logging.Enabled", false); channel.SaveConfig(); core.irc._SlowQueue.DeliverMessage(messages.get("NotLogged", channel.Language), channel.Name); return; } } if (!channel.suppress_warnings) { core.irc._SlowQueue.DeliverMessage(messages.get("PermissionDenied", channel.Language), channel.Name, IRC.priority.low); } return; } }
public virtual void Hook_Nick(config.channel channel, User Target, string OldNick) { }