void OnUserSay(string nick, string message) { #region CTCP string message_l = message.ToLower(); if (message_l == "\x01version\x01") { Notice(nick, "\x01VERSION " + G.settings["identifier"] + "\0x01"); L.Log("E::OnChatMessage, sending version to " + nick); return; } if (message_l == "\x01time\x01") { Notice(nick, "\x01TIME " + DateTime.UtcNow.ToString("s") + "\0x01"); L.Log("E::OnChatMessage, sending time to " + nick); return; } #endregion Channel chan = manager.GetChannel(); L.Log(chan.GetName() + "\t <" + nick + "> " + message); #region Args { string to_replace = G.settings["nickname"] + ": "; if (message.StartsWith(to_replace, StringComparison.OrdinalIgnoreCase)) { message = message.Substring(to_replace.Length).Trim(); if (message.Length > 0 && !message.StartsWith(G.settings["prefix"])) { message = G.settings["prefix"] + message; } } } string[] args = Chatcommand.Split(message); int length = args.Length; if (args.Length < 10) { Array.Resize(ref args, 10); } for (int i = length; i < args.Length; i++) { args[i] = ""; } #endregion #region Handle NickServ + return if (nick == "NickServ" && length >= 3) { // NickServ can send different kinds of answers m_Lua module = (m_Lua)manager.GetModule("Lua"); if (Utils.isYes(G.settings["nickserv_acc"]) == 1) { if (args[1] == "ACC" && module != null) { module.userstatus_queue[args[0]] = args[2][0] - '0'; return; } } else { if (args[0] == "STATUS" && module != null) { module.userstatus_queue[args[1]] = args[2][0] - '0'; return; } } // Add more here? return; } #endregion if (args[0] == ".bots") { chan.Say(G.settings["identifier"]); return; } if (message.Length < 2 || !message.StartsWith(G.settings["prefix"])) { return; } manager.OnUserSay(nick, message, length, ref args); }
void OnUserSay(string nick, string message) { #region CTCP string message_l = message.ToLower(); if (message_l == "\x01version\x01") { Notice(nick, "\x01VERSION " + G.settings["identifier"] + "\0x01"); L.Log("E::OnChatMessage, sending version to " + nick); return; } if (message_l == "\x01time\x01") { Notice(nick, "\x01TIME " + DateTime.UtcNow.ToString("s") + "\0x01"); L.Log("E::OnChatMessage, sending time to " + nick); return; } #endregion Channel chan = manager.GetChannel(); L.Log(chan.GetName() + "\t <" + nick + "> " + message); #region Args { string to_replace = G.settings["nickname"] + ": "; if (message.StartsWith(to_replace, StringComparison.OrdinalIgnoreCase)) { message = message.Substring(to_replace.Length).Trim(); if (message.Length > 0 && message[0] != '$') { message = '$' + message; } } } string[] args = Chatcommand.Split(message); int length = args.Length; if (args.Length < 10) { Array.Resize(ref args, 10); } for (int i = length; i < args.Length; i++) { args[i] = ""; } #endregion #region Handle NickServ + return if (nick == "NickServ" && length >= 3) { if (Utils.isYes(G.settings["nickserv_acc"]) == 1) { if (args[1] == "ACC") { manager.ReceivedUserStatus(args[1], args[2][0] - '0'); return; } } else { if (args[0] == "STATUS") { manager.ReceivedUserStatus(args[1], args[2][0] - '0'); return; } } // Add more here? return; } #endregion if (args[0] == ".bots") { chan.Say(G.settings["identifier"]); return; } if (message.Length < 2 || message[0] != '$') { return; } manager.Fork("E::OnUserSay", message, delegate() { manager.OnUserSay(nick, message, length, ref args); }); }