Repository navigation
kAuth v1.0.3 - Bossbar, Countdown, Optimize
kAuth v1.0.3
Yeni Özellikler
Görsel Bekleme Ekranı
- Bossbar countdown (
effects.waiting.bossbar) - kalan süre progress bar ile - Title/subtitle countdown (
effects.waiting.title-countdown) - dialog açıkken de görünür, her saniye güncellenir - Arka plan ses döngüsü (
effects.waiting.sound-loop) - oyuncu sıkılmasın diye - Actionbar/bossbar/title mesajlarında
%time%placeholder (kalan saniye)
Yapılandırma
- Şifre tekrarı aç/kapa (
auth.require-password-confirmation)true→/kayit <şifre> <tekrar>(varsayılan)false→/kayit <şifre>(tek şifre, dialog'da ikinci alan gizlenir)
- Max login attempts varsayılan 5 → 3 (configurable)
- IP temp ban prelogin kontrolü (
auth.ip-ban-on-prelogin)- Bloklanan IP
AsyncPlayerPreLoginEvent'te kick edilir - Sunucu kaynağı harcamadan engellenir
- Kick mesajında kalan süre gösterilir
- Bloklanan IP
Düzeltmeler
/cikissonrası countdown/bossbar/title task'ları yeniden başlamıyordu →beginAuthFlowtam akış yeniden başlatır- Auth başarılı olunca title ekrandan temizlenmiyordu →
clearTitle()+ boş actionbar - Manuel logout sonrası session cache temizlenmiyor, reconnect'te auto-login oluyordu → session temizliği eklendi
- Admin
kayitsil/sifredegistirsonrası hedef oyuncu için tam auth flow yeniden başlatılıyor
Optimizasyonlar
- Global Settings cache (
config/Settings.java) - 20+ hot-path config değerivolatilefield'larda,/kauth reload'da yenilenir - PlayerProtectionListener tamamen Settings kullanıyor, her event'te config okuma yok
- Allowed commands O(1) Set lookup (önceden List traverse)
- PlayerMoveEvent
event.hasChangedBlock()shortcut +ignoreCancelled=true - Session state tek
Map<UUID, SessionEntry>(önceden 2 ayrı map) - JoinListener unified update task - actionbar + bossbar + title countdown tek timer'a birleşti (6 task → 3 task)
- Per-join AuthSession config cache - her tick config lookup yok
- DB + PBKDF2 async -
LoginCommand,RegisterCommand,ChangePasswordCommand, dialog callback'leri async thread'de
Performans Sonuçları (Spark Profiler)
60 saniye profil, 3 bot sürekli login/logout/wrong-password yük altında:
- Main thread kAuth CPU: %1.7
- Server genel: %94 idle
- DB toplam: 24ms / 60s (query başına ~0.4ms)
- PBKDF2 main thread'de sıfır (async çalışıyor)
Test Sonuçları
- 38/38 unit test (PasswordUtil, AuthMessage, SQLiteDatabase)
- 15/15 entegrasyon testi (Paper 1.21.11 sunucusunda mineflayer bot)
Kurulum
| Dosya | Nereye |
|---|---|
kAuth-1.0.3.jar |
Paper sunucusu plugins/ |
kAuth-Velocity-1.0.3.jar |
Velocity proxy plugins/ |
Config otomatik oluşturulur. Velocity plugin kullanıyorsan plugins/kauth/config.properties'te ignored-servers=limbo,filter ayarını yapabilirsin (LimboFilter uyumluluğu).