示例#1
0
文件: modc_Pc.php 项目: sinfocol/gwf3
$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);