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

  1. Projeyi derleyin veya hazır JAR dosyasını indirin (araccountlocker-1.0.0.jar)
  2. JAR dosyasını Velocity sunucunuzun plugins/ klasörüne kopyalayın
  3. Velocity sunucusunu başlatın veya yeniden başlatın
  4. plugins/araccountlocker/ klasöründe otomatik oluşturulan config.yml dosyasını düzenleyin
  5. Korumak istediğiniz hesapları ve IP adreslerini accounts bölümüne ekleyin
  6. Değişiklikleri uygulamak için /araccountlocker komutunu ç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

  1. Discord sunucunuzda bir kanal seçin veya oluşturun
  2. Kanal ayarları > Entegrasyonlar > Webhook Oluştur
  3. Webhook URL'sini kopyalayın
  4. config.yml dosyasında webhook.url alanına yapıştırın
  5. webhook.enabled değerini true olarak ayarlayın
  6. /acl komutuyla 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ü PreLoginEvent aş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

auto_awesome Benzer Projeler