📄 messagehandler.php
字号:
unset($channel->bans[$hostmask]); } } else { $this->log(SMARTIRC_DEBUG_CHANNELSYNCING, 'DEBUG_CHANNELSYNCING: storing unknown channelmode ('.$mode.') in channel->mode for: '.$channel->name, __FILE__, __LINE__); if ($add) { $channel->mode .= $mode[$i]; } if ($remove) { $channel->mode = str_replace($mode[$i], '', $channel->mode); } } } } } } function _event_topic(&$ircdata) { if ($this->_channelsyncing == true) { $channel = &$this->_channels[strtolower($ircdata->rawmessageex[2])]; $channel->topic = $ircdata->message; } } function _event_privmsg(&$ircdata) { if ($ircdata->type == SMARTIRC_TYPE_CTCP) { // substr must be 1,4 because of \001 in CTCP messages if (substr($ircdata->message, 1, 4) == 'PING') { $this->message(SMARTIRC_TYPE_CTCP, $ircdata->nick, 'PING '.substr($ircdata->message, 5, -1)); } elseif (substr($ircdata->message, 1, 7) == 'VERSION') { if (!empty($this->_ctcpversion)) { $versionstring = $this->_ctcpversion.' | using '.SMARTIRC_VERSIONSTRING; } else { $versionstring = SMARTIRC_VERSIONSTRING; } $this->message(SMARTIRC_TYPE_CTCP, $ircdata->nick, 'VERSION '.$versionstring); } } } /* rpl_ */ function _event_rpl_welcome(&$ircdata) { $this->_loggedin = true; $this->log(SMARTIRC_DEBUG_CONNECTION, 'DEBUG_CONNECTION: logged in', __FILE__, __LINE__); // updating our nickname, that we got (maybe cutted...) $this->_nick = $ircdata->rawmessageex[2]; } function _event_rpl_motdstart(&$ircdata) { $this->_motd[] = $ircdata->message; } function _event_rpl_motd(&$ircdata) { $this->_motd[] = $ircdata->message; } function _event_rpl_endofmotd(&$ircdata) { $this->_motd[] = $ircdata->message; } function _event_rpl_umodeis(&$ircdata) { $this->_usermode = $ircdata->message; } function _event_rpl_channelmodeis(&$ircdata) { if ($this->_channelsyncing == true && $this->isJoined($ircdata->channel)) { $mode = $ircdata->rawmessageex[4]; $parameters = array_slice($ircdata->rawmessageex, 5); $ircdata->rawmessageex = array( 0 => '', 1 => '', 2 => '', 3 => $mode); foreach ($parameters as $value) { $ircdata->rawmessageex[] = $value; } // let _mode() handle the received mode $this->_event_mode($ircdata); } } function _event_rpl_whoreply(&$ircdata) { if ($this->_channelsyncing == true) { $nick = $ircdata->rawmessageex[7]; if ($ircdata->channel == '*') { // we got who info without channel info, so we need to search the user // on all channels and update him foreach ($this->_channels as $channel) { if ($this->isJoined($channel->name, $nick)) { $ircdata->channel = $channel->name; $this->_event_rpl_whoreply($ircdata); } } } else { if (!$this->isJoined($ircdata->channel, $nick)) { return; } $channel = &$this->_channels[strtolower($ircdata->channel)]; $user = &new Net_SmartIRC_channeluser(); $user->ident = $ircdata->rawmessageex[4]; $user->host = $ircdata->rawmessageex[5]; $user->server = $ircdata->rawmessageex[6]; $user->nick = $ircdata->rawmessageex[7]; $user->op = false; $user->voice = false; $user->ircop = false; $usermode = $ircdata->rawmessageex[8]; $usermodelength = strlen($usermode); for ($i = 0; $i < $usermodelength; $i++) { switch ($usermode[$i]) { case 'H': $user->away = false; break; case 'G': $user->away = true; break; case '@': $user->op = true; break; case '+': $user->voice = true; break; case '*': $user->ircop = true; break; } } $user->hopcount = substr($ircdata->rawmessageex[9], 1); $user->realname = implode(array_slice($ircdata->rawmessageex, 10), ' '); $this->_adduser($channel, $user); } } } function _event_rpl_namreply(&$ircdata) { if ($this->_channelsyncing == true) { $channel = &$this->_channels[strtolower($ircdata->channel)]; $userarray = explode(' ', rtrim($ircdata->message)); $userarraycount = count($userarray); for ($i = 0; $i < $userarraycount; $i++) { $user = &new Net_SmartIRC_channeluser(); $usermode = substr($userarray[$i], 0, 1); switch ($usermode) { case '@': $user->op = true; $user->nick = substr($userarray[$i], 1); break; case '+': $user->voice = true; $user->nick = substr($userarray[$i], 1); break; default: $user->nick = $userarray[$i]; } $this->_adduser($channel, $user); } } } function _event_rpl_banlist(&$ircdata) { if ($this->_channelsyncing == true && $this->isJoined($ircdata->channel)) { $channel = &$this->_channels[strtolower($ircdata->channel)]; $hostmask = $ircdata->rawmessageex[4]; $channel->bans[$hostmask] = true; } } function _event_rpl_topic(&$ircdata) { if ($this->_channelsyncing == true) { $channel = &$this->_channels[strtolower($ircdata->channel)]; $topic = substr(implode(array_slice($ircdata->rawmessageex, 4), ' '), 1); $channel->topic = $topic; } } /* err_ */ function _event_err_nicknameinuse(&$ircdata) { $this->_nicknameinuse(); }}?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -