App\Models\Multiplayer\Match::currentPlayers PHP Method

currentPlayers() public method

public currentPlayers ( )
    public function currentPlayers()
    {
        $players = [];
        if (!$this->end_time) {
            // match hasn't ended, i.e. ongoing match
            $join_events = $this->events()->whereIn('text', ['JOIN', 'PART'])->orderBy('event_id', 'asc')->get();
            foreach ($join_events as $event) {
                if ($event->text === 'JOIN') {
                    array_push($players, $event->user_id);
                } else {
                    array_splice($players, array_search($event->user_id, $players, true), 1);
                }
            }
        }
        return $players;
    }