Ejemplo n.º 1
0
 public function onPlayerConnect($login, $isSpectator)
 {
     $menu = Menu::Create($login);
     $menu->setPosition(136, 45);
     $menu->setScale(0.8);
     $menu->clearItems();
     foreach ($this->menu as $section) {
         switch (count($section['buttons'])) {
             case 0:
                 break;
             case 1:
                 if (!$section['buttons'][0]['admin'] || AdminGroup::contains($login)) {
                     $menu->addFinalItem($section['name'], $section['icon'], $section['buttons'][0]['callback']);
                 }
                 break;
             default:
                 $entry = $menu->addItem($section['name'], $section['icon']);
                 foreach ($section['buttons'] as $button) {
                     if (!$button['admin'] || AdminGroup::contains($login)) {
                         $entry->addSubitem($button['name'], $button['callback']);
                     }
                 }
         }
     }
     $menu->show();
 }
Ejemplo n.º 2
0
 function onEndMap($rankings, $map, $wasWarmUp, $matchContinuesOnNextMap, $restartMap)
 {
     if ($wasWarmUp || $restartMap) {
         return;
     }
     $config = Config::getInstance();
     $freePlaces = $this->storage->server->nextMaxPlayers - count($this->mapsPlayed);
     $nbToKick = max(0, min($config->lastToKick, count($this->queue)) - $this->outThisMatch - $freePlaces);
     while ($nbToKick > 0 && !empty($rankings)) {
         $ranking = array_pop($rankings);
         $login = $ranking['Login'];
         if (isset($this->mapsPlayed[$login]) && $this->mapsPlayed[$login] > 0 && !($config->ignoreAdmins && AdminGroup::contains($login))) {
             if ($config->queueInsteadOfKick) {
                 $this->connection->forceSpectator($login, 1);
                 $this->lastWorst[] = $login;
             } else {
                 $this->connection->kick($login);
             }
             --$nbToKick;
         }
     }
 }
Ejemplo n.º 3
0
 function onPlayerConnect($login, $isSpectator)
 {
     if (AdminGroup::contains($login) || in_array($login, $this->whiteList)) {
         return;
     }
     $blacks = $whites = 0;
     foreach ((array) Config::getInstance()->readFrom as $circle) {
         $karma = $this->wsClient->getKarma($circle, $login);
         $blacks += $karma->blacks;
         $whites += $karma->whites;
     }
     foreach ($this->preparedRules as $rule) {
         switch ($rule->check($blacks, $whites)) {
             case -2:
                 $this->addToBlackList(null, $login);
                 return;
             case -1:
                 $this->connection->kick($login, 'You\'re not a trusted player');
             case 1:
                 return;
             case 2:
                 $this->addToWhiteList(null, $login);
                 return;
         }
     }
 }
 function onPlayerDisconnect($login, $disconnectionReason)
 {
     if (AdminGroup::contains($login)) {
         unset($this->connectedAdmins[$login]);
     }
 }