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

61 lines
3.1 KiB
Markdown
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.
# Athena Studios Launcher — Mobil (Android)
Athena'ya **kilitli**, sıfırdan yazılmış Android uygulaması (Kotlin + Jetpack Compose).
Masaüstü launcher ile **aynı backend**'i (`https://oyna.athenastudios.com.tr`) kullanır:
sunucu durumu, sürüm/changelog, opsiyonel modlar, ban kontrolü, metrik — ve modpack'i
indirip **SHA-256** ile doğrular. Yalnızca **1.12.2 Forge + oyna.athenastudios.com.tr**.
> **Motor notu:** Android'de Java Minecraft'ı fiilen çalıştıran motor (JRE + GL4ES)
> bu uygulamada yoktur; o iş **MojoLauncher**'a aittir. Bu uygulama "Athena katmanı"dır
> (marka + backend + modpack + kilit) ve iki şekilde motora bağlanır (`GameLauncher.kt`):
> **(A) Handoff** — kurulu MojoLauncher'ı başlatır (modpack zaten senkronlanmıştır);
> **(B) Embed** — MojoLauncher fork'una modül olarak gömülerek tek, tam-kilitli APK.
## Derleme
Gereksinimler: **Android Studio** (veya komut satırı), **JDK 17**, Android SDK 34.
```bash
cd AndroidLauncher
# Android Studio ile açın VEYA:
gradle assembleDebug # APK: app/build/outputs/apk/debug/app-debug.apk
```
> Bu Windows geliştirme makinesinde Android SDK yoktur; bu yüzden APK'yı **GitHub
> Actions** derler. Repo kökündeki `.github/workflows/android-release.yml` push'lanan
> `v*` etiketinde APK'yı CI'da derler ve **otomatik Release** olarak yayınlar.
> Bkz. ana `MOBILE.md`.
İsteğe bağlı: `app/src/main/res/` altına gerçek bir logo eklemek için
`images/athlogonoback.png`'yi `drawable/athena_logo.png` yapıp `AppRoot.kt`'te
`R.drawable.ic_launcher_foreground` yerine kullanın.
## Yapı
```
app/src/main/java/com/athenastudios/launcher/
├── AppConfig.kt # BASE_URL + sabitler (MojoLauncher paket adı)
├── MainActivity.kt # Compose host
├── AppViewModel.kt # durum + boot/ping/play akışı
├── data/
│ ├── Models.kt # @Serializable JSON modelleri (PascalCase)
│ └── BackendClient.kt # OkHttp + kotlinx.serialization (tüm uçlar)
├── core/
│ ├── Hwid.kt # kararlı cihaz kimliği (ban için)
│ ├── ModpackInstaller.kt # indirme + SHA-256 doğrulama + mods/ beyaz liste
│ └── GameLauncher.kt # motor handoff (MojoLauncher) / embed (TODO)
└── ui/
├── theme/Theme.kt # Athena dark Material3 teması
└── AppRoot.kt # Ana Sayfa + Modlar + ban ekranı
```
## Kilit modeli
- Sürüm/profil seçimi yoktur — sabit **1.12.2 Forge**, sunucu **oyna.athenastudios.com.tr**.
- **Zorunlu** modlar (`/api/index.json`) her zaman indirilir + SHA-256 doğrulanır (anti-cheat).
- **Opsiyonel** modlar (`/api/mods.json`) "Modlar" sekmesinden açılır/kapanır.
- `mods/` klasörü beyaz liste ile zorlanır: izinsiz/hile jar'lar senkronizasyonda silinir.
## Engine entegrasyonu (tam kilitli tek APK)
MojoLauncher (LGPLv3) fork'u önerilir; ayrıntılı adımlar ve hazır CI workflow için
ana **`MOBILE.md`** (Seçenek B). Hemen oynanabilir yol için (kod yok): MojoLauncher'a
`https://oyna.athenastudios.com.tr/api/modpack.mrpack` adresini içe aktarın.