⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagehandler.php

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 PHP
📖 第 1 页 / 共 2 页
字号:
                                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 + -