ArceniaRapor
Bu eklenti, 1.20 ve üzeri sürümlerdeki Spigot ve Paper sunucuları için Java 17 tabanlı olarak geliştirilmiş 1.0 sürümünde bir araçtır. Sunucu performansını ve işlevselliğini artırmak amacıyla tasarlanmış olup, güncel Minecraft altyapılarıyla tam uyumlu çalışır. Kurulumu ve yönetimi kolay olan bu yapı, sunucu sahiplerine stabil bir deneyim sunmayı hedefler.
Kısa Açıklama
ArceniaReport, Minecraft sunucuları için geliştirilmiş kapsamlı bir oyuncu raporlama ve yönetim eklentisidir. Oyuncuların kural ihlali yapan diğer oyuncuları kategoriye göre raporlamasını, yetkililerin bu raporları GUI tabanlı paneller üzerinden incelemesini, kontrol etmesini ve arşivlemesini sağlar. Dinamik öncelik sistemi, Discord webhook entegrasyonu, PlaceholderAPI desteği, SQLite/MySQL çift veritabanı desteği, otomatik arşivleme, ArBan ceza entegrasyonu, toplu rapor işlemleri, rapor arama ve otomatik config yönetimi gibi gelişmiş özellikler içerir.
Özellikler
Raporlama
- Kategori tabanlı raporlama: Oyuncular rapor oluştururken bir GUI menüsünden sebep kategorisi seçer (Hile Kullanımı, Hakaret/Küfür, Bug Kullanımı, Reklam, Diğer).
- Cooldown sistemi: Aynı oyuncuya belirli süre içinde tekrar rapor atılması engellenir.
- Kendini raporlama koruması: Oyuncuların kendilerini raporlaması engellenebilir.
- Tekrar eden rapor tespiti: Aynı oyuncuya aynı sebepten kısa süre içinde birden fazla rapor geldiğinde yetkililere özel uyarı gönderilir.
Yönetim Paneli
- GUI tabanlı yönetim: Tüm rapor işlemleri (listeleme, kontrol, arşivleme, istatistik) Minecraft envanter menüleri üzerinden yapılır.
- Toplu rapor işlemleri: Bir oyuncuya ait tüm bekleyen raporlar tek tıklamayla kontrol edilebilir veya tüm kontrol edilmiş raporlar tek tıklamayla arşivlenebilir.
- Rapor arama:
/rep ara <kelime>komutu ile raporlarda metin araması yapılabilir. Sonuçlar GUI menüde sayfalı olarak gösterilir. - Sayfalama ve sıralama: Tüm listeleme menülerinde sayfa navigasyonu ve sıralama (En Yeni, İsim, Sayı) desteği vardır.
- Oyuncu bilgi paneli: Belirli bir oyuncunun tüm rapor geçmişi tek menüden görüntülenebilir.
- İstatistik paneli: En çok raporlanan oyuncuların sıralaması ve genel rapor istatistikleri.
- Işınlanma desteği: Yetkililer, raporlanan oyuncuya menüden Shift+Tık ile ışınlanabilir.
- Kontrol sebebi seçim menüsü: Hazır sebeplerden seçim veya manuel sebep girişi.
Öncelik Sistemi
- Dinamik öncelik: Bekleyen rapor sayısına göre otomatik öncelik seviyesi atanır (Düşük, Orta, Yüksek, Kritik).
- Manuel öncelik değiştirme: Yetkililer, Bekleyenler menüsünde orta tıklama ile bir oyuncunun öncelik seviyesini manuel olarak değiştirebilir. Manuel öncelik ayarlandığında otomatik hesaplama devre dışı kalır.
Entegrasyonlar
- Discord webhook: Yeni rapor, kontrol ve arşivleme işlemleri Discord kanallarına otomatik bildirim gönderir.
- ArBan entegrasyonu: Oyuncuya verilen cezalar ilgili raporları otomatik olarak sonuçlandırır.
- PlaceholderAPI entegrasyonu: Diğer eklentilerin ArceniaReport verilerine placeholder'lar üzerinden erişmesini sağlar. Scoreboard, tab, hologram gibi eklentilerde rapor istatistikleri gösterilebilir.
- Yetkili bildirim sistemi: Yeni rapor geldiğinde sesli bildirim ve mesaj gönderilir.
Depolama ve Bakım
- Üçlü depolama desteği: SQLite veritabanı, MySQL/MariaDB veritabanı veya YAML dosya tabanlı depolama.
- MySQL/MariaDB desteği: Büyük sunucular ve çoklu sunucu yapıları için harici veritabanı desteği. InnoDB motoru ve UTF-8 karakter seti ile çalışır, bağlantı koptuğunda otomatik yeniden bağlanır.
- Otomatik veritabanı yedekleme: Her sunucu başlatmasında SQLite veritabanı otomatik olarak yedeklenir. Eski yedekler yapılandırılabilir sayıda tutulur.
- Otomatik arşivleme: Belirli süre geçen raporlar otomatik olarak arşive kaldırılabilir.
- YAML'den SQLite'a veri aktarımı:
/rep importkomutu ile geçiş yapılabilir. - Otomatik config yönetimi: Eksik config ayarları plugin başlatılırken otomatik olarak varsayılan değerleriyle eklenir ve konsola bildirilir.
- Config doğrulaması: Material, Sound ve Webhook URL değerleri başlangıçta doğrulanır, hatalar konsola yazılır.
- Tamamen yapılandırılabilir: Tüm mesajlar, menü başlıkları, öğe adları ve açıklamaları config dosyasından özelleştirilebilir.
- Göreceli zaman gösterimi: "5 dakika önce", "2 gün önce" gibi okunabilir zaman bilgisi.
Gereksinimler
| Gereksinim | Detay |
|---|---|
| Sunucu | Spigot veya Paper 1.20.4+ |
| Java | 17 veya üzeri |
| ArBan (isteğe bağlı) | 3.8+ -- Otomatik rapor sonuçlandırma için gerekli |
| PlaceholderAPI (isteğe bağlı) | 2.11+ -- Placeholder desteği için gerekli |
ArBan ve PlaceholderAPI eklentileri yüklü değilse eklenti sorunsuz çalışır; yalnızca ilgili entegrasyon özellikleri devre dışı kalır.
Kurulum
- Projeyi derleyin veya hazır
ArceniaReport-1.0.jardosyasını edinin. - JAR dosyasını sunucunuzun
plugins/klasörüne kopyalayın. - Sunucuyu yeniden başlatın veya
/reload confirmkomutunu çalıştırın. plugins/ArceniaReport/config.ymldosyası otomatik olarak oluşturulacaktır.- Eksik config ayarları varsa otomatik olarak eklenir ve konsol loglarında bildirilir.
- Config dosyasını düzenleyerek depolama tipini, Discord webhook URL'lerini ve diğer ayarları yapılandırın.
- Değişiklikleri uygulamak için
/rep reloadkomutunu kullanın.
Komutlar
Oyuncu Komutları
| Komut | Açıklama | İzin |
|---|---|---|
/report <oyuncu> |
Bir oyuncuyu raporlar. Kategori seçim menüsü açılır. | arceniareport.use |
/report <oyuncu> <sebep> |
Bir oyuncuyu belirtilen sebeple doğrudan raporlar (geriye uyumluluk). | arceniareport.use |
Yetkili Komutları
| Komut | Açıklama | İzin |
|---|---|---|
/rep |
Yetkili komut yardımını gösterir. | arceniareport.admin |
/rep list |
Bekleyen raporları oyuncu bazında gruplu olarak listeler. | arceniareport.admin |
/rep kontrol |
Kontrol edilmiş raporları listeler. | arceniareport.admin |
/rep arsiv |
Arşiv menüsünü açar (kontrol edilerek ve edilmeden arşivlenenler). | arceniareport.admin |
/rep bilgi <oyuncu> |
Belirli bir oyuncunun rapor detaylarını gösterir. | arceniareport.admin |
/rep stats |
Rapor istatistiklerini ve en çok raporlanan oyuncuları gösterir. | arceniareport.admin |
/rep ara <kelime> |
Raporlarda metin araması yapar. Sonuçlar GUI menüde gösterilir. | arceniareport.admin |
/rep reload |
Config dosyasını yeniden yükler. | arceniareport.reload |
/rep import |
YAML dosyasındaki verileri SQLite veritabanına aktarır. | arceniareport.reload |
İzinler
| İzin | Açıklama | Varsayılan |
|---|---|---|
arceniareport.use |
Oyuncuların /report komutunu kullanmasını sağlar. |
Herkese açık (true) |
arceniareport.admin |
Yetkililerin rapor yönetim paneline erişmesini sağlar. | OP |
arceniareport.notify |
Yeni rapor geldiğinde bildirim alınmasını sağlar. | OP |
arceniareport.reload |
Config dosyasını yeniden yükleme ve veri aktarımı yetkisi verir. | OP |
PlaceholderAPI Desteği
PlaceholderAPI eklentisi yüklüyse aşağıdaki placeholder'lar otomatik olarak kullanılabilir hale gelir:
Genel İstatistikler
| Placeholder | Açıklama |
|---|---|
%arceniareport_total% |
Toplam rapor sayısı |
%arceniareport_pending% |
Bekleyen rapor sayısı |
%arceniareport_controlled% |
Kontrol edilen rapor sayısı |
%arceniareport_archived% |
Arşivlenen rapor sayısı |
%arceniareport_unique% |
Benzersiz raporlanan oyuncu sayısı |
Oyuncu Bazlı İstatistikler
| Placeholder | Açıklama |
|---|---|
%arceniareport_player_total% |
Oyuncuya atılan toplam rapor sayısı |
%arceniareport_player_pending% |
Oyuncunun bekleyen rapor sayısı |
%arceniareport_player_controlled% |
Oyuncunun kontrol edilen rapor sayısı |
%arceniareport_player_archived% |
Oyuncunun arşivlenen rapor sayısı |
%arceniareport_player_reported% |
Oyuncunun başkalarına attığı rapor sayısı |
%arceniareport_player_priority% |
Oyuncunun mevcut öncelik seviyesi |
Top Listeleri
| Placeholder | Açıklama |
|---|---|
%arceniareport_top_reported_1% ... _10% |
En çok raporlanan 1-10. oyuncunun adı |
%arceniareport_top_count_1% ... _10% |
En çok raporlanan 1-10. oyuncunun rapor sayısı |
Yapılandırma (config.yml)
Genel Ayarlar
# Depolama tipi: "sqlite", "mysql" veya "yml"
storage:
type: sqlite
MySQL Ayarları
MySQL/MariaDB kullanmak için storage.type değerini mysql olarak değiştirin:
storage:
type: mysql
mysql:
host: localhost
port: 3306
database: arceniareport
username: root
password: ""
use-ssl: false
MySQL kullanıldığında veritabanı tabloları ve indeksler otomatik olarak oluşturulur. Bağlantı koptuğunda otomatik yeniden bağlanma sağlanır. Veritabanı yedekleme özelliği yalnızca SQLite modunda çalışır.
Yedekleme Ayarları
Her sunucu başlatmasında SQLite veritabanı plugins/ArceniaReport/backups/ klasörüne otomatik yedeklenir.
backup:
enabled: true
max-backups: 5 # Saklanacak maksimum yedek sayısı
Tekrar Eden Rapor Tespiti
Aynı oyuncuya aynı sebepten kısa süre içinde birden fazla rapor geldiğinde yetkililere özel uyarı gönderilir.
duplicate-detection:
enabled: true
time-window-minutes: 30 # Kontrol edilecek zaman penceresi
threshold: 2 # Kaç tekrardan sonra uyarı
Ses Ayarları
Yetkili bildirimi, kontrol tamamlama ve ışınlanma için ayrı ayrı ses yapılandırması yapılabilir:
sounds:
staff-notify:
enabled: true
sound: BLOCK_NOTE_BLOCK_PLING
volume: 1.0
pitch: 1.5
control-complete:
enabled: true
sound: ENTITY_EXPERIENCE_ORB_PICKUP
teleport:
enabled: true
sound: ENTITY_ENDERMAN_TELEPORT
Bildirim Ayarları
notifications:
staff-notify:
enabled: true
permission: "arceniareport.notify"
Discord Webhook Ayarları
Üç farklı olay için ayrı webhook URL'si tanımlanabilir:
webhooks:
report-created: "https://discord.com/api/webhooks/..."
report-controlled: "https://discord.com/api/webhooks/..."
report-archived: "https://discord.com/api/webhooks/..."
Webhook mesajlarının başlığı, rengi, açıklaması ve bot kullanıcı adı discord-messages bölümünden özelleştirilebilir.
Öncelik Sistemi
Bekleyen rapor sayısına göre öncelik eşikleri belirlenir. Yetkililer, Bekleyenler menüsünde orta tıklama ile bir oyuncunun önceliğini manuel olarak değiştirebilir.
priority:
medium: 3 # 3+ rapor = Orta
high: 5 # 5+ rapor = Yüksek
critical: 10 # 10+ rapor = Kritik
labels:
low: "&a▼ Düşük"
medium: "&6● Orta"
high: "&c▲ Yüksek"
critical: "&4&l☠ Kritik"
Manuel öncelik ayarları plugins/ArceniaReport/priorities.yml dosyasında saklanır.
Otomatik Rapor Sonuçlandırma (ArBan Entegrasyonu)
ArBan üzerinden ceza verildiğinde ilgili raporların otomatik olarak kontrol edilmesini sağlar:
auto-finalize:
ban:
enabled: true
control-reason: "Hile Kullanımı - Otomatik Sonuçlandırıldı"
categories:
- "Hile Kullanımı"
- "Bug Kullanımı"
mute:
enabled: true
control-reason: "Hakaret/Küfür - Otomatik Sonuçlandırıldı"
categories:
- "Hakaret / Küfür"
- "Reklam"
kick:
enabled: false
Otomatik Arşivleme
auto-archive:
enabled: false
interval-hours: 24
archive-uncontrolled: true
Rapor Kategorileri
Oyuncuların rapor oluştururken seçeceği kategoriler:
report-categories:
categories:
hile:
icon: DIAMOND_SWORD
name: "&c⚔ Hile Kullanımı"
reason: "Hile Kullanımı"
hakaret:
icon: BOOK
name: "&6✎ Hakaret / Küfür"
reason: "Hakaret / Küfür"
# ... diğer kategoriler
Kontrol Sebepleri
Yetkililerin raporu kontrol ederken seçeceği hazır sebepler:
control-reasons:
reasons:
hile_bulundu:
icon: NETHERITE_SWORD
name: "&c⚔ Hile Bulundu"
reason: "Hile Bulundu"
temiz:
icon: LIME_DYE
name: "&a✔ Temiz"
reason: "Temiz - İhlal Yok"
diger:
icon: WRITABLE_BOOK
name: "&7✎ Diğer"
reason: "CUSTOM" # Manuel sebep girişi için chat'e yönlendirir
Toplu İşlem Butonları
Detay menülerinde görünen toplu işlem butonlarının görünümü özelleştirilebilir:
menus:
bulk-actions:
control-all:
icon: EMERALD_BLOCK
name: "&a&lTümünü Kontrol Et"
archive-all:
icon: CHEST
name: "&6&lTümünü Arşivle"
GUI Ayarları
Menülerdeki cam panel renkleri ve tüm menü başlıkları, öğe adları, açıklama metinleri tamamen config'den özelleştirilebilir.
Mesajlar
Eklentideki tüm oyuncu ve yetkili mesajları messages bölümünden değiştirilebilir. Desteklenen yer tutucular: %prefix%, %reporter%, %reported%, %reason%, %remaining%, %count%, %priority%, %keyword%.
Göreceli Zaman Dilleri
time-format:
just-now: "Az önce"
seconds: "%value% saniye önce"
minutes: "%value% dakika önce"
hours: "%value% saat önce"
days: "%value% gün önce"
months: "%value% ay önce"
Nasıl Çalışır
Rapor Yaşam Döngüsü
- Oluşturma: Oyuncu
/report <oyuncu>komutunu kullanır. Kategori seçim menüsü açılır ve oyuncu bir rapor sebebi seçer. RaporBEKLIYORdurumuyla kaydedilir. - Tekrar Tespiti: Aynı oyuncuya aynı sebepten kısa süre içinde birden fazla rapor geldiyse yetkililere özel uyarı gönderilir.
- Bildirim:
arceniareport.notifyiznine sahip tüm çevrimiçi yetkililere sesli bildirim ve mesaj gönderilir. Discord webhook aktifse ilgili kanala embed mesaj atılır. - Kontrol: Yetkili
/rep listile bekleyen raporları görür. Tekli veya toplu kontrol yapılabilir. RaporKONTROL_EDILDIdurumuna geçer. - Arşivleme: Kontrol edilen raporlar tekli veya toplu olarak arşivlenebilir. Rapor
ARSIVLENDIdurumuna geçer. - Otomatik Sonuçlandırma: ArBan entegrasyonu aktifse, ceza verildiğinde ilgili raporlar otomatik kontrol edilir.
- Otomatik Arşivleme: Yapılandırıldıysa, belirli süre geçen raporlar periyodik olarak otomatik arşivlenir.
Menü Navigasyonu
/rep list ──> Bekleyenler (Oyuncu Kafaları)
├── Sol Tık: Detay Menüsü
│ ├── Sağ Tık: Kontrol Sebebi Seç
│ └── [Tümünü Kontrol Et] butonu
├── Shift+Tık: Oyuncuya Işınlan
└── Orta Tık: Öncelik Değiştir
/rep kontrol ──> Kontrol Edilenler (Oyuncu Kafaları) ──> Sol Tık: Geçmiş Menüsü
Geçmiş Menüsü ──> Sağ Tık: Arşivle
──> [Tümünü Arşivle] butonu
/rep arsiv ──> Arşiv Seçim Menüsü ──> Kontrol Edilerek Arşivlenenler
──> Kontrol Edilmeden Arşivlenenler
/rep bilgi <oyuncu> ──> Bilgi Menüsü (Bekleyen / Kontrol Edilen / Arşivlenen)
/rep stats ──> İstatistik Menüsü (Genel İstatistikler + En Çok Raporlananlar)
/rep ara <kelime> ──> Arama Sonuçları Menüsü (sayfalı)
Veri Depolama
- SQLite (varsayılan):
plugins/ArceniaReport/reports.dbdosyasında saklanır. İndekslenmiş sorgular ile hızlı erişim sağlar. - MySQL/MariaDB: Harici veritabanı sunucusunda saklanır. Büyük sunucular, çoklu sunucu yapıları ve uzaktan erişim için uygundur. InnoDB motoru ve utf8mb4 karakter seti kullanılır.
- YAML:
plugins/ArceniaReport/reports.ymldosyasında saklanır. Küçük sunucular için uygundur. - Yedekler:
plugins/ArceniaReport/backups/klasöründe tarihli yedekler tutulur (yalnızca SQLite modunda). - Öncelikler:
plugins/ArceniaReport/priorities.ymldosyasında manuel öncelik ayarları saklanır. - YAML'den SQLite'a geçiş yapmak için depolama tipini
sqliteolarak değiştirip/rep importkomutunu kullanabilirsiniz.
Otomatik Config Yönetimi
Plugin başlatılırken ConfigMigrator sınıfı config dosyasını tarar. Eksik ayarlar varsayılan değerleriyle otomatik olarak eklenir ve konsola bildirilir:
[ArceniaReport] [Config] Eksik ayar eklendi: backup.enabled = true
[ArceniaReport] [Config] Eksik ayar eklendi: duplicate-detection.enabled = true
[ArceniaReport] [Config] Toplam 2 adet eksik ayar otomatik olarak eklendi.
Ardından ConfigValidator sınıfı tüm Material, Sound ve Webhook URL değerlerini doğrular:
[ArceniaReport] [Config] 18 ayar kontrol edildi, sorun bulunamadi.
SSS (Sıkça Sorulan Sorular)
Sıkça Sorulan Sorular (SSS)
- ArceniaReport hangi Minecraft sürümlerinde çalışır? Eklenti, 1.20 ve üzeri sürümlerdeki Spigot/Paper sunucuları ile uyumludur ve Java 17 gerektirir.
- Raporlama sisteminde kötüye kullanımı nasıl engellerim? Cooldown sistemi ve kendini raporlama koruması sayesinde gereksiz raporların önüne geçebilir, tekrar eden rapor tespit özelliği ile yetkililerinizi uyarabilirsiniz.
- Veritabanı seçenekleri nelerdir? Sistem hem yerel SQLite hem de uzak MySQL veritabanı desteği sunmaktadır.
- Raporları oyun içinden yönetebilir miyim? Evet, tüm rapor listeleme, inceleme, arşivleme ve istatistik işlemleri tamamen GUI tabanlı yönetim paneli üzerinden gerçekleştirilir.
- Discord bildirimleri alabilir miyim? Evet, eklenti Discord webhook entegrasyonu sayesinde raporları anlık olarak Discord kanalınıza iletebilir.
- ArBan ile entegrasyonu var mı? Evet, ArBan ceza sistemi ile doğrudan entegre çalışarak raporlanan oyunculara hızlıca işlem uygulamanıza olanak tanır.
- Eski raporları nasıl bulabilirim?
/rep ara <kelime>komutunu kullanarak veya GUI üzerindeki sıralama ve sayfalama özelliklerini kullanarak tüm rapor geçmişine erişebilirsiniz.
Yetkiler (Permissions)
ArceniaReport eklentisinin tüm özelliklerini kullanabilmek için aşağıdaki yetki düğümleri (permissions) tanımlanmıştır:
arceniareport.report: Oyuncuların/reportkomutunu kullanarak rapor oluşturmasını sağlar.arceniareport.admin: Tüm yönetim panellerine, rapor listeleme, inceleme, arşivleme ve istatistik menülerine tam erişim sağlar.arceniareport.search:/rep arakomutu ile raporlar arasında arama yapma yetkisi verir.arceniareport.notify: Rapor bildirimlerini ve tekrar eden rapor uyarılarını almayı sağlar.arceniareport.reload: Eklenti yapılandırmasını oyun içinden yenileme yetkisi verir.
Not: Yönetimsel komutların tamamı için arceniareport.admin yetkisi önerilir.