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

5.6 KiB
Raw Permalink Blame History

Athena Studios Launcher — Telefon (Android) Sürümü

Bu belge, launcher'ın telefonda (Android) çalışması için 3 katmanı açıklar. Hedef: oyuncular yalnızca Athena modpack'ini (Minecraft 1.12.2 Forge) yükleyip oyna.athenastudios.com.tr sunucusuna girsin.

Önemli teknik gerçek (dürüstçe): Android'de Minecraft Java Edition'ı çalıştırmak (özel JRE + OpenGL ES çevirisi + LWJGL) devasa bir native motor işidir. Bu motoru "sıfırdan" yazmak gerçekçi değildir. En iyi çalışan açık kaynak motor MojoLauncher'dır (LGPLv3, PojavLauncher tabanlı). Dolayısıyla "sıfırdan APK" = MojoLauncher'ı fork'layıp Athena'ya kilitlemek ve kendi markamızla, kendi backend'imizle, GitHub Actions ile otomatik APK derleyip yayınlamak demektir. Aşağıdaki üç seçenek bunu kapsar.


Seçenek A — Hemen çalışan yol (kod yok, 5 dakika)

Backend yayında olduğunda (bkz. WebBackend/deploy.sh) telefon kullanıcısı:

  1. MojoLauncher'ı kurar — https://mojolauncher.org/ / https://github.com/mojolauncher/mojolauncher
  2. Modpack içe aktarma ekranından şu .mrpack adresini verir:
    https://oyna.athenastudios.com.tr/api/modpack.mrpack
    
  3. MojoLauncher 1.12.2 Forge'u kurar, Athena modlarını + configleri indirir, sunucuya girilir.

Bu uç (/api/modpack.mrpack) backend tarafından otomatik üretilir: files/ içindeki modlardan standart Modrinth modpack (sha1+sha512 + indirme URL'leri, configler overrides/ altında, dependencies: {minecraft:1.12.2, forge:14.23.5.2860}). PrismLauncher, ATLauncher, Modrinth App ve Pojav/Amethyst de aynı dosyayı içe aktarabilir.

Bu yol kilitli değildir (kullanıcı başka şey de kurabilir). Tam kilit için Seçenek B.


Seçenek B — Kilitli özel APK (MojoLauncher fork) ⭐ önerilen

Kendi markalı, yalnızca Athena'ya kilitli APK. Adımlar:

  1. Fork'la: https://github.com/mojolauncher/mojolauncher (LGPLv3 — fork'unuz da LGPLv3 kalmalı).
  2. Özelleştir (app_pojavlauncher modülü):
    • Marka: uygulama adı "Athena Studios", ikon (minecraft.ico/logo), renkler (#0E1116 / #2F81F7).
    • Otomatik modpack: ilk açılışta backend'den modpack'i indir. En kolayı: açılışta https://oyna.athenastudios.com.tr/api/modpack.mrpack'i MojoLauncher'ın mevcut modpack import akışına programatik ver (kullanıcıya seçtirmeden).
    • Kilit: sürüm/hesap/profil seçim ekranlarını gizle; doğrudan 1.12.2 Forge profilini başlat ve oyna.athenastudios.com.tr'ye otomatik bağlan (servers.dat'a sunucuyu yaz veya başlatma argümanına --server ekle).
    • Anti-cheat: modları indirdikten sonra SHA-256 doğrula (backend /api/index.json).
  3. CI ile otomatik release: fork'a aşağıdaki workflow'u ekleyin (build komutu MojoLauncher'a göre :app_pojavlauncher:assembleDebug):
    name: Athena APK
    on: { push: { tags: ['v*'] }, workflow_dispatch: {} }
    permissions: { contents: write }
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
            with: { submodules: recursive }
          - uses: actions/setup-java@v4
            with: { distribution: temurin, java-version: '17' }
          - uses: android-actions/setup-android@v3
          - run: chmod +x gradlew && ./gradlew :app_pojavlauncher:assembleDebug --no-daemon --stacktrace
          - uses: softprops/action-gh-release@v2
            with:
              files: app_pojavlauncher/build/outputs/apk/**/*.apk
            env: { GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' }
    
    Artık git tag v1.0.0 && git push --tags → APK otomatik derlenir ve Release'e eklenir.

Bu, yerel Android SDK gerektirmez — derlemeyi GitHub runner'ı yapar.


Seçenek C — Athena companion uygulaması (AndroidLauncher/)

Bu repodaki AndroidLauncher/ — sıfırdan yazılmış Athena markalı Kotlin/Compose uygulaması (Athena katmanı): backend'e bağlanır (config/sürüm/durum/haber/ban/metrik), modpack'i indirir + SHA-256 doğrular, ve motoru (MojoLauncher) çağırır/gömer. Detaylar ve derleme: AndroidLauncher/README.md.

Bu projeyi GitHub Actions ile derleyip yayınlamak için repo kökündeki workflow hazırdır: .github/workflows/android-release.yml (v* tag push'unda APK üretir + Release'e ekler).

Not: Companion uygulamanın arayüz + backend + modpack katmanı tamdır; ancak Minecraft'ı fiilen çalıştıran motor MojoLauncher fork'undan gelir (Seçenek B). "Tek APK, tam kilitli" sonucu için Seçenek B + C birleştirilir (Athena katmanı fork'a modül olarak eklenir).


Backend tarafı (zaten hazır)

  • GET /api/modpack.mrpack — Athena modpack'i (Modrinth formatı) — otomatik üretilir, test edildi.
  • Aynı backend masaüstü launcher ile ortaktır: /api/server_config.json, /api/index.json, /api/mods.json, /api/version.json, /api/ping, /api/check_ban, /api/metric/*.
  • Kurulum: WebBackend/deploy.sh (nginx + PHP-FPM + php-zip + certbot). php-zip .mrpack üretimi için gereklidir (deploy script'inde kuruludur).

Lisans / kaynaklar

MojoLauncher/Pojav LGPLv3/GPLv3 olduğundan, fork'unuzu da aynı lisansla ve kaynak kodunu erişilebilir tutarak yayınlamalısınız.