X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=Uplink%2FUplink.class.php;h=c88c2ea211c5870caa3e9e5441794b3be837650e;hb=26c1a000de0ca9bb9d6f19db544735737a9f8fcf;hp=703a98a7f1a1556cbaf24cdd86e905b1053b4af6;hpb=e09078c14e97702b57784db19089acce7789b21f;p=PHP-P10.git diff --git a/Uplink/Uplink.class.php b/Uplink/Uplink.class.php index 703a98a..c88c2ea 100644 --- a/Uplink/Uplink.class.php +++ b/Uplink/Uplink.class.php @@ -253,6 +253,15 @@ class Uplink { case "OM": $this->recv_mode($from, $arguments); break; + case "AC": + $this->recv_account($from, $arguments); + break; + case "FA": + $this->recv_fakehost($from, $arguments); + break; + case "NFH": + $this->recv_newfakehost($from, $arguments); + break; //default default: //unknown cmd @@ -702,7 +711,7 @@ class Uplink { if($channel == null) $channel = new P10_Channel($args[0]); $channel->getModes()->setModes($modes); - if($this->eventHandler) + if($this->eventHandler && strlen($from) != 2) $this->eventHandler->event_chanmode($user, $channel, $modes); } else { $targetUser = P10_User::getUserByNick($args[0]); @@ -715,6 +724,44 @@ class Uplink { $this->eventHandler->event_usermode($targetUser, $modes); } } + + private function recv_account($from, $args) { + $user = P10_User::getUserByNum($args[0]); + if($user == null) { + trigger_error("Server tries to send an auth announce from an user that does not exist or was not found on recv_account.", E_USER_ERROR); + return; + } + $auth = $args[1]; + $user->getModes()->setModes("+r ".$auth); + if($this->eventHandler) + $this->eventHandler->event_usermode($user, "+r ".$auth); + } + + private function recv_fakehost($from, $args) { + $user = P10_User::getUserByNum($args[0]); + if($user == null) { + trigger_error("Server tries to send a fakehost change from an user that does not exist or was not found on recv_fakehost.", E_USER_ERROR); + return; + } + $fakehost = $args[1]; + $user->getModes()->setModes("+f ".$fakehost); + if($this->eventHandler) + $this->eventHandler->event_usermode($user, "+f ".$fakehost); + } + + private function recv_newfakehost($from, $args) { + $user = P10_User::getUserByNum($args[0]); + if($user == null) { + trigger_error("Server tries to send a fakehost change from an user that does not exist or was not found on recv_fakehost.", E_USER_ERROR); + return; + } + $fakeident = $args[1]; + $fakehost = $args[2]; + $user->setIdent($fakeident); + $user->getModes()->setModes("+f ".$fakehost); + if($this->eventHandler) + $this->eventHandler->event_usermode($user, "+f ".$fakehost); + } /******************************************************************************************** * SERVER FUNCTIONS *