$plugin = Dog::getPlugin(); $channel = Dog::getChannel(); $argv = $plugin->argv(); $argc = count($argv); if ($argc === 0) { # Show for yourself $argv[] = Dog::getUser()->getName(); $argc = 1; } if ($argc === 1) { # Show for a user if (false === ($user = Dog::getOrLoadUserByArg($argv[0]))) { Dog::rply('err_user'); } else { Dog_PrivChannel::flushPermcache($channel, $user); $privstr = Dog_PrivChannel::displayPrivs($channel, $user); $plugin->rply('show', array($user->displayName(), $privstr, $channel->displayLongName())); } } elseif ($argc === 2) { $argv[1] = Dog_IRCPriv::filterPrivsToEdit($argv[1]); # Alter Privs if (false === ($user = Dog::getOrLoadUserByArg($argv[0]))) { Dog::rply('err_user'); } elseif (!$user->isRegistered()) { $plugin->rply('not_regged', array($user->displayName())); } elseif ($argv[1][0] === '+' && strlen($argv[1]) > 1) { $u = Dog::getUser(); $have = Dog_PrivChannel::getPermbits($channel, $u); $want = Dog_IRCPriv::charsToBits(substr($argv[1], 1)); $high = Dog_IRCPriv::getHighestBit($have); $wigh = Dog_IRCPriv::getHighestBit($want);