ArAccountLocker
Versiyon: 1.0.0 Platform: Velocity Proxy 3.3.0+ Java: 17+
schedule
01
Özellikler
- IP Tabanlı Hesap Koruması - Belirli oyuncu hesaplarını önceden tanımlanmış IP adreslerine kilitler
- Giriş Engelleme - Yetkisiz IP adreslerinden gelen bağlantı taleplerini sunucuya bağlanmadan önce reddeder
- Discord Webhook Bildirimleri - Engellenen giriş denemelerini detaylı embed mesajlarıyla Discord'a bildirir
- Cooldown Sistemi - Aynı hesap için ardışık webhook bildirimlerini belirli saniye aralığında sınırlar (spam önleme)
- Debug Modu - Tüm giriş denemelerini konsola detaylı loglar
- Çoklu Dil Desteği - Dil dosyalarıyla tüm mesajlar özelleştirilebilir (varsayılan: Türkçe)
- MiniMessage Formatlama - Renk kodları ve metin biçimlendirme için MiniMessage desteği
- Anlık Yapılandırma Yükleme - Sunucuyu yeniden başlatmadan konfigürasyonu yeniden yükleyebilme
- Büyük/Küçük Harf Duyarsız - Kullanıcı adı kontrolü büyük/küçük harf farkı gözetmez
02
Gereksinimler
| Gereksinim | Minimum Versiyon |
|---|---|
| Java | 17+ |
| Velocity Proxy | 3.3.0-SNAPSHOT+ |
03
Kurulum
- Projeyi derleyin veya hazır JAR dosyasını indirin (
araccountlocker-1.0.0.jar) - JAR dosyasını Velocity sunucunuzun
plugins/klasörüne kopyalayın - Velocity sunucusunu başlatın veya yeniden başlatın
plugins/araccountlocker/klasöründe otomatik oluşturulanconfig.ymldosyasını düzenleyin- Korumak istediğiniz hesapları ve IP adreslerini
accountsbölümüne ekleyin - Değişiklikleri uygulamak için
/araccountlockerkomutunu çalıştırın veya sunucuyu yeniden başlatın
04
Komutlar
| Komut | Takma Ad | İzin | Açıklama |
|---|---|---|---|
/araccountlocker |
/acl |
araccountlocker.reload |
Eklenti konfigürasyonunu ve tüm yöneticileri yeniden yükler |
05
İzinler
| İzin | Açıklama |
|---|---|
araccountlocker.reload |
/araccountlocker komutunu kullanma yetkisi |
06
Yapılandırma (config.yml)
Eklenti ilk çalıştığında plugins/araccountlocker/config.yml dosyası otomatik olarak oluşturulur.
# Dil ayari - mesaj dosyasinin hangi dilde yuklenecegini belirler
# "tr" icin messages_tr.yml dosyasi kullanilir
language: "tr"
# Debug modu - tum giris denemelerini konsola loglar
# true: Tum girisler (basarili, basarisiz, korumasiz) loglanir
# false: Yalnizca hata ve uyarilar loglanir
debugmode: true
# Discord Webhook Ayarlari
webhook:
# Webhook bildirimlerini aktif/pasif yapar
enabled: true
# Discord webhook URL'si
url: "https://discord.com/api/webhooks/WEBHOOK_ID/WEBHOOK_TOKEN"
# Discord'da gorunecek bot kullanici adi
username: "ARAccountLocker"
# Discord'da gorunecek bot avatar URL'si (bos birakilabilir)
avatar-url: ""
# Embed mesajinin rengi (hex formati)
embed-color: "#ff0000"
# Embed mesajinin alt bilgi metni
footer-text: "ARAccountLocker Security"
# Ayni hesap icin ardisik webhook gonderimleri arasindaki bekleme suresi (saniye)
# Spam onlemek icin kullanilir
cooldown-seconds: 10
# Korunan hesaplar ve izinli IP adresleri
# Format: KullaniciAdi: IPAdresi
accounts:
OrnekOyuncu1: 192.168.1.100
OrnekOyuncu2: 10.0.0.50
Yapılandırma Açıklamaları
| Ayar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
language |
String | "tr" |
Mesaj dosyası dili (messages_XX.yml formatında) |
debugmode |
Boolean | true |
Debug log'larını aktifleştirir |
webhook.enabled |
Boolean | false |
Discord webhook bildirimlerini aktifleştirir |
webhook.url |
String | - | Discord webhook URL'si |
webhook.username |
String | "ARAccountLocker" |
Webhook bot adı |
webhook.avatar-url |
String | "" |
Webhook bot avatar URL'si |
webhook.embed-color |
String | "#ff0000" |
Embed rengi (hex formatı) |
webhook.footer-text |
String | "ARAccountLocker Security" |
Embed alt bilgi metni |
webhook.cooldown-seconds |
Integer | 60 |
Webhook cooldown süresi (saniye) |
accounts |
Map | - | KullaniciAdi: IPAdresi formatında korunan hesaplar |
07
Mesajlar (messages_tr.yml)
Dil dosyası plugins/araccountlocker/ klasöründe otomatik oluşturulur. MiniMessage formatı desteklenir.
# Tum mesajlarin basina eklenen on ek
prefix: "<dark_gray>[<red>ARAccountLocker<dark_gray>] "
# Yetkisiz IP'den giris yapildiginda oyuncuya gosterilen mesaj
kick-message: "<red><bold>ERISIM REDDEDILDI!</bold><br><gray>Bu hesaba sadece tanimli IP adreslerinden giris yapilabilir.<br>Yaptiginiz bu yetkisiz giris denemesi yoneticilere raporlandi."
# Basarili yapilandirma yeniden yukleme mesaji
reload-success: "<green>Eklenti basariyla yeniden yuklendi."
# Yetkisiz komut kullanimi mesaji
no-permission: "<red>Bunun icin yetkiniz yok."
MiniMessage Etiketleri
Mesajlarda kullanılabilecek bazı yaygın MiniMessage etiketleri:
| Etiket | Açıklama |
|---|---|
<red>, <green>, <gray> vb. |
Renk kodları |
<bold>, </bold> |
Kalın yazı |
<italic>, </italic> |
İtalik yazı |
<br> |
Satır sonu |
<dark_gray> |
Koyu gri renk |
08
Discord Webhook Entegrasyonu
Yetkisiz bir giriş denemesi engellendiğinde, eklenti aşağıdaki bilgileri içeren bir Discord embed mesajı gönderir:
| Alan | Açıklama |
|---|---|
| Hedef Hesap | Giriş yapılmaya çalışılan oyuncu adı |
| Deneyen IP | Bağlantı kurmaya çalışan IP adresi |
| İzinli IP | Hesap için tanımlı olan IP adresi |
| Durum | Giriş denemesinin sonucu (örneğin "Engellendi (IP Uyumsuz)") |
| Koruma Durumu | Hesabın koruma durumu (Aktif/Pasif) |
| Sunucu | Velocity Proxy sunucu adı |
| Tarih / Saat | Denemenin gerçekleştiği tarih ve saat (Europe/Istanbul saat dilimi) |
Webhook Kurulumu
- Discord sunucunuzda bir kanal seçin veya oluşturun
- Kanal ayarları > Entegrasyonlar > Webhook Oluştur
- Webhook URL'sini kopyalayın
config.ymldosyasındawebhook.urlalanına yapıştırınwebhook.enableddeğerinitrueolarak ayarlayın/aclkomutuyla konfigürasyonu yeniden yükleyin
09
Nasıl Çalışır
Oyuncu baglanti istegi gonderir
|
v
[PreLoginEvent yakalanir]
|
v
Oyuncu adi config'deki accounts listesinde var mi?
|
Hayir --> Girise izin verilir (korunmayan hesap)
|
Evet --> Gelen IP, tanimli IP ile eslesir mi?
|
Evet --> Girise izin verilir
|
Hayir --> Baglanti reddedilir
+ Kick mesaji gosterilir
+ Discord webhook bildirimi gonderilir (aktifse)
+ Debug log'a yazilir (aktifse)
Önemli Notlar
- IP kontrolü
PreLoginEventaşamasında gerçekleşir, yani oyuncu sunucuya tam olarak bağlanmadan önce engellenir - Kullanıcı adı karşılaştırması büyük/küçük harf duyarsızdır (
OrnekOyuncu=ornekoyuncu) - Webhook bildirimleri asenkron olarak gönderilir, sunucu performansını etkilemez
- Cooldown sistemi kullanıcı adı bazlıdır, her hesap için bağımsız çalışır