$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); if ($wigh > $high) { $plugin->rply('no', array(Dog_IRCPriv::displayBits($wigh, ''), $user->displayName())); } else { $now = Dog_PrivChannel::getPermbits($channel, $user) | $want; Dog_PrivChannel::setPermbits($channel, $user, $now); $plugin->rply('set', array($user->displayName(), $channel->displayLongName(), Dog_IRCPriv::displayBits($now))); } } elseif ($argv[1][0] === '-') { $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); if ($wigh >= $high) { $plugin->rply('no2', array(Dog_IRCPriv::displayBits($wigh, ''), $user->displayName())); } else { $now = Dog_PrivChannel::getPermbits($channel, $user) & ~$want; Dog_PrivChannel::setPermbits($channel, $user, $now); $plugin->rply('set', array($user->displayName(), $channel->displayLongName(), Dog_IRCPriv::displayBits($now))); } } else { $plugin->rply('err_bits'); } } else { $plugin->showHelp(); }