mirror of
https://github.com/Deathgarden-Rebirth/Deathgarden_Rebirth-Rewrite.git
synced 2026-09-10 04:05:22 -05:00
78 lines
1.8 KiB
PHP
78 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Responses\Api\Matchmaking;
|
|
|
|
use App\Enums\Game\Matchmaking\MatchmakingSide;
|
|
use App\Enums\Game\Matchmaking\MatchStatus;
|
|
use App\Models\Game\Matchmaking\Game;
|
|
|
|
class MatchData
|
|
{
|
|
public string $matchId;
|
|
|
|
public string $category = 'Steam-te-18f25613-36778-ue4-374f864b';
|
|
|
|
public string $rank = '1';
|
|
|
|
public int $creationDateTime;
|
|
|
|
public bool $excludeFriends = false;
|
|
|
|
public bool $excludeClanMembers = false;
|
|
|
|
public MatchStatus $status;
|
|
|
|
public ?string $creator;
|
|
|
|
/**
|
|
* @var string[]
|
|
*/
|
|
public array $players = [];
|
|
|
|
/**
|
|
* @var string[]
|
|
*/
|
|
public array $sideA = [];
|
|
|
|
/**
|
|
* @var string[]
|
|
*/
|
|
public array $sideB = [];
|
|
|
|
public object $customData;
|
|
|
|
public object $props;
|
|
|
|
public int $schema = 3;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->customData = new \stdClass();
|
|
$this->props = new \stdClass();
|
|
}
|
|
|
|
public static function fromGame(Game &$game): MatchData {
|
|
$data = new MatchData();
|
|
|
|
$data->matchId = $game->id;
|
|
$data->creationDateTime = $game->created_at->getTimestamp();
|
|
$data->status = $game->status;
|
|
$data->creator = $game->creator?->id;
|
|
|
|
$players = $game->players;
|
|
$data->players = $players->pluck('id')->toArray();
|
|
$data->sideA = $players->where('pivot.side', MatchmakingSide::Hunter->value)->pluck('id')->toArray();
|
|
$data->sideB = $players->where('pivot.side', MatchmakingSide::Runner->value)->pluck('id')->toArray();
|
|
|
|
if($game->session_settings !== '')
|
|
$data->customData = (object)[
|
|
'SessionSettings' => $game->session_settings,
|
|
];
|
|
|
|
$data->props = new MatchProperties(
|
|
$game->matchConfiguration,
|
|
);
|
|
|
|
return $data;
|
|
}
|
|
} |