class Server extends Model
{
public static function status()
{
return Cache::remember('server_status', 60, function()
{
$host = env('GAMESERVER_HOST','127.0.0.1');
$port = env('GAMESERVER_PORT',7777);
if(@fsockopen((string) $host, (int) $port, $errno, $errstr, 1)){
return true;
}
return false;
});
}
public static function online()
{
if( !self::status() ) return 0;
return Cache::remember('server_online', 60, function(){
$server_online = DB::connection('game')->table('characters')
->where('online', true)
->select('id')->count();
return $server_online * config('app.online_multiplier',1);
});
}
public static function topUsers()
{
return Cache::remember('top_users', 60, function(){
return DB::connection('game')->table('characters')
->select(['char_name','pvpkills','pkkills'])
->where('pvpkills','>',0)
->orderBy('pvpkills','desc')->limit(10)->get();
});
}
}