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.

schedule
01

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.


02

Ö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 import komutu 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.

03

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.


04

Kurulum

  1. Projeyi derleyin veya hazır ArceniaReport-1.0.jar dosyasını edinin.
  2. JAR dosyasını sunucunuzun plugins/ klasörüne kopyalayın.
  3. Sunucuyu yeniden başlatın veya /reload confirm komutunu çalıştırın.
  4. plugins/ArceniaReport/config.yml dosyası otomatik olarak oluşturulacaktır.
  5. Eksik config ayarları varsa otomatik olarak eklenir ve konsol loglarında bildirilir.
  6. Config dosyasını düzenleyerek depolama tipini, Discord webhook URL'lerini ve diğer ayarları yapılandırın.
  7. Değişiklikleri uygulamak için /rep reload komutunu kullanın.

05

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

06

İ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

07

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ı

08

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"

09

Nasıl Çalışır

Rapor Yaşam Döngüsü

  1. Oluşturma: Oyuncu /report <oyuncu> komutunu kullanır. Kategori seçim menüsü açılır ve oyuncu bir rapor sebebi seçer. Rapor BEKLIYOR durumuyla kaydedilir.
  2. Tekrar Tespiti: Aynı oyuncuya aynı sebepten kısa süre içinde birden fazla rapor geldiyse yetkililere özel uyarı gönderilir.
  3. Bildirim: arceniareport.notify iznine sahip tüm çevrimiçi yetkililere sesli bildirim ve mesaj gönderilir. Discord webhook aktifse ilgili kanala embed mesaj atılır.
  4. Kontrol: Yetkili /rep list ile bekleyen raporları görür. Tekli veya toplu kontrol yapılabilir. Rapor KONTROL_EDILDI durumuna geçer.
  5. Arşivleme: Kontrol edilen raporlar tekli veya toplu olarak arşivlenebilir. Rapor ARSIVLENDI durumuna geçer.
  6. Otomatik Sonuçlandırma: ArBan entegrasyonu aktifse, ceza verildiğinde ilgili raporlar otomatik kontrol edilir.
  7. 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.db dosyası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.yml dosyası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.yml dosyasında manuel öncelik ayarları saklanır.
  • YAML'den SQLite'a geçiş yapmak için depolama tipini sqlite olarak değiştirip /rep import komutunu 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.

10

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.
11

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 /report komutunu 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 ara komutu 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.

auto_awesome Benzer Projeler