Beispiel #1
0
 /**
  * Live Scoreboard
  *
  * @return array
  * @internal param int $id Server ID
  */
 public function population()
 {
     // Get active servers only
     $servers = Server::active()->get();
     // Sum the used slots
     $usedSlots = $servers->sum('usedSlots');
     // Sum the max slots
     $totalSlots = $servers->sum('maxSlots');
     // Init array
     $newCollection = [];
     foreach ($servers as $server) {
         // Convert the game name to lowercase
         $gameKey = strtolower($server->game->Name);
         // Add the server to the collection
         $newCollection[$gameKey]['servers'][] = $server;
     }
     foreach ($newCollection as $key => $collection) {
         $online = 0;
         $total = 0;
         foreach ($collection['servers'] as $server) {
             $online += $server->usedSlots;
             $total += $server->maxSlots;
         }
         $newCollection[$key]['stats'] = ['online' => $online, 'totalSlots' => $total, 'percentage' => MainHelper::percent($online, $total)];
     }
     return MainHelper::response(['online' => $usedSlots, 'totalSlots' => $totalSlots, 'percentage' => MainHelper::percent($usedSlots, $totalSlots), 'games' => $newCollection] + Lang::get('dashboard.population'), null, null, null, false, true);
 }
Beispiel #2
0
 /**
  * Shows the live scoreboard
  */
 public function scoreboard()
 {
     $servers = ['-1' => 'Select Server…'];
     Server::active()->get()->each(function ($server) use(&$servers) {
         $servers[$server->game->Name][$server->ServerID] = $server->ServerName;
     });
     if ($this->isLoggedIn && $this->user->ability(null, Cache::get('admin.perm.list')['scoreboard'])) {
         $perms = $this->user->ability(null, Cache::get('admin.perm.list')['scoreboard'], ['return_type' => 'array']);
         $permissions = $perms['permissions'];
         $validPermissions = $this->user->roles[0]->perms->filter(function ($perm) use(&$permissions) {
             if (array_key_exists($perm->name, $permissions) && $permissions[$perm->name]) {
                 return true;
             }
         })->map(function ($perm) {
             $p = clone $perm;
             $p->name = explode('.', $perm->name)[2];
             return $p;
         })->lists('display_name', 'name');
         $adminview = View::make('partials.scoreboard.admin.admin', compact('validPermissions', 'presetMessages'))->render();
     } else {
         $adminview = null;
     }
     return View::make('scoreboard', compact('servers', 'adminview'))->with('page_title', Lang::get('navigation.main.items.scoreboard.title'));
 }
Beispiel #3
0
 public function index()
 {
     $servers = Server::active()->with('stats')->get();
     return View::make('servers', compact('servers'));
 }