<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
phergie / phergie-irc-plugin-react-usermode example snippets
new \Phergie\Irc\Plugin\React\UserMode\Plugin(array(
// All configuration is optional
'prefixes' => array(
'@' => 'o',
'+' => 'v',
),
))
use Phergie\Irc\Bot\React\PluginInterface;
use Phergie\Irc\Bot\React\EventQueueInterface;
use Phergie\Irc\Plugin\React\Command\CommandEvent;
class FooPlugin implements PluginInterface
{
/**
* @var \Phergie\Irc\Plugin\React\UserMode\Plugin
*/
protected $userMode;
public function __construct(array $config)
{
// Validate $config['userMode']
$this->userMode = $config['userMode'];
}
public function getSubscribedEvents()
{
return array(
'command.foo' => 'handleFooCommand',
);
}
public function handleFooCommand(CommandEvent $event, EventQueueInterface $queue)
{
$connection = $event->getConnection();
$nick = $event->getNick();
$params = $event->getParams();
$source = $event->getCommand() === 'PRIVMSG'
? $params['receivers']
: $params['nickname'];
// Ignore events sent directly to the bot rather than to a channel
if ($connection->getNickname() === $source) {
return;
}
// Don't process the command if the user is not a channel operator
if (!$this->userMode->userHasMode($connection, $source, $nick, 'o')) {
return;
}
// The user is a channel operator, continue processing the command
// ...
}
}