X-Git-Url: http://git.pk910.de/?p=PHP-P10.git;a=blobdiff_plain;f=Uplink%2FP10_ModeSets.class.php;h=2515984924327babca14a522a77257a370b95b01;hp=96f8e7213e40afc4b4e58e2420bbfaedf582e82c;hb=811bc0c7a1f583fb624a0f8c3601146e063c5a25;hpb=7c09cdcfa033e6f6af0d79c451ab7e38feeb6517 diff --git a/Uplink/P10_ModeSets.class.php b/Uplink/P10_ModeSets.class.php index 96f8e72..2515984 100644 --- a/Uplink/P10_ModeSets.class.php +++ b/Uplink/P10_ModeSets.class.php @@ -1,6 +1,6 @@ self::MODE_TYPE_D, "R" => self::MODE_TYPE_D, "z" => self::MODE_TYPE_D, + "S" => self::MODE_TYPE_D, //special behavior "o" => self::MODE_TYPE_B, + "h" => self::MODE_TYPE_B, "v" => self::MODE_TYPE_B ); private static $modevalues = null; @@ -136,7 +138,7 @@ class P10_ChannelModeSet { trigger_error("unknown mode (".$mode.") on setModes (".$modes.").", E_USER_WARNING); continue; } - if($mode == "o" || $mode == "v") { + if($mode == "o" || $mode == "h" || $mode == "v") { if($this->setPrivs($add, $mode, $args[$c++])) { if($returndiff && $add) { $modestradd .= $mode; @@ -148,7 +150,7 @@ class P10_ChannelModeSet { } continue; } else if($mode == "b") { - if($this->handleBan($add, $mode, $args[$c++])) { + if($this->handleBan($add, $mode, $args[$c++])) { if($returndiff && $add) { $modestradd .= $mode; $paramstradd .= " ".$args[$c-1]; @@ -157,8 +159,8 @@ class P10_ChannelModeSet { $paramstrdel .= " ".$args[$c-1]; } } - continue; - } + continue; + } $flag = self::$modevalues[$mode]; if($add) { if($returndiff && !($this->modeflags & $flag)) { @@ -193,11 +195,11 @@ class P10_ChannelModeSet { } } - private function handleBan($add, $mode, $mask) { - //no ban management right now... - return true; - } - + private function handleBan($add, $mode, $mask) { + //no ban management right now... + return true; + } + private function setPrivs($add, $mode, $user) { $user = P10_User::getUserByNum($user); if($user == null) { @@ -207,6 +209,7 @@ class P10_ChannelModeSet { $privs = $this->channel->getUserPrivs($user); $privFlag = 0; if($mode == "o") $privFlag = P10_Channel::USERPRIV_OPED; + if($mode == "h") $privFlag = P10_Channel::USERPRIV_HALFOP; if($mode == "v") $privFlag = P10_Channel::USERPRIV_VOICE; if(!($add xor ($privs & $privFlag))) return false;