team->uuid))]; } public function uniqueId(): int { return $this->team->uuid; } public function handle() { try { $servers = $this->team->servers; $servers_count = $servers->count(); $limit = data_get($this->team->limits, 'serverLimit', 2); $number_of_servers_to_disable = $servers_count - $limit; ray('ServerLimitCheckJob', $this->team->uuid, $servers_count, $limit, $number_of_servers_to_disable); if ($number_of_servers_to_disable > 0) { ray('Disabling servers'); $servers = $servers->sortbyDesc('created_at'); $servers_to_disable = $servers->take($number_of_servers_to_disable); $servers_to_disable->each(function ($server) { $server->forceDisableServer(); $this->team->notify(new ForceDisabled($server)); }); } else if ($number_of_servers_to_disable === 0) { $servers->each(function ($server) { if ($server->isForceDisabled()) { $server->forceEnableServer(); $this->team->notify(new ForceEnabled($server)); } }); } } catch (\Throwable $e) { send_internal_notification('ServerLimitCheckJob failed with: ' . $e->getMessage()); ray($e->getMessage()); return handleError($e); } } }