@extends('layouts.app') @section('title','Validação competitiva - GIGAX ARENA') @section('page_title','Validação competitiva') @php $crossfire = $verification['crossfire'] ?? []; $discord = $verification['discord'] ?? []; $teamspeak = $verification['teamspeak'] ?? []; $linkedAccounts = $verification['linked_accounts'] ?? []; $isComplete = !empty($verification['is_complete']); $crossfireOk = !empty($crossfire['verified']); $discordOk = !empty($discord['verified']); $teamspeakOk = !empty($teamspeak['verified']); $completedCount = collect([ $crossfireOk, $discordOk, $teamspeakOk, ])->filter()->count(); $progressPercent = (int) round(($completedCount / 3) * 100); $validationRequired = $validationRequired ?? true; /* |-------------------------------------------------------------------------- | Identidade usada no TeamSpeak |-------------------------------------------------------------------------- | Preferência: nickname do Discord vinculado/verificado. | Fallback: ID GIGAX numérico. Não usa nickname GIGAX como fallback. */ $discordNickname = trim((string) ($discord['username'] ?? '')); $gigaxIdText = trim((string) (auth()->id() ?? '')); $teamspeakLoginNickname = ($discordOk && $discordNickname !== '') ? $discordNickname : $gigaxIdText; if ($teamspeakLoginNickname === '') { $teamspeakLoginNickname = '0'; } /* |-------------------------------------------------------------------------- | TeamSpeak 3 - conexão direta com nickname Discord / fallback ID GIGAX |-------------------------------------------------------------------------- */ $tsHost = trim((string) ( config('teamspeak.host') ?: config('services.teamspeak.host') ?: env('TEAMSPEAK_HOST') ?: env('TS3_HOST') ?: '' )); $tsPort = (int) ( config('teamspeak.server_port') ?: config('services.teamspeak.port') ?: env('TEAMSPEAK_PORT') ?: env('TS3_SERVER_PORT') ?: 2027 ); if ($tsPort <= 0) { $tsPort = 2027; } $tsQuery = [ 'port' => $tsPort, 'nickname' => $teamspeakLoginNickname, ]; $tsConnectUrl = $tsHost !== '' ? 'ts3server://' . $tsHost . '?' . http_build_query($tsQuery, '', '&', PHP_QUERY_RFC3986) : '#'; // Link alternativo usa os mesmos dados; evita cair no nickname local antigo (ex.: Ronaldo). $tsConnectUrlAlt = $tsConnectUrl; $crossfirePrimaryNickname = trim((string) ( $crossfire['nickname'] ?? $crossfire['primary_nickname'] ?? $verification['crossfire_nickname'] ?? (auth()->user()->nickname ?? '') )); @endphp @section('content')