hashworks / phergie-whois-on-join-plugin
v1.0.1
2015-02-17 10:25 UTC
Requires
This package is not auto-updated.
Last update: 2019-02-20 18:26:13 UTC
README
Phergie 插件,用于在用户加入时进行 whois 查询并处理结果。
已废弃!
此插件已废弃。进一步的开发将在 PhergieUserWatch 上继续。
关于
此插件最初是为了防止 Rizon 网络中越来越多的 chan-whore-monitoring-bots 进入频道而编写的。但是,您可以利用 whois 结果做您想做的事,这需要一些 PHP 知识。
安装
通过 Composer 安装,使用以下命令,它将自动检测最新版本并将其与 ~ 绑定。
composer require hashworks/phergie-whois-on-join-plugin
有关如何安装和启用插件的更多信息,请参阅 Phergie 文档 安装和启用插件。
配置示例
// Simple example, give voice to every user who joins the channel. new \hashworks\Phergie\Plugin\WhoisOnJoin\Plugin(function(\hashworks\Phergie\Plugin\WhoisOnJoin\WhoisResult $whoisResult) { $whoisResult->setChannelMode('+v', $whoisResult->getNick()); })
// Kick everyone who isn't using a secure connection. new \hashworks\Phergie\Plugin\WhoisOnJoin\Plugin(function(\hashworks\Phergie\Plugin\WhoisOnJoin\WhoisResult $whoisResult) { if (!$whoisResult->hasSecureConnection()) { $whoisResult->kick('This channel requires a secure connection.'); } })
// This is how I use it. Kickban every user who is in 13 channels or more. Ban based on nick and username, replace numbers with question marks. new \hashworks\Phergie\Plugin\WhoisOnJoin\Plugin(function(\hashworks\Phergie\Plugin\WhoisOnJoin\WhoisResult $whoisResult) { if (count($whoisResult->getChannels()) >= 13) { $strReplaceNumbers = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); $banMask = preg_replace_callback('/^(?<nick>.+?)(?<nicknumbers>[0-9]{0,})!(?<username>.+?)(?<usernumbers>[0-9]{0,})@.+$/', function ($matches) { return $matches['nick'] . str_replace($strReplaceNumbers, '?', $matches['nicknumbers']) . '!' . $matches['username'] . str_replace($strReplaceNumbers, '?', $matches['usernumbers']) . '@*'; }, $whoisResult->getNick() . '!' . $whoisResult->getUsername() . '@' . $whoisResult->getHost()); if (!empty($banMask)) { $whoisResult->setChannelMode('+b', $banMask); $whoisResult->privmsgUser('You have been banned automatically from ' . $whoisResult->getEvent()->getSource() . '. Please contact hashworks to fill a complaint.'); } $whoisResult->kick('You have been kicked automatically. Please contact hashworks to fill a complaint.'); } })