@extends('layouts.app') @section('title', ($player->nickname ?? 'Jogador') . ' - Perfil - GIGAX ARENA') @section('page_title', 'Perfil do jogador') @section('content') @php $avatar = $player->avatar_url ?? $player->avatar ?? null; $initial = mb_strtoupper(mb_substr(trim((string) ($player->nickname ?? 'J')), 0, 1)); $crossfireSecondary = []; if (!empty($player->crossfire_secondary_accounts ?? null)) { $decodedSecondary = json_decode((string) $player->crossfire_secondary_accounts, true); if (is_array($decodedSecondary)) { $crossfireSecondary = array_values(array_filter(array_map('strval', $decodedSecondary))); } } $discordPublicName = trim((string) (($player->discord_nickname ?? null) ?: ($player->discord_username ?? null) ?: '')); $crossfirePrimary = trim((string) ($player->crossfire_nickname ?? '')); @endphp
@if($avatar){{ $player->nickname }}@else{{ $initial }}@endif
PERFIL PÚBLICO

{{ $player->nickname }}

{{ $publicConfig['bio'] ?: 'Este jogador ainda não adicionou uma biografia.' }}

Nível {{ (int) ($player->skill_level ?? 1) }} @if(!empty($player->is_professional)) ★ JOGADOR PROFISSIONAL @endif @if($player->league_tag){{ $player->league_tag }}@endif Membro desde {{ \Carbon\Carbon::parse($player->created_at)->format('m/Y') }}
@if($isOwner)EDITAR MEU PERFIL@endif VOLTAR
PARTIDAS{{ number_format((int) $player->matches_played, 0, ',', '.') }}
VITÓRIAS{{ number_format((int) ($player->ranking_wins ?? $player->wins ?? 0), 0, ',', '.') }}
TAXA{{ number_format((float) $player->win_rate, 1, ',', '.') }}%
K/D{{ number_format((float) ($player->kd_ratio ?? 0), 2, ',', '.') }}
PONTOS{{ number_format((int) ($player->total_points ?? 0), 0, ',', '.') }}
MVPs{{ number_format((int) ($player->mvps ?? 0), 0, ',', '.') }}
CONFIGURAÇÕES

Setup público

@foreach([ 'Mouse' => $publicConfig['mouse'], 'DPI' => $publicConfig['dpi'], 'Sensibilidade' => $publicConfig['sensitivity'], 'Polling rate' => $publicConfig['polling_rate'] ?? '', 'Mousepad' => $publicConfig['mousepad'] ?? '', 'Resolução' => $publicConfig['resolution'], 'Monitor' => $publicConfig['monitor'], 'Teclado' => $publicConfig['keyboard'], 'Headset' => $publicConfig['headset'], 'Mira' => $publicConfig['crosshair'], ] as $label => $value)
{{ $label }}{{ $value ?: 'Não informado' }}
@endforeach
VALIDAÇÕES

Conta competitiva

Discord {{ ($player->discord_verification_status ?? '') === 'verified' ? ($discordPublicName !== '' ? $discordPublicName : 'Validado') : 'Pendente' }}
CrossFire @if(($player->crossfire_verification_status ?? '') === 'verified' && $crossfirePrimary !== '') {{ $crossfirePrimary }} @if(!empty($crossfireSecondary))
@foreach($crossfireSecondary as $index => $cfNickname) SEC {{ $index + 1 }} · {{ $cfNickname }} @endforeach
@endif @else Pendente @endif
TeamSpeak 3 {{ ($player->ts3_verification_status ?? '') === 'verified' ? (($player->ts3_last_nickname ?? '') ?: 'Validado') : 'Pendente' }}

Times

@forelse($teams as $team) [{{ $team->tag }}] {{ $team->name }}{{ strtoupper($team->role) }} @empty

Nenhum time ativo.

@endforelse
HISTÓRICO

Partidas recentes

@forelse($recentMatches as $match) @empty @endforelse
DataMapaResultadoKDARating
{{ $match->completed_at ? \Carbon\Carbon::parse($match->completed_at)->format('d/m/Y H:i') : '-' }} {{ $match->map_played ?? '-' }} {{ $match->result === 'win' ? 'VITÓRIA' : 'DERROTA' }} {{ $match->kills ?? 0 }}{{ $match->deaths ?? 0 }}{{ $match->assists ?? 0 }} {{ number_format((float) ($match->rating ?? 0), 2, ',', '.') }}
Nenhuma partida registrada.
@if($isAdmin && $adminData)
SOMENTE ADMINISTRADOR

Inspeção completa do Anti-Cheat

DADOS SENSÍVEIS
AC{{ !empty($adminData['status']->ac_online) ? 'ONLINE' : 'OFFLINE' }}
RISCO{{ $adminData['status']->risk_score ?? 0 }}
INCIDENTES{{ $adminData['incidents']->count() }}
EVIDÊNCIAS{{ $adminData['evidences']->count() }}
Status técnico
HWID{{ $adminData['status']->hwid ?? '-' }}
Machine ID{{ $adminData['status']->machine_id ?? '-' }}
Máquina{{ $adminData['status']->machine_name ?? '-' }}
IP{{ $adminData['status']->ip_address ?? '-' }}
Heartbeat{{ $adminData['status']->heartbeat_at ?? $adminData['status']->last_seen_at ?? '-' }}
Conexão{{ strtoupper($adminData['status']->connection_status ?? $adminData['status']->status ?? '-') }}
Capturas e evidências
@forelse($adminData['evidences'] as $evidence)
@if($evidence->evidence_url) Evidência {{ $evidence->id }} @else
SEM IMAGEM ENVIADA
@endif
{{ strtoupper($evidence->macro_type ?? $evidence->event_type ?? 'EVIDÊNCIA') }} Risco {{ $evidence->risk_score ?? 0 }} • {{ $evidence->detected_at ?? $evidence->created_at }} Processo: {{ $evidence->process_name ?: '-' }} Integridade: {{ strtoupper($evidence->integrity_status ?: '-') }} Site: {{ $evidence->sent_to_site ? 'SIM' : 'NÃO' }} • Discord: {{ $evidence->sent_to_discord ? 'SIM' : 'NÃO' }}
@empty

Nenhuma evidência registrada.

@endforelse
Incidentes
@forelse($adminData['incidents'] as $incident) @empty @endforelse
DataPartidaEventoSeveridadeStatusRisco
{{ $incident->detected_at ?? '-' }} {{ $incident->training_match_id ?? '-' }} {{ $incident->event_type ?? '-' }} {{ strtoupper($incident->severity ?? '-') }} {{ strtoupper($incident->status ?? '-') }} {{ $incident->risk_current ?? 0 }} / {{ $incident->risk_peak ?? 0 }}
Nenhum incidente registrado.
Dispositivos e sessões
@foreach($adminData['arenaDevices'] as $device)
{{ $device->computer_name ?: 'Dispositivo' }}{{ $device->device_uuid }}{{ $device->os_version }} • {{ $device->client_version }} • {{ $device->is_online ? 'ONLINE' : 'OFFLINE' }}
@endforeach @foreach($adminData['sessions'] as $session)
Sessão #{{ $session->id }}Device {{ $session->device_id }}{{ $session->is_online ? 'ONLINE' : 'OFFLINE' }} • {{ $session->last_heartbeat }}
@endforeach
@endif
{{-- GIGAX_PROFILE_ACTIONS_CLEAN_V1 --}} @php $gxViewerId = (int) (session('user_id') ?? auth()->id() ?? 0); $gxTargetId = (int) ($player->id ?? 0); @endphp @if($gxTargetId > 0 && $gxViewerId > 0 && $gxViewerId !== $gxTargetId)
💬 CONVERSAR
@endif {{-- /GIGAX_PROFILE_ACTIONS_CLEAN_V1 --}} @endsection @push('styles') @endpush