public function main(&$ircdata, $startup = false) { if (ircd::on_connect(&$ircdata)) { $nick = core::get_nick(&$ircdata, core::$config->server->ircd == 'inspircd12' ? 4 : 3); if ($user = services::user_exists($nick, false, array('display', 'suspended'))) { if ($user->suspended == 1) { $random_nick = 'Unknown' . rand(10000, 99999); services::communicate(core::$config->nickserv->nick, $nick, &nickserv::$help->NS_SUSPEND_1, array('nick' => $user->display)); services::communicate(core::$config->nickserv->nick, $nick, &nickserv::$help->NS_NICK_CHANGE, array('nick' => $random_nick)); ircd::svsnick($nick, $random_nick, core::$network_time); } } // check if the nick is suspended etc. } // trigger on connect if (ircd::on_nick_change(&$ircdata)) { $nick = core::get_nick($ircdata, 2); // get the nicknames if ($user = services::user_exists($nick, false, array('display', 'suspended'))) { if ($user->suspended == 1) { $random_nick = 'Unknown' . rand(10000, 99999); services::communicate(core::$config->nickserv->nick, $nick, &nickserv::$help->NS_SUSPEND_1, array('nick' => $user->display)); services::communicate(core::$config->nickserv->nick, $nick, &nickserv::$help->NS_NICK_CHANGE, array('nick' => $random_nick)); ircd::svsnick($nick, $random_nick, core::$network_time); } } // check if the nick is suspended etc. } // trigger on nick change }
public static function log_changes(&$ircdata, $startup = false) { if (ircd::on_server(&$ircdata)) { ircd::handle_on_server(&$ircdata); } // let's us keep track of the linked servers if (ircd::on_squit(&$ircdata)) { ircd::handle_on_squit(&$ircdata); } // let's us keep track of the linked servers if (ircd::on_connect(&$ircdata)) { ircd::handle_on_connect(&$ircdata, $startup); } // log shit on connect, basically the users host etc. if (ircd::on_nick_change(&$ircdata)) { ircd::handle_nick_change(&$ircdata, $startup); } // on nick change, make sure the variable changes too. if (ircd::on_quit(&$ircdata)) { ircd::handle_quit(&$ircdata, $startup); } // on quit. if (ircd::on_fhost(&$ircdata)) { ircd::handle_host_change(&$ircdata); } // on hostname change. if (ircd::on_ident_change(&$ircdata)) { ircd::handle_ident_change(&$ircdata); } // on ident change if (ircd::on_gecos_change(&$ircdata)) { ircd::handle_gecos_change(&$ircdata); } // on realname (gecos) change if (ircd::on_mode(&$ircdata)) { ircd::handle_mode(&$ircdata); } // on mode if (ircd::on_ftopic(&$ircdata)) { ircd::handle_ftopic(&$ircdata); } // on ftopic if (ircd::on_topic(&$ircdata)) { ircd::handle_topic(&$ircdata); } // on topic if (ircd::on_chan_create(&$ircdata)) { ircd::handle_channel_create(&$ircdata); } // on channel create if (ircd::on_join(&$ircdata)) { ircd::handle_join(&$ircdata); } // on join if (ircd::on_part(&$ircdata)) { ircd::handle_part(&$ircdata); } // and on part. if (ircd::on_kick(&$ircdata)) { ircd::handle_kick(&$ircdata); } // and on kick. if (ircd::on_oper_up(&$ircdata)) { ircd::handle_oper_up(&$ircdata); } // on oper ups }
public function main(&$ircdata, $startup = false) { if (ircd::on_connect(&$ircdata)) { $nick = core::get_nick(&$ircdata, core::$config->server->ircd == 'inspircd12' ? 4 : 3); // get nick if ($user = services::user_exists($nick, false, array('display', 'identified', 'validated', 'last_hostmask', 'suspended'))) { if ($user->validated == 0 && $user->suspended == 0) { ircd::on_user_logout($nick); // they shouldn't really have registered mode services::communicate(core::$config->nickserv->nick, $nick, &nickserv::$help->NS_AWAITING_VALIDATION); } elseif ($user->identified == 0 && $user->suspended == 0) { self::_registered_nick($nick, $user); } elseif ($user->identified == 1 && $user->last_hostmask == core::get_full_hostname($nick)) { ircd::on_user_login($nick); if (!$startup) { core::alog(core::$config->nickserv->nick . ': ' . core::$nicks[$nick]['ident'] . '@' . core::$nicks[$nick]['host'] . ' automatically identified for ' . $nick); } } else { self::_registered_nick($nick, $user); } } // is the user existing? } // on connect let them know that they're using // an identified nickname if (ircd::on_nick_change(&$ircdata)) { $nick = core::get_nick($ircdata, 2); $old_nick = core::$nicks[$nick]['onick']; // get the nicknames timer::remove(array('ns_identify', 'secured_callback', array($old_nick))); // remove the secured timer. if there is one ircd::on_user_logout($nick); // we remove the registered mode if ($user = services::user_exists($nick, false, array('display', 'identified', 'validated', 'last_hostmask', 'suspended'))) { if ($user->validated == 0 && $user->suspended == 0) { ircd::on_user_logout($nick); // they shouldn't really have registered mode services::communicate(core::$config->nickserv->nick, $nick, &nickserv::$help->NS_AWAITING_VALIDATION); } elseif ($user->identified == 0 && $user->suspended == 0) { self::_registered_nick($nick, $user); } elseif ($user->identified == 1 && $user->last_hostmask == core::get_full_hostname($nick)) { ircd::on_user_login($nick); core::alog(core::$config->nickserv->nick . ': ' . core::$nicks[$nick]['ident'] . '@' . core::$nicks[$nick]['host'] . ' automatically identified for ' . $nick); } else { self::_registered_nick($nick, $user); } } // is the new nick registered? let them know } if (ircd::on_quit(&$ircdata)) { $nick = core::get_nick(&$ircdata, 0); timer::remove(array('ns_identify', 'secured_callback', array($nick))); // remove the secured timer. if there is one database::update('users', array('identified' => 0, 'last_timestamp' => core::$network_time), array('display', '=', $nick)); // change nick to unidentified imo } }