ArYetkili
Bu eklenti, Minecraft Paper 1.21.x sunucularında yetkili yönetimi ve takibi için geliştirilmiş LuckPerms entegrasyonlu bir yönetim aracıdır. Sunucu personelinin faaliyetlerini düzenlemek ve denetlemek amacıyla tasarlanmıştır. 1.0.0 sürümüyle sunuculara profesyonel bir yetkili takip sistemi sunar.
Genel Bakis
ArYetkili, staff ekibinizi tek bir yerden yönetmenizi sağlar. Yetki verme/alma, aktiflik takibi, performans puanlama, başarım rozeti, rapor sistemi, staff modu ve toplu işlemler gibi özellikleri kapsamlı bir GUI sistemiyle sunar. Tüm komutlar tek bir /yetkili komutu üzerinden çalışır.
Ozellikler
- Yetki Yönetimi -- LuckPerms üzerinden doğrudan rank verme/alma, hiyerarşi kontrolü, onay mekanizması
- Aktiflik Takibi -- Oturum bazlı süre ölçümü, haftalık/aylık dönemler, rank bazlı eşik değerleri
- AFK Tespiti -- Hareket, blok etkileşimi, chat ve komut bazlı AFK algılama
- Staff Modu -- Fly, god mode, vanish; envanter otomatik kaydetme/geri yükleme
- Rapor Sistemi -- Oyuncuların staff üyelerini raporlaması, cooldown, durum takibi (Açık/Çözüldü/Reddedildi)
- Görev Durumu -- Görevde / Meşgul / İzinli durumları, staff listesinde görünür
- Başarım Rozetleri -- 9 farklı başarım (ceza sayısı, aktiflik saati, seri, kıdem), otomatik kazanım
- Performans Puanlama -- 0-100 arası ağırlıklı skor (aktiflik, ceza, tutarlılık, başarım)
- Toplu İşlemler -- Birden fazla staff üzerinde aynı anda rank değişikliği
- GUI Paneli -- 19 ekranlı envanter tabanlı yönetim arayüzü
- Log Geçmişi -- Tüm yetki işlemlerinin kayıt altına alınması
- Discord Webhook -- Yetki değişikliklerinde Discord kanalına bildirim
- ArBan Entegrasyonu -- Ceza istatistiklerini performans skoruna dahil etme (opsiyonel)
- Çift Veritabanı -- SQLite (varsayılan) veya MySQL (HikariCP bağlantı havuzu)
- MiniMessage -- Tüm mesajlar MiniMessage formatında, tamamen özelleştirilebilir
Gereksinimler
| Gereksinim | Versiyon |
|---|---|
| Paper (veya fork) | 1.21.x |
| Java | 17+ |
| LuckPerms | 5.4+ |
| ArBan (opsiyonel) | 3.8+ |
Kurulum
ArYetkili-1.0.0.jardosyasını sunucunuzunplugins/klasörüne koyun.- Sunucuyu başlatın. Plugin
plugins/ArYetkili/config.ymldosyasını oluşturacaktır. config.ymldosyasını ihtiyacınıza göre düzenleyin./yetkili reloadile ayarları yeniden yükleyin.
Kaynaktan Derleme
# JDK 21 gereklidir (hedef Java 17)
cd ArYetkili
mvn clean package
# Çıktı: target/ArYetkili-1.0.0.jar
Komutlar
Tüm komutlar /yetkili ana komutu üzerinden çalışır. Aliaslar: /staff, /y
| Komut | Açıklama | İzin |
|---|---|---|
/yetkili |
GUI panelini açar (oyuncu) / Yardım gösterir (konsol) | aryetkili.gui |
/yetkili ver <oyuncu> [rank] |
Oyuncuya staff yetkisi verir | aryetkili.yetkiver |
/yetkili al <oyuncu> [-sebep <sebep>] |
Staff üyesinin yetkisini alır | aryetkili.yetkial |
/yetkili liste [rank] |
Staff listesini gösterir | aryetkili.list |
/yetkili bilgi <oyuncu> |
Staff üyesinin detaylı bilgisini gösterir | aryetkili.info |
/yetkili gecmis [oyuncu] [sayi] |
Yetki işlem loglarını görüntüler | aryetkili.log |
/yetkili mod |
Staff modunu açar/kapatır | aryetkili.staffmod |
/yetkili rapor <oyuncu> <sebep> |
Bir staff üyesini raporlar | aryetkili.report |
/yetkili gorev [gorevde|mesgul|izinli] |
Görev durumunu değiştirir | aryetkili.duty |
/yetkili gui |
GUI panelini açar | aryetkili.gui |
/yetkili reload |
Plugin ayarlarını yeniden yükler | aryetkili.reload |
/yetkili onayla |
Bekleyen işlemi onaylar | aryetkili.gui |
/yetkili iptal |
Bekleyen işlemi iptal eder | aryetkili.gui |
/yetkili senk |
LuckPerms'ten staff verisi senkronize eder | aryetkili.sync |
/yetkili yardim |
Komut yardımını gösterir | aryetkili.gui |
İzinler
| İzin | Açıklama | Varsayılan |
|---|---|---|
aryetkili.* |
Tüm izinler | op |
aryetkili.yetkiver |
Yetki verme | op |
aryetkili.yetkial |
Yetki alma | op |
aryetkili.list |
Staff listesi | op |
aryetkili.info |
Staff bilgisi | op |
aryetkili.log |
Log görüntüleme | op |
aryetkili.gui |
GUI erişimi | op |
aryetkili.config |
Config yönetimi | op |
aryetkili.reload |
Plugin reload | op |
aryetkili.sync |
LuckPerms senkronizasyonu | op |
aryetkili.staffmod |
Staff modu | op |
aryetkili.report |
Rapor gönderme | true |
aryetkili.report.manage |
Rapor yönetimi (çözme/reddetme) | op |
aryetkili.duty |
Görev durumu değiştirme | op |
aryetkili.bulk |
Toplu işlemler | op |
aryetkili.bypass |
Hiyerarşi kontrolünü atlama | false |
Yapılandırma
plugins/ArYetkili/config.yml dosyasından tüm ayarlar yönetilir.
Temel Ayarlar
general:
staff-permission: "aryetkili.staff" # Staff olarak kabul edilecek permission
default-group: "default" # Yetki alındığında atanacak grup
allow-self-remove: false # Kendi yetkisini kaldırabilir mi
confirmation-enabled: true # İki adımlı onay mekanizması
confirmation-timeout: 15 # Onay süresi (saniye)
Veritabanı
database:
type: "sqlite" # "sqlite" veya "mysql"
sqlite-file: "aryetkili.db"
mysql:
host: "localhost"
port: 3306
database: "aryetkili"
username: "root"
password: ""
pool:
maximum-pool-size: 10
minimum-idle: 2
Aktiflik Sistemi
activity:
afk-detection: true
afk-timeout: 300 # Saniye
period-type: "weekly" # "weekly" veya "monthly"
threshold-mode: "per-rank" # "global" veya "per-rank"
global-threshold: 5 # Saat
rank-thresholds:
helper: 3
moderator: 7
admin: 10
Discord Webhook
discord:
enabled: true
webhook-url: "https://discord.com/api/webhooks/..."
events:
staff-promote: true
staff-demote: true
luckperms-change: true
config-change: false
Diğer Modüller
Her modül enabled: true/false ile açılıp kapatılabilir:
| Modül | Config Anahtarı | Açıklama |
|---|---|---|
| Staff Modu | staff-mode.enabled |
Fly, god, vanish, envanter kaydetme |
| Rapor Sistemi | reports.enabled |
Cooldown süresi, staff bildirimi |
| Görev Durumu | duty.enabled |
Varsayılan durum, listede gösterme |
| Başarım Rozetleri | achievements.enabled |
Chat duyurusu |
| Performans Skoru | performance.enabled |
Ağırlık oranları (toplam 1.0) |
| Toplu İşlemler | bulk.enabled |
Maksimum seçim sayısı |
| Duyurular | announcements.enabled |
Promote/demote mesajları |
GUI Ekranları
Plugin 19 farklı GUI ekranı sunar:
| Ekran | Açıklama |
|---|---|
| Ana Menü | Staff listesi, aktiflik, loglar, config, raporlar, başarımlar |
| Staff Listesi | Sayfalı staff listesi, durum göstergeleri |
| Staff Detay | Bireysel staff profili, tüm istatistikler |
| Aktiflik | Staff aktiflik verileri |
| Log Geçmişi | Sayfalı yetki işlem kayıtları |
| Rapor Listesi | Durum filtreli rapor listesi |
| Rapor Detay | Rapor çözümleme/reddetme arayüzü |
| Başarımlar | 9 başarım rozeti görüntüleme |
| Top Staff | En aktif staff sıralaması |
| Dashboard | Genel istatistik paneli |
| Toplu İşlemler | Çoklu staff seçimi ve toplu rank değiştirme |
| Rank Seçimi | Yetki verme/toplu işlem için rank seçici |
| Ceza İstatistikleri | ArBan entegrasyonlu ceza verileri |
| Config | Oyun içi config yönetimi |
| Yardım | Komut ve kullanım bilgileri |
| Onay Ekranı | İşlem onay/iptal diyalogu |
Başarım Rozetleri
| Rozet | Koşul | Simge |
|---|---|---|
| İlk Ceza | 1 ceza verme | Tahta Kılıç |
| 50 Ceza | 50 ceza verme | Taş Kılıç |
| 100 Ceza | 100 ceza verme | Elmas Kılıç |
| 100 Saat | 100 saat aktiflik | Saat |
| 500 Saat | 500 saat aktiflik | Altın Elma |
| 1000 Saat | 1000 saat aktiflik | Büyülü Altın Elma |
| 7 Gün Seri | 7 gün üst üste giriş | Blaze Tozu |
| 30 Gün Seri | 30 gün üst üste giriş | Blaze Çubuğu |
| Kıdemli | 6 ay staff üyeliği | Nether Yıldızı |
Veritabanı Tabloları
| Tablo | Açıklama |
|---|---|
aryetkili_staff |
Staff üye bilgileri, rank, ilk yetki tarihi |
aryetkili_activity |
Aktiflik verileri (toplam, dönemsel) |
aryetkili_activity_history |
Dönemsel aktiflik arşivi |
aryetkili_logs |
Yetki işlem logları |
aryetkili_staff_reports |
Staff raporları |
aryetkili_achievements |
Kazanılan başarımlar |
Sorun Giderme (Troubleshooting)
Plugin ile ilgili bir sorun yaşıyorsanız öncelikle Java 17+ ve Paper 1.21.x sürümünde olduğunuzdan emin olun. LuckPerms (5.4+) eklentisinin yüklü ve çalışır durumda olduğunu kontrol edin. Veritabanı bağlantı hataları için config.yml dosyasındaki SQLite veya MySQL ayarlarını gözden geçirin; MySQL kullanıyorsanız bağlantı bilgilerinin doğruluğunu teyit edin. Komutlar çalışmıyorsa /yetkili komutu için gerekli yetkilere sahip olduğunuzdan emin olun. Hatalı davranışlar veya performans sorunları için plugins/ArYetkili/logs dizinindeki kayıtları inceleyebilir, sorun devam ederse konsol çıktısını hata raporu olarak iletebilirsiniz.
API Kullanımı
ArYetkili, geliştiricilerin eklenti verilerine erişebilmesi ve entegrasyon sağlayabilmesi için kapsamlı bir API sunar. Eklentiyi projenize dahil etmek için pom.xml dosyanıza bağımlılık olarak eklemeniz yeterlidir. API üzerinden; staff üyelerinin aktiflik sürelerini sorgulayabilir, performans puanlarına erişebilir, mevcut görev durumlarını (Görevde/Meşgul/İzinli) kontrol edebilir ve başarım rozeti verilerini çekebilirsiniz. Ayrıca, LuckPerms entegrasyonu sayesinde yetki değişikliklerini dinleyebilir ve rapor sistemi verilerine programatik olarak müdahale edebilirsiniz. Tüm işlemler ArYetkiliAPI sınıfı üzerinden yönetilmekte olup, veritabanı işlemlerinde HikariCP bağlantı havuzu ile yüksek performanslı veri alışverişi desteklenmektedir.