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

23 lines
710 B
C#

using System.Collections.Generic;
namespace OfflineMinecraftLauncher.Services;
/// <summary>A Minecraft account registered under the logged-in Discord user.</summary>
public class Account
{
public int Id { get; set; }
public string Username { get; set; } = "";
public string Uuid { get; set; } = "";
public bool IsBanned { get; set; }
public string? SkinHash { get; set; }
public string? SkinModel { get; set; }
}
/// <summary>Encrypted-at-rest auth blob (JWT + per-account Yggdrasil-style secrets).</summary>
public class AuthData
{
public string? Jwt { get; set; }
public long JwtExp { get; set; }
public Dictionary<int, string> AccountSecrets { get; set; } = new();
}