Files
Barış Keser 83be058d23 feat: Athena v2 — Discord auth, AthenaCore mod, cross-platform launcher, CI
Backend (PHP+SQLite): Discord OAuth2 + JWT, coklu hesap (1 Discord = 3-5),
tek-kullanimlik join token (/api/join/prepare+verify), custom skin yukleme/sunma,
hesap/Discord/HWID ban, admin paneli kartlari; deterministik offline UUID (PHP<->C#
paritesi dogrulandi). 25 entegrasyon testi gecti.

AthenaCore (Forge 1.12.2): tek client+server mod — join token dogrulama + kick,
grace-gate, custom skin uygulama. Sunucu offline-mode kalir (UUID/dunya verisi korunur).

Masaustu: WPF -> Avalonia (Windows+Linux), Discord giris/hesap/skin/oyna; WMI/DPAPI
yerine cross-platform (machine-id HWID, AES-GCM secret store). Derlenir + calisir.

CI: athenacore-mod.yml (JDK8), desktop-release.yml (Win+Linux self-contained).
Deploy: deploy.sh (.env uretimi, php-gd, nginx Authorization gecisi) + HANDOFF.md.
Android: backend hazir; entegrasyon spec'i ANDROID_INTEGRATION.md.
2026-06-13 23:45:21 +03:00

86 lines
6.0 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<UserControl x:Class="OfflineMinecraftLauncher.Pages.HomePage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid Margin="28,20,28,20">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- Kaydırılabilir içerik (taşarsa kaydırılır, hiçbir şey kırpılmaz) -->
<ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Auto" Padding="0,0,6,0">
<StackPanel>
<!-- Hero / welcome -->
<Border Style="{StaticResource Card}" Padding="22">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" VerticalAlignment="Center">
<TextBlock Text="Tekrar hoş geldin! 👋" FontSize="22" FontWeight="Bold"/>
<TextBlock Text="Athena Studios sunucusuna bağlanmak için kullanıcı adını gir ve OYNA'ya bas." Foreground="{StaticResource TextMutedBrush}" Margin="0,4,0,14" TextWrapping="Wrap"/>
<TextBlock Text="KULLANICI ADI" FontSize="11" Foreground="{StaticResource TextMutedBrush}" Margin="2,0,0,6"/>
<TextBox x:Name="UsernameBox" Style="{StaticResource BrandTextBox}" Width="320" HorizontalAlignment="Left" MaxLength="16" TextChanged="UsernameBox_TextChanged" KeyDown="UsernameBox_KeyDown"/>
</StackPanel>
<Border Grid.Column="1" Width="110" Height="170" Background="#22000000" CornerRadius="12" Margin="20,0,0,0">
<Image x:Name="SkinImage" Stretch="Uniform" Margin="10" RenderOptions.BitmapScalingMode="HighQuality"/>
</Border>
</Grid>
</Border>
<!-- Stat cards -->
<UniformGrid Columns="3" Margin="0,16,0,0">
<Border Style="{StaticResource Card}" Margin="0,0,8,0">
<StackPanel>
<TextBlock Text="SUNUCU DURUMU" FontSize="11" Foreground="{StaticResource TextMutedBrush}"/>
<StackPanel Orientation="Horizontal" Margin="0,8,0,0">
<Ellipse x:Name="StatusDot" Width="12" Height="12" Fill="{StaticResource TextMutedBrush}" VerticalAlignment="Center"/>
<TextBlock x:Name="ServerStatusText" Text="Kontrol ediliyor…" FontSize="16" FontWeight="SemiBold" Margin="8,0,0,0" VerticalAlignment="Center"/>
</StackPanel>
<TextBlock x:Name="ServerIpText" Text="" FontSize="11" Foreground="{StaticResource TextMutedBrush}" Margin="0,6,0,0"/>
</StackPanel>
</Border>
<Border Style="{StaticResource Card}" Margin="4,0,4,0">
<StackPanel>
<TextBlock Text="OYUNCULAR" FontSize="11" Foreground="{StaticResource TextMutedBrush}"/>
<TextBlock x:Name="PlayersText" Text="—" FontSize="22" FontWeight="Bold" Margin="0,6,0,0" Foreground="{StaticResource AccentGlowBrush}"/>
<TextBlock x:Name="PingText" Text="Gecikme: —" FontSize="11" Foreground="{StaticResource TextMutedBrush}" Margin="0,2,0,0"/>
</StackPanel>
</Border>
<Border Style="{StaticResource Card}" Margin="8,0,0,0">
<StackPanel>
<TextBlock Text="SÜRÜM" FontSize="11" Foreground="{StaticResource TextMutedBrush}"/>
<TextBlock x:Name="VersionText" Text="1.12.2" FontSize="22" FontWeight="Bold" Margin="0,6,0,0"/>
<TextBlock x:Name="LoaderText" Text="Forge" FontSize="11" Foreground="{StaticResource TextMutedBrush}" Margin="0,2,0,0"/>
</StackPanel>
</Border>
</UniformGrid>
<!-- News / changelog -->
<Border Style="{StaticResource Card}" Margin="0,16,0,0">
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="📋 SON GÜNCELLEME" FontSize="11" Foreground="{StaticResource TextMutedBrush}" VerticalAlignment="Center"/>
<Border Background="#332F81F7" CornerRadius="8" Padding="8,2" Margin="10,0,0,0">
<TextBlock x:Name="PackVersionText" Text="v0" FontSize="11" Foreground="{StaticResource AccentGlowBrush}" FontWeight="SemiBold"/>
</Border>
</StackPanel>
<TextBlock x:Name="NewsText" Text="Sürüm notları yükleniyor…" Foreground="{StaticResource TextBrush}" TextWrapping="Wrap" Margin="0,10,0,0"/>
</StackPanel>
</Border>
</StackPanel>
</ScrollViewer>
<!-- Pinned: progress + Play -->
<StackPanel Grid.Row="1" Margin="0,14,0,0">
<TextBlock x:Name="ProgressStatus" Text="Hazır" Foreground="{StaticResource TextMutedBrush}" FontSize="12" Margin="2,0,0,6"/>
<ProgressBar x:Name="FileBar" Style="{StaticResource BrandProgress}" Minimum="0" Maximum="100" Value="0" Margin="0,0,0,6"/>
<ProgressBar x:Name="ByteBar" Style="{StaticResource BrandProgress}" Minimum="0" Maximum="100" Value="0" Height="5"/>
<Button x:Name="PlayButton" Style="{StaticResource AccentButton}" Height="56" Margin="0,16,0,0" Click="PlayButton_Click">
<TextBlock Text="▶ OYNA" FontSize="20" FontWeight="Bold"/>
</Button>
</StackPanel>
</Grid>
</UserControl>