function nsident($user, $whom, $msg) { global $nspass, $debugchan; if (get_nick($user) == "NS") { if ("This nickname is owned by someone else" == $msg) { msg("NS", "identify {$nspass}"); irclog("NS", "Trying to identify myself"); msg($debugchan, "trying to id"); } elseif ("Password accepted - you are now recognized" == $msg) { irclog("NS", "Identification successful, yuppie!"); if ($debug == "on") { msg($debugchan, "Identification successful: yuppie!"); } msg("CS", "op all"); } elseif ("Password Incorrect" == $msg) { irclog("NS", "Identification failed: wrong password"); if ($debug == "on") { msg($debugchan, "Identification failed: wrong password"); } } } }
function pubcmd($user, $whom, $msg) { global $bnick, $version; $params = explode(" ", $msg); if (ereg("^#", $whom)) { // if they're calling the bot in a channel $mecalled = array_shift($params); // getting bots nick out } else { // private msg to the bot $mecalled = $bnick; $whom = get_nick($user); } $command = strtoupper(array_shift($params)); if ($mecalled == $bnick) { switch ($command) { case "SERVER": msg($whom, "I'm using " . ircserver()); break; case "PING": dump("NOTICE {$whom} :PING " . implode(" ", $params)); break; case "VERSION": dump("NOTICE " . get_nick($user) . " :VERSION {$version} "); break; default: if (is_admin($user)) { switch ($command) { case "JOIN": call_user_func_array('jchan', $params); break; case "PART": part($params[0]); break; case "ACTION": action($whom, join(" ", $params)); break; case "DO": dump(join(" ", $params)); break; case "BINDINGS": msg($whom, "BINDINGS for {$params['0']} -> (" . join(",", managebindings('list', $params[0])) . ")"); break; case "REHASH": msg($whom, "rehashing..."); //rehash(); break; case "QUIT": irclog("cmd", "ressurect requested by " . get_nick($user)); quit("requested by " . get_nick($user)); break; case "DIE": quit("requested by " . get_nick($user)); irclog("cmd", "die request by " . get_nick($user)); exit; break; case "MYSQL": $query = implode(" ", $params); jmysql($query); break; default: msg($whom, "Not implemented... yet!"); break; } } break; } } }
function ircwrite($proto, $ircdata) { global $socket; $ircdata .= "\r\n"; // auto putting end-signs at every line switch ($proto) { case "ctcp": // client-to-client protocol socket_write($socket, $ircdata); break; case "msg": // privmsg socket_write($socket, "PRIVMSG {$ircdata}"); break; case "raw": // raw message socket_write($socket, " {$ircdata}"); break; default: // everything else irclog($proto, $ircdata); break; } }