Exemple #1
0
 public static function validateAdd($data)
 {
     $data = array_map('trim', $data);
     if (strpos($data['url'], '?') !== false) {
         $data['url'] = substr($data['url'], 0, strpos($data['url'], '?'));
     }
     if (Server::where('url', '=', $data['url'])->count() > 0) {
         return 'That server/API already exists';
     }
     $d = array('url' => $data['url'], 'host' => $data['host'], 'time' => $data['time'], 'port' => $data['port'], 'method' => $data['method'], 'custom' => $data['custom']);
     self::create($d);
     return true;
 }
 public function getSitemapServers()
 {
     $modpacks = Modpack::orderBy('created_at', 'desc')->get();
     $servers = Server::where('active', 1)->get();
     //index
     $this->sitemap->add(URL::to('servers'));
     foreach ($modpacks as $modpack) {
         $this->sitemap->add(URL::to('servers/' . $modpack->slug));
     }
     foreach ($servers as $server) {
         $this->sitemap->add(URL::to('server/' . $server->id . '/' . $server->slug), $server->updated_at);
     }
     return $this->sitemap->render('xml');
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     //Check servers that need to be updated.
     $this->info('Starting server update check.');
     $update_time = Carbon\Carbon::now()->subSeconds(Config::get('app.server_update_interval'))->toDateTimeString();
     $to_update = Server::where('active', 1)->where('queued', 0)->where('last_check', '<=', $update_time)->get();
     foreach ($to_update as $server) {
         $this->info('Queuing server ID ' . $server->id . ' for an update.');
         Queue::push('UpdateServer', ['server_id' => $server->id]);
         $server->queued = 1;
         $server->save();
     }
     $this->info('Finished server update check.');
     //Check for any servers that may be stalled for any reason.
     $this->info('Checking for stalled servers.');
     $last_update_time = Carbon\Carbon::now()->subMinutes(60)->toDateTimeString();
     $possible_stalled_servers = Server::where('active', 1)->where('queued', 1)->where('last_check', '<=', $last_update_time)->get();
     foreach ($possible_stalled_servers as $server) {
         $this->info('Resetting possible stalled server ID ' . $server->id . '.');
         $server->queued = 0;
         $server->save();
     }
     $this->info('Finished stalled server check.');
 }
 public function getServers()
 {
     $servers_array = [];
     $versions = [];
     $input = Input::only('modpack', 'tags', 'country', 'permission');
     $query = Server::where('active', 1);
     if ($input['modpack']) {
         $input_modpacks_array = explode(',', $input['modpack']);
         $query->where(function ($query) use($input_modpacks_array) {
             foreach ($input_modpacks_array as $modpack_id) {
                 $query->orWhere('modpack_id', $modpack_id);
             }
         });
     }
     if ($input['tags']) {
         $input_tags_array = explode(',', $input['tags']);
         foreach ($input_tags_array as $tag) {
             $query->whereHas('tags', function ($q) use($tag) {
                 $q->where('server_tags.id', '=', $tag);
             });
         }
     }
     if ($input['country']) {
         $query->where('country', $input['country']);
     }
     if ($input['permission']) {
         $query->where('permissions', $input['permission']);
     }
     $servers = $query->with('modpack')->with('status')->get();
     $countries = Server::countryList();
     $raw_versions = MinecraftVersion::all();
     foreach ($raw_versions as $v) {
         $versions[$v->id] = $v->name;
     }
     foreach ($servers as $server) {
         $server_status = $server->status;
         $modpack = $server->modpack;
         if ($server->server_address_hide == 1) {
             $server_address = 'Hidden / Private';
         } else {
             $server_address = $server->ip_host . ':' . $server->port;
         }
         $version_slug = $this->getVersion($versions[$modpack->minecraft_version_id]);
         $options = '';
         //1 = Whitelist
         //2 = Greylist
         //3 = Open
         switch ($server->permissions) {
             case 1:
                 $options = '<i class="fa fa-lock" title="Whitelist"></i>';
                 break;
             case 2:
                 $options = '<i class="fa fa-lock" title="Greylist"></i>';
                 break;
             case 3:
                 $options = '<i class="fa fa-unlock-alt" title="Open"></i>';
                 break;
         }
         $country_name = $countries[$server->country];
         $options .= '<span class="flag-icon flag-icon-' . strtolower($server->country) . '" title="' . $country_name . '"></span> ';
         $server_name = link_to_action('ServerController@getServer', $server->name, [$server->id, $server->slug]);
         $modpack = link_to_action('ModpackController@getModpack', $modpack->name, [$version_slug, $modpack->slug]);
         $players = $server_status->current_players . ' / ' . $server_status->max_players;
         $servers_array[] = ['id' => $server->id, 'name' => $server_name, 'modpack' => $modpack, 'options' => $options, 'server_address' => $server_address, 'players' => $players, 'deck' => $server->deck];
     }
     shuffle($servers_array);
     return $this->buildDTServerOutput($servers_array);
 }