fixed small "NICK_ALREADY_IN_USE" bug on kill/quit events and tidied up code style
authorpk910 <philipp@zoelle1.de>
Thu, 29 Dec 2011 18:03:57 +0000 (19:03 +0100)
committerpk910 <philipp@zoelle1.de>
Thu, 29 Dec 2011 18:03:57 +0000 (19:03 +0100)
Uplink/Uplink.class.php

index 6d73c62afd31105fe9b4a384d06b8402d5c5dd0a..27902d59857e39e71d6dd2342f670ad226e69100 100644 (file)
@@ -253,13 +253,13 @@ class Uplink {
                        case "OM":
                                $this->recv_mode($from, $arguments);
                                break;
-            case "AC":
+                       case "AC":
                                $this->recv_account($from, $arguments);
                                break;
-            case "FA":
+                       case "FA":
                                $this->recv_fakehost($from, $arguments);
                                break;
-            case "NFH":
+                       case "NFH":
                                $this->recv_newfakehost($from, $arguments);
                                break;
                //default
@@ -408,18 +408,18 @@ class Uplink {
                        trigger_error("Server tries to quit an user that does not exist or was not found on recv_quit.", E_USER_ERROR);
                        return;
                }
+               $user->quit($args[0]);
                if($this->eventHandler)
                        $this->eventHandler->event_quit($user, $args[0]);
-               $user->quit($args[0]);
        }
        
        private function recv_burst($from, $args) {
                $name = $args[0];
                $create_time = $args[1];
-        if(count($args) == 2) {
-            //we've got an empty channel without any modes set???  dead channel!
-            return;
-        }
+               if(count($args) == 2) {
+                       //we've got an empty channel without any modes set???  dead channel!
+                       return;
+               }
                $channel = P10_Channel::getChannelByName($name);
                if($channel == null)
                        $channel = new P10_Channel($name);
@@ -448,11 +448,11 @@ class Uplink {
                        }
                        if(count($uexp) > 1) {
                                $isop = false;
-                $ishalfop = false;
+                               $ishalfop = false;
                                $isvoice = false;
                                for($i = 0; $i < strlen($uexp[1]); $i++) {
                                        if($uexp[1][0] == "@") $isop = true;
-                    if($uexp[1][0] == "%") $ishalfop = true;
+                                       if($uexp[1][0] == "%") $ishalfop = true;
                                        if($uexp[1][0] == "+") $isvoice = true;
                                }
                        }
@@ -523,9 +523,9 @@ class Uplink {
                        trigger_error("Server tries to kill an user that does not exist or was not found on recv_quit.", E_USER_ERROR);
                        return;
                }
+               $user->quit($args[1]);
                if($this->eventHandler)
                        $this->eventHandler->event_quit($user, "Killed (".$args[1].")");
-               $user->quit($args[1]);
        }
        
        private function recv_privmsg($from, $args) {
@@ -722,21 +722,21 @@ class Uplink {
                                return;
                        }
                        $targetUser->getModes()->setModes($modes);
-            $fakemodes = NULL;
-            if($targetUser->getModes()->hasMode("x") && $targetUser->getModes()->hasMode("r") && !$targetUser->getModes()->hasMode("f")) {
-                //user is registered and has umode +x set (automatically assign default fakehost)
-                $fakemodes = "+f ".$targetUser->getModes()->hasMode("r").".".$this->getSetting("his_usermask");
-                $targetUser->getModes()->setModes($fakemodes);
-            }
+                       $fakemodes = NULL;
+                       if($targetUser->getModes()->hasMode("x") && $targetUser->getModes()->hasMode("r") && !$targetUser->getModes()->hasMode("f")) {
+                               //user is registered and has umode +x set (automatically assign default fakehost)
+                               $fakemodes = "+f ".$targetUser->getModes()->hasMode("r").".".$this->getSetting("his_usermask");
+                               $targetUser->getModes()->setModes($fakemodes);
+                       }
                        if($this->eventHandler) {
                                $this->eventHandler->event_usermode($targetUser, $modes);
-                if($fakemodes)
-                    $this->eventHandler->event_usermode($targetUser, $fakemodes);
-            }
+                               if($fakemodes)
+                                       $this->eventHandler->event_usermode($targetUser, $fakemodes);
+                       }
                }
        }
-    
-    private function recv_account($from, $args) {
+       
+       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);
@@ -744,20 +744,20 @@ class Uplink {
                }
                $auth = $args[1];
                $user->getModes()->setModes("+r ".$auth);
-        $fakemodes = NULL;
-        if($user->getModes()->hasMode("x") && !$user->getModes()->hasMode("f")) {
-            //user is registered and has umode +x set (automatically assign default fakehost)
-            $fakemodes = "+f ".$auth.".".$this->getSetting("his_usermask");
-            $user->getModes()->setModes($fakemodes);
-        }
-        if($this->eventHandler) {
-            $this->eventHandler->event_usermode($user, "+r ".$auth);
-            if($fakemodes)
-                $this->eventHandler->event_usermode($user, $fakemodes);
-        }
+               $fakemodes = NULL;
+               if($user->getModes()->hasMode("x") && !$user->getModes()->hasMode("f")) {
+                       //user is registered and has umode +x set (automatically assign default fakehost)
+                       $fakemodes = "+f ".$auth.".".$this->getSetting("his_usermask");
+                       $user->getModes()->setModes($fakemodes);
+               }
+               if($this->eventHandler) {
+                       $this->eventHandler->event_usermode($user, "+r ".$auth);
+                       if($fakemodes)
+                               $this->eventHandler->event_usermode($user, $fakemodes);
+               }
        }
-    
-    private function recv_fakehost($from, $args) {
+       
+       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);
@@ -765,22 +765,22 @@ class Uplink {
                }
                $fakehost = $args[1];
                $user->getModes()->setModes("+f ".$fakehost);
-        if($this->eventHandler)
-            $this->eventHandler->event_usermode($user, "+f ".$fakehost);
+               if($this->eventHandler)
+                       $this->eventHandler->event_usermode($user, "+f ".$fakehost);
        }
-    
-    private function recv_newfakehost($from, $args) {
+       
+       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];
+               $fakeident = $args[1];
                $fakehost = $args[2];
-        $user->setIdent($fakeident);
+               $user->setIdent($fakeident);
                $user->getModes()->setModes("+f ".$fakehost);
-        if($this->eventHandler)
-            $this->eventHandler->event_usermode($user, "+f ".$fakehost);
+               if($this->eventHandler)
+                       $this->eventHandler->event_usermode($user, "+f ".$fakehost);
        }
        
        /********************************************************************************************
@@ -800,27 +800,27 @@ class Uplink {
                        $this->send("N", $nick, $connect_time, $ident, $host, $modes, $ip, $numeric, $realname);
                }
                foreach(P10_Channel::getChannels() as $channel) {
-            $privs_to_burst = array('o',                        'h',                          'v'                         );
-            $priv_values =    array(P10_Channel::USERPRIV_OPED, P10_Channel::USERPRIV_HALFOP, P10_Channel::USERPRIV_VOICE );
-            $priv_combinations = array();
-            $sorted_users = array();
-            $combinations = pow(2, count($privs_to_burst)); //binary possibilities => 2^count($privs_to_burst)
-            for($i = 0; $i < $combinations; $i++) {
-                //make a binary number out of $i
-                $binary = decbin($i);
-                while(strlen($binary) < count($privs_to_burst))
-                    $binary = '0'.$binary;
-                $combination_name = '';
-                $combination_value = 0;
-                for($j = 0; $j < count($privs_to_burst); $j++) {
-                    if($binary[$j] == '1') {
-                        $combination_name .= $privs_to_burst[$j];
-                        $combination_value += $priv_values[$j];
-                    }
-                }
-                $priv_combinations[] = array("name" => $combination_name, "value" => $combination_value);
-                $sorted_users[$combination_value] = array();
-            }
+                       $privs_to_burst = array('o',                        'h',                          'v'                         );
+                       $priv_values =    array(P10_Channel::USERPRIV_OPED, P10_Channel::USERPRIV_HALFOP, P10_Channel::USERPRIV_VOICE );
+                       $priv_combinations = array();
+                       $sorted_users = array();
+                       $combinations = pow(2, count($privs_to_burst)); //binary possibilities => 2^count($privs_to_burst)
+                       for($i = 0; $i < $combinations; $i++) {
+                               //make a binary number out of $i
+                               $binary = decbin($i);
+                               while(strlen($binary) < count($privs_to_burst))
+                                       $binary = '0'.$binary;
+                               $combination_name = '';
+                               $combination_value = 0;
+                               for($j = 0; $j < count($privs_to_burst); $j++) {
+                                       if($binary[$j] == '1') {
+                                               $combination_name .= $privs_to_burst[$j];
+                                               $combination_value += $priv_values[$j];
+                                       }
+                               }
+                               $priv_combinations[] = array("name" => $combination_name, "value" => $combination_value);
+                               $sorted_users[$combination_value] = array();
+                       }
                        $local_users = false;
                        foreach($channel->getUsers() as $user) {
                                if(substr($user->getNumeric(), 0, 2) != $this->server->getNumeric()) continue; //skip users that are not on the local server
@@ -830,16 +830,16 @@ class Uplink {
                        }
                        if(!$local_users) continue;
                        $userStr = "";
-            foreach($priv_combinations as $combination) {
-                $i = 0;
-                foreach($sorted_users[$combination['value']] as $user) {
-                    if($userStr != "") $userStr.=",";
-                    $userStr .= $user->getNumeric();
-                    if(($i++) == 0 && $combination['value'] > 0) {
-                        $userStr .= ":".$combination['name'];
-                    }
-                }
-            }
+                       foreach($priv_combinations as $combination) {
+                               $i = 0;
+                               foreach($sorted_users[$combination['value']] as $user) {
+                                       if($userStr != "") $userStr.=",";
+                                       $userStr .= $user->getNumeric();
+                                       if(($i++) == 0 && $combination['value'] > 0) {
+                                               $userStr .= ":".$combination['name'];
+                                       }
+                               }
+                       }
                        $banString = "";
                        //TODO: Build ban String
                        $burstString = "";
@@ -919,7 +919,7 @@ class Uplink {
                        if(($this->flags & self::FLAG_CONNECTED)) {
                                $modestr = "+".(($privs & P10_Channel::USERPRIV_OPED) ? "o" : "").(($privs & P10_Channel::USERPRIV_HALFOP) ? "h" : "").(($privs & P10_Channel::USERPRIV_VOICE) ? "v" : "");
                                $modestr .= (($privs & P10_Channel::USERPRIV_OPED) ? " ".$user->getNumeric() : "");
-                $modestr .= (($privs & P10_Channel::USERPRIV_HALFOP) ? " ".$user->getNumeric() : "");
+                               $modestr .= (($privs & P10_Channel::USERPRIV_HALFOP) ? " ".$user->getNumeric() : "");
                                $modestr .= (($privs & P10_Channel::USERPRIV_VOICE) ? " ".$user->getNumeric() : "");
                                $this->send("OM", $user->getNumeric(), $chanName, $modestr);
                        }