ArceniaDuel

Bu eklenti, 1.21 ve üzeri sürümlerdeki Spigot ve Paper sunucuları için Java 21 altyapısıyla geliştirilmiş 2.0.0 sürümünde bir sistemdir. Sunucu performansını ve işlevselliğini artırmak amacıyla tasarlanmış olup güncel Minecraft sürümleriyle tam uyumlu çalışmaktadır. Kurulum için belirtilen Java ve platform gereksinimlerinin karşılanması yeterlidir.

schedule
01

Ozellikler

Temel Duello Sistemi

  • 1v1 Duello -- Duello istegi, kabul/red, geri sayim, sure siniri, spawn korumasi
  • Cok Arena Destegi -- Birden fazla arena olusturma, otomatik musait arena atama
  • Kural Ozellestirme -- Envanter dusurme, basamak/orumcek agi engeli, yemek engeli, insa izni -- GUI ile secim
  • Ganimet Sandigi -- Kaybeden oyuncunun esyalarini kazanana ozel sandik olarak sunma
  • Beraberlik / Terk Sistemi -- Karsilikli beraberlik teklifi ve onaylamali forfeit mekanigi
  • Izleyici Modu -- Aktif duellolari izleme, otomatik cikis, konum geri yukleme
  • Komut Engelleme -- Duello sirasinda spawn, tp, home gibi komutlari engelleme
  • AFK Koruma -- Duello teleportlari AFK pluginleri tarafindan geri alinamaz

Arena Koruma Sistemi

  • Blok Korumasi -- Arena icinde blok kirma/koyma/patlama/yanma engelleme
  • Sinir Kontrolu -- Aktif duello sirasinda arena disina cikma engeli (X/Y/Z ekseni)
  • Ender Pearl / Chorus Fruit Korumasi -- Arena disinsa ender pearl ve chorus fruit ile kacisin engellenmesi
  • Container Korumasi -- Arena icindeki sandik/firin/workbench erisimini engelleme
  • Sivi Korumasi -- Su/lav yayilmasini ve kova ile dokmeyi engelleme
  • Piston Korumasi -- Piston ile blok itme/cekme engelleme
  • Entity Korumasi -- Zirh standi, item frame, tablo kirma/manipulasyon engeli
  • Mob Spawn Engelleme -- Arena icinde dogal mob dogmasini engelleme
  • Ates Yayilma Korumasi -- Ates, mantar, sarmasik yayilmasini engelleme
  • Aclik Kontrolu -- Duello sirasinda aclik dondurma (opsiyonel)
  • Bypass Izni -- arceniaduel.bypass.arenaprotection ile tum korumalardan muafiyet
  • Config Toggle -- Her koruma ayri ayri config'den acilip kapatilabilir

ELO / Rating Sistemi

  • ELO Puanlama -- Kazanma orani yerine beceri bazli siralama (varsayilan K=32)
  • Dinamik Hesaplama -- Guclu rakibi yenmek daha fazla puan kazandirir
  • PlaceholderAPI Destegi -- %duel_elo% ile scoreboard, tab, hologram entegrasyonu

Kuyruk / Eslestirme Sistemi

  • Otomatik Eslestirme -- /duel queue ile kuyruga gir, ELO toleransina gore otomatik es bul
  • Genisleyen Tolerans -- Bekleme suresi arttikca ELO toleransi otomatik genisler
  • Asenkron Yukleme -- ELO verileri ana thread'i bloklamadan arka planda yuklenir

Takim Duellolari (2v2, 3v3)

  • Parti Sistemi -- Parti olusturma, davet, kabul, lider/uye yonetimi
  • Takim Duellosu -- Parti liderleri arasi takim duellosu istegi gonderme
  • Takim Olum Mekanigi -- Olen oyuncu izleyici moduna gecer, takim elene kadar mac devam eder

Turnuva Sistemi

  • Tek Eleme Bracket -- 4-32 oyunculu turnuva, bye destegiyle otomatik bracket olusturma
  • Kayit Donemi -- Admin turnuva olusturur, oyuncular kayit suresinde katilir
  • Otomatik Ilerleme -- Mac bitisinde bracket otomatik ilerler, no-show otomatik elenir
  • Bracket Goruntuleme -- /turnuva bracket ile guncel bracket durumu (GUI)

Citizens NPC Entegrasyonu

  • 4 NPC Tipi -- QUEUE (kuyruga gir/cik), STATS (istatistik GUI), TOURNAMENT (turnuva katilim/bracket), DUEL (duello meydan oku)
  • Akilli NPC Davranisi -- Turnuva NPC'si tek acik turnuvaya otomatik katilar, birden fazlaysa listeler, zaten katilmissa bracket gosterir
  • SQLite Kalicilik -- NPC verileri veritabaninda saklanir, sunucu yeniden baslatmada korunur

Istatistik ve GUI

  • Istatistik Takibi -- Galibiyet, maglubiyet, ELO, seri, en hizli oldurme, favori arena/rakip
  • Istatistik GUI -- Detayli istatistik goruntulemesi envanter GUI'si ile
  • Duello Gecmisi GUI -- Gecmis duellolari GUI uzerinden goruntuleyebilme
  • Duello Meydan Oku GUI -- Online oyuncularin kafalarini gosteren, ELO ve W/L bilgisiyle zenginlestirilmis GUI
  • Turnuva Bracket GUI -- Turnuva bracket durumunu GUI uzerinden goruntuleme
  • Siralama Tablosu -- Kazanma orani veya ELO'ya gore ilk 10 oyuncu siralamasi

Altyapi

  • SQLite Veritabani -- Istatistikler, gecmis, arena verileri, ban ve NPC kayitlari
  • Arena Sifirlama -- Blok degisiklik takibi, asenkron sifirlama, parcacik efektleri
  • Admin Paneli -- GUI tabanli yonetim: ban, force-end, istatistik sifirlama, NPC yonetimi
  • Discord Webhook -- Duello baslangic/bitis bildirimleri, haftalik siralama gonderimi
  • PlaceholderAPI -- 25+ placeholder ile scoreboard, tab, hologram entegrasyonu

02

Gereksinimler

Gereksinim Minimum Versiyon
Java 21+
Spigot / Paper 1.21+

Opsiyonel Bagimliliklar

Eklenti Amac
PlaceholderAPI 25+ placeholder destegi
Citizens NPC entegrasyonu (kuyruk, istatistik, turnuva, duello NPC'leri)

03

Kurulum

  1. Projeyi derleyin (mvn clean package) veya hazir JAR dosyasini indirin
  2. JAR dosyasini sunucunuzun plugins/ klasorune kopyalayin
  3. (Opsiyonel) Citizens eklentisini yukleyin -- NPC ozellikleri icin gereklidir
  4. Sunucuyu baslatin -- plugins/ArceniaDuel/config.yml otomatik olusturulur
  5. Arena olusturun:
    • /duelarena wand -> koseleri secin (sol tik / sag tik)
    • /duelarena create <isim>
    • /duelarena setspawn1 <isim> ve /duelarena setspawn2 <isim>
  6. Arena durumunu kontrol edin:
    • /duelarena status <isim> -- tek arena kontrol
    • /duelarena status all -- tum arenalarin durumu
  7. Duellolar artik aktiftir

04

Komutlar

Oyuncu Komutlari -- Duello

Komut Takma Ad Izin Aciklama
/duel <oyuncu> -- arceniaduel.duel Oyuncuya duello istegi gonder
/duel accept -- arceniaduel.duel Gelen duello istegini kabul et
/duel decline -- arceniaduel.duel Gelen duello istegini reddet
/duel sandik /duel chest arceniaduel.duel Ganimet sandigini ac
/duel ayril -- arceniaduel.duel Duellodan ayril (forfeit)
/duel queue -- arceniaduel.queue Eslestirme kuyruguna gir
/duel leave -- arceniaduel.queue Kuyruktan ayril
/duel team <oyuncu> -- arceniaduel.teamduel Takim duellosu istegi gonder (parti lideri)
/duel team accept -- arceniaduel.teamduel Takim duellosu istegini kabul et
/duel team decline -- arceniaduel.teamduel Takim duellosu istegini reddet

Oyuncu Komutlari -- Beraberlik / Izleme / Istatistik

Komut Takma Ad Izin Aciklama
/berabere -- arceniaduel.draw Beraberlik teklifi gonder
/berabere kabul accept arceniaduel.draw Beraberlik teklifini kabul et
/berabere reddet decline, red arceniaduel.draw Beraberlik teklifini reddet
/duellist -- arceniaduel.list Aktif duellolari listele
/stats [oyuncu] -- arceniaduel.stats Istatistikleri goruntule (GUI)
/duelrank -- arceniaduel.rank Ilk 10 siralama tablosu
/duelhistory [oyuncu] -- arceniaduel.history Son 50 duello gecmisi
/spectate <oyuncu> /spec, /izle arceniaduel.spectate Duelloyu izle

Oyuncu Komutlari -- Parti

Komut Turkce Alias Izin Aciklama
/party create olustur arceniaduel.party Yeni parti olustur
/party invite <oyuncu> davet arceniaduel.party Oyuncuyu partiye davet et
/party accept kabul arceniaduel.party Parti davetini kabul et
/party leave ayril arceniaduel.party Partiden ayril
/party disband dagit arceniaduel.party Partiyi dagit (lider)
/party list liste arceniaduel.party Parti uyelerini listele
/party kick <oyuncu> at arceniaduel.party Oyuncuyu partiden at (lider)

Oyuncu Komutlari -- Turnuva

Komut Turkce Alias Izin Aciklama
/turnuva join <isim> katil arceniaduel.tournament Turnuvaya katil
/turnuva leave ayril arceniaduel.tournament Turnuvadan ayril
/turnuva info [isim] bilgi arceniaduel.tournament Turnuva bilgisi/durum
/turnuva list liste arceniaduel.tournament Aktif turnuvalari listele
/turnuva bracket [isim] -- arceniaduel.tournament Bracket GUI'sini ac

Yonetim Komutlari

Komut Izin Aciklama
/dueladmin arceniaduel.admin Admin paneli GUI'sini ac
/dueladmin reload arceniaduel.admin.reload Konfigurasyonu yeniden yukle
/dueladmin npc create <tip> [isim] arceniaduel.admin.npc NPC olustur (QUEUE/STATS/TOURNAMENT/DUEL)
/dueladmin npc remove [id] arceniaduel.admin.npc NPC sil (ID veya yakindaki)
/dueladmin npc list arceniaduel.admin.npc Tum NPC'leri listele
/turnuva create <isim> <maks> olustur arceniaduel.tournament.admin
/turnuva start <isim> baslat arceniaduel.tournament.admin
/turnuva cancel <isim> iptal arceniaduel.tournament.admin

Arena Yonetimi Komutlari

Komut Izin Aciklama
/duelarena create <isim> arceniaduel.admin.arena Yeni arena olustur
/duelarena wand arceniaduel.admin.arena Secim cubugunu al
/duelarena pos1 arceniaduel.admin.arena Sinir pozisyon 1'i ayarla
/duelarena pos2 arceniaduel.admin.arena Sinir pozisyon 2'yi ayarla
/duelarena setspawn1 <arena> arceniaduel.admin.arena 1. oyuncu dogma noktasi
/duelarena setspawn2 <arena> arceniaduel.admin.arena 2. oyuncu dogma noktasi
/duelarena save <arena> arceniaduel.admin.arena Arenayi kaydet
/duelarena delete <arena> arceniaduel.admin.arena Arenayi sil
/duelarena status <arena|all> arceniaduel.admin.arena Arena durum bilgisi (eksikleri gosterir)
/duelarena enable <arena> arceniaduel.admin.arena Arenayi aktif et
/duelarena disable <arena> arceniaduel.admin.arena Arenayi devre disi birak
/duelarena list arceniaduel.admin.arena Tum arenalari listele
/duelarena reset <arena> arceniaduel.admin.arena Arena bloklarini sifirla
/duelarena resetall arceniaduel.admin.arena Tum arenalari sifirla

Arena Status Komutu

/duelarena status <arena> komutu arenanin kurulum durumunu detayli gosterir:

----------------------------------------
Arena Durumu: Arena1

Spawn 1: ✓ Ayarlandi
Spawn 2: ✗ Ayarlanmadi
Sinirlar (XZ): ✓ X[50,200] Z[50,200]
Sinirlar (Y): ✓ Y[60,80]
Dunya: ✓ world
Durum: ✓ Aktif
Kullanim: Bos

✗ Arena kurulumu tamamlanmadi!
----------------------------------------

/duelarena status all komutu tum arenalarin durumunu tek seferde gosterir.


05

Izinler

Oyuncu Izinleri

Izin Varsayilan Aciklama
arceniaduel.duel true Duello istegi gonderme ve yonetme
arceniaduel.list true Aktif duellolari listeleme
arceniaduel.draw true Beraberlik teklifi gonderme/kabul etme
arceniaduel.history true Duello gecmisini goruntuleme
arceniaduel.stats true Istatistikleri goruntuleme
arceniaduel.rank true Siralama tablosunu goruntuleme
arceniaduel.spectate true Duello izleme
arceniaduel.queue true Kuyruk/eslestirme sistemi kullanma
arceniaduel.party true Parti olusturma ve yonetme
arceniaduel.teamduel true Takim duellosu yapma
arceniaduel.tournament true Turnuvaya katilma

Yonetim Izinleri

Izin Varsayilan Aciklama
arceniaduel.admin op Admin paneli erisimi
arceniaduel.admin.reload op Konfigurasyon yeniden yukleme
arceniaduel.admin.arena op Arena kurulum ve yonetimi
arceniaduel.admin.npc op NPC olusturma ve yonetme
arceniaduel.tournament.admin op Turnuva olusturma/baslatma/iptal
arceniaduel.bypass.commandblock op Duello sirasi komut engelini bypass etme
arceniaduel.bypass.arenaprotection op Arena koruma sistemini bypass etme

06

Yapilandirma (config.yml)

Duello Ayarlari

duel:
  duration: 600                    # Duello suresi (saniye)
  countdown: 3                    # Baslangic geri sayimi
  spawn-protection: 3             # Spawn korumasi suresi (saniye)
  cooldown: 0                     # Ayni oyuncuyla tekrar duello bekleme suresi
  request-expire: 60              # Istek gecerlilik suresi (saniye)
  draw-request-expire: 30         # Beraberlik teklifi gecerlilik suresi
  forfeit-confirm-seconds: 10     # Terk onay penceresi suresi
  winner-stay-seconds: 120        # Kazananin arenada kalma suresi
  max-spectators: 20              # Duello basina maksimum izleyici
  no-inventory-respawn-delay: 5   # Envanter dusurme kapaliysa yeniden dogma gecikmesi
  blocked-commands:               # Duello sirasinda engellenen komutlar
    - "spawn"
    - "home"
    - "sethome"
    - "tp"
    - "tpa"
    - "tpahere"
    - "tpaccept"
    - "warp"
    - "back"
    - "fly"
    - "gamemode"

Varsayilan Kural Ayarlari

default-rules:
  inventory-drop: true             # Olunce esyalar dussun mu?
  slab-disabled: false             # Basamak koyma engellensin mi?
  cobweb-disabled: false           # Orumcek agi koyma engellensin mi?
  food-disabled: false             # Yemek yeme engellensin mi?
  build-enabled: true              # Blok koyma ve kirma acik mi?

Arena Koruma Ayarlari

protection:
  container-protection: true       # Arena icindeki sandik/firin erisimini engelle
  liquid-protection: true          # Su/lav yayilmasini engelle
  piston-protection: true          # Piston ile blok itme/cekme engelle
  entity-protection: true          # Zirh standi, item frame, tablo korumasi
  mob-spawn-prevention: true       # Arena icinde mob dogmasini engelle
  fire-spread-protection: true     # Ates yayilmasini engelle
  bucket-protection: true          # Kova ile su/lav dokmeyi engelle
  hunger-freeze: false             # Duello sirasinda aclik dondurma (false=normal)
  boundary-enforcement: true       # Duello sirasinda sinir kontrolu

Not: Her koruma bagimsiz olarak acilip kapatilabilir. arceniaduel.bypass.arenaprotection iznine sahip oyuncular tum korumalardan muaf tutulur.

ELO / Rating Ayarlari

elo:
  enabled: true                    # ELO sistemi acik/kapali
  starting-elo: 1000               # Yeni oyuncularin baslangic ELO puani
  k-factor: 32                     # ELO degisim hizi (yuksek = daha volatil)

ELO nasil calisir: Guclu bir rakibi (yuksek ELO) yendiginde daha fazla puan kazanirsin, zayif bir rakibe (dusuk ELO) kaybettiginde daha fazla puan kaybedersin. K-factor degeri degisim hizini kontrol eder.

Kuyruk / Eslestirme Ayarlari

queue:
  enabled: true                    # Kuyruk sistemi acik/kapali
  matchmaking-interval: 40         # Eslestirme kontrol araligi (tick, 40 = 2 saniye)
  initial-elo-tolerance: 100       # Baslangic ELO toleransi
  tolerance-expansion: 50          # Her periyotta genisleme miktari
  tolerance-expansion-interval: 30 # Genisleme periyodu (saniye)
  max-tolerance: 500               # Maksimum ELO toleransi

Genisleyen tolerans: Oyuncu kuyruga girdiginde, ilk 30 saniye +-100 ELO araliginda es aranir. Bulunamazsa tolerans her 30 saniyede 50 artarak +-500'e kadar genisler.

Takim Duellosu Ayarlari

team-duel:
  enabled: true                    # Takim duellosu acik/kapali
  max-party-size: 3                # Maksimum parti boyutu (2 = sadece 2v2, 3 = 2v2 ve 3v3)
  countdown: 5                    # Takim duellosu geri sayimi
  duration: 900                    # Takim duellosu suresi (saniye)

Turnuva Ayarlari

tournament:
  enabled: true                    # Turnuva sistemi acik/kapali
  min-participants: 4              # Minimum katilimci sayisi
  max-participants: 32             # Maksimum katilimci sayisi
  registration-time: 300           # Kayit suresi (saniye)
  match-start-delay: 10            # Maclar arasi bekleme (saniye)
  no-show-timeout: 60              # Gelmezse diskalifiye suresi (saniye)

Arena Sifirlama Ayarlari

arena-reset:
  reset-speed: 20                  # Tick basina sifirlanacak blok sayisi
  async-reset: true                # Asenkron sifirlama (lag onleme)
  show-reset-progress: true        # Parcacik efektleri
  clear-dropped-items: true        # Yerdeki esyalari temizle
  clear-entities: true             # Oklari vb. temizle

Discord Webhook Ayarlari

discord:
  enabled: false
  webhook-url: "https://discord.com/api/webhooks/WEBHOOK_ID/WEBHOOK_TOKEN"
  send-duel-start: true
  send-duel-end: true
  send-weekly-leaderboard: true
  leaderboard-day: "SUNDAY"
  embed-color-start: "#3498db"
  embed-color-win: "#2ecc71"
  embed-color-loss: "#e74c3c"

Mesajlar

Config dosyasinda 150+ ozellestirilebilir Turkce mesaj bulunur:

  • Duello istek/kabul/red, beraberlik, terk mesajlari
  • ELO degisim bildirimleri
  • Kuyruk durumu mesajlari
  • Parti davet/katilim/ayrilis mesajlari
  • Takim duellosu bilgilendirmeleri
  • Turnuva kayit/baslangic/bitis mesajlari
  • NPC olusturma/silme mesajlari
  • Arena yonetimi bildirimleri
  • & renk kodu destegi

07

Duello Akisi

Oyuncu A: /duel OyuncuB
    |
    v
Kural secim GUI'si acilir (DuelRulesGUI)
  - Envanter Dusurme, Basamak, Orumcek Agi, Yemek, Insa kurallarini sec
  - "Onayla" butonuna tikla
    |
    v
Oyuncu B'ye duello istegi gonderilir
  - Chat'te [KABUL ET] / [REDDET] butonlari (tiklanabilir)
  - Arena adi ve kurallar gosterilir
  - 60 saniye gecerlilik suresi
    |
    v
Oyuncu B: /duel accept veya [KABUL ET] tiklar
    |
    v
Musait arena otomatik atanir
Her iki oyuncu spawn noktalarina isinlanir
(AFK koruma metadata ile harici teleportlar engellenir)
    |
    v
[GERI SAYIM: 3... 2... 1...]
  - Spawn korumasi aktif (3 saniye)
    |
    v
[AKTIF DUELLO]
  - Sure siniri: 600 saniye (ayarlanabilir)
  - Blok degisiklikleri takip ediliyor
  - Komutlar engelli (spawn, tp, home vb.)
  - Arena sinir kontrolu aktif (yurume, ender pearl, chorus fruit)
  - Arena korumalari aktif (container, sivi, piston, entity, mob)
  - /berabere ile beraberlik teklif edilebilir
  - /duel ayril ile terk edilebilir
    |
    v
Duello sonucu:
  |
  +-- Oyuncu olur -> Kazanan/kaybeden belirlenir
  |     - ELO guncellenir
  |     - Envanter dusurme aciksa: Kazanan arenada kalir (120sn)
  |     - Ganimet sandigi olusturulur
  |
  +-- Sure dolar -> Yuksek canli oyuncu kazanir (esitse berabere)
  |
  +-- Beraberlik kabul edilir -> Her iki oyuncu icin berabere kaydedilir
  |
  +-- Oyuncu ayrilir/cikar -> Diger oyuncu kazanir
    |
    v
Istatistikler + ELO guncellenir (SQLite)
Arena sifirlanir (asenkron)
Discord webhook gonderilir (aktifse)
Turnuva maciysa bracket ilerletilir
Izleyiciler cikarilir

08

Kullanim Senaryolari

Senaryo 1: Kuyruk ile Otomatik Eslesme

/duel queue                          # Kuyruga gir
  -> ELO toleransi dahilinde rakip aranir
  -> Eslesme bulunursa otomatik duello baslar
  -> Bulunamazsa tolerans zamanla genisler
/duel leave                          # Kuyruktan cik (istemezsen)

Senaryo 2: 2v2 Takim Duellosu

# Takim 1
/party create                        # Lider parti olusturur
/party invite OyuncuB                # Takim arkadasini davet et
  -> OyuncuB: /party accept          # Davet kabul edilir

# Takim 2 de ayni sekilde parti olusturur

# Duello baslat
/duel team <KarsiLider>              # Liderden lidere istek
  -> Karsi Lider: /duel team accept  # Kabul et
  -> 2v2 duello baslar!

Senaryo 3: Turnuva Duzenleme

# Admin turnuva olusturur
/turnuva create yaz-kupasi 16        # 16 oyunculu turnuva

# Oyuncular katilir
/turnuva join yaz-kupasi

# Admin baslatir (min 4 oyuncu gerekir)
/turnuva start yaz-kupasi
  -> Bracket otomatik olusturulur
  -> Maclar sirayla baslar
  -> Kazanan bir sonraki tura ilerler
  -> Sampiyon belirlenir!

# Bracket durumu (GUI)
/turnuva bracket yaz-kupasi

Senaryo 4: NPC ile Etkilesim (Citizens Gerekir)

# Admin NPC olusturur
/dueladmin npc create QUEUE           # Kuyruga giris NPC'si
/dueladmin npc create STATS           # Istatistik GUI NPC'si
/dueladmin npc create DUEL            # Duello meydan oku NPC'si
/dueladmin npc create TOURNAMENT      # Turnuva NPC'si

# Oyuncu NPC'ye sag tiklar -> Ilgili aksiyon tetiklenir
# QUEUE: Kuyruga gir/cik (toggle)
# STATS: Istatistik GUI acilir
# TOURNAMENT: Acik turnuvaya otomatik katilim veya bracket goruntulemesi
# DUEL: Duello meydan oku GUI'si acilir

Senaryo 5: Arena Durum Kontrolu

# Tek arena kontrol
/duelarena status Arena1
  -> Spawn 1/2, sinirlar, dunya, durum bilgisi gosterilir
  -> Eksik ayarlar ✗ ile isaretlenir

# Tum arenalari toplu kontrol
/duelarena status all
  -> Her arena icin ayri ayri durum raporu gosterilir

09

Kural Sistemi

Duello baslangicinda GUI uzerinden 5 kural ozellestirebilir:

Kural Varsayilan Aciklama
Envanter Dusurme Acik Olen oyuncunun esyalari yere duser
Basamak Engeli Kapali Basamak (slab) koymak engellenir
Orumcek Agi Engeli Kapali Orumcek agi koymak engellenir
Yemek Engeli Kapali Yemek yemek engellenir
Insa Izni Acik Blok koyma ve kirma izni

Kurallar GUI'de renkli ikonlarla gosterilir ve tiklayarak degistirilir. Kabul eden oyuncu kurallari chat'te gorur.


10

Istatistik Sistemi

Takip Edilen Metrikler

Metrik Aciklama
Toplam Duello Oynanan toplam duello sayisi
Galibiyet / Maglubiyet Kazanilan ve kaybedilen duello sayilari
Kazanma Orani Yuzdelik kazanma orani
ELO Puani Beceri bazli siralama puani
ELO Siralamasi Sunucudaki ELO sirasi
Mevcut Seri Aktif galibiyet veya maglubiyet serisi
En Uzun Seri Tum zamanlarin en uzun galibiyet serisi
Toplam Sure Duellolarda gecirilen toplam sure
En Hizli Oldurme En kisa surede kazanilan duello
Favori Arena En cok duello yapilan arena
Favori Rakip En cok karsilasilan oyuncu
Son Sonuc Son duellonun sonucu ve rakibi
Arena Bazli Istatistik Arena basina galibiyet/maglubiyet
Rakip Bazli Istatistik Rakip basina kafa kafaya kayit

11

PlaceholderAPI Entegrasyonu

Identifier: duel

Durum Placeholder'lari

Placeholder Aciklama
%duel_in_duel% Oyuncu duelloda mi (true/false)
%duel_spectating% Oyuncu izliyor mu (true/false)
%duel_in_queue% Oyuncu kuyrukta mi (true/false)
%duel_queue_size% Kuyruk boyutu

Istatistik Placeholder'lari

Placeholder Aciklama
%duel_wins% Galibiyet sayisi
%duel_losses% Maglubiyet sayisi
%duel_total_duels% Toplam duello sayisi
%duel_winrate% Kazanma orani (% ile)
%duel_winrate_decimal% Kazanma orani (sayi)
%duel_elo% ELO puani
%duel_current_streak% Mevcut seri sayisi
%duel_current_streak_type% Mevcut seri turu (galibiyet/maglubiyet)
%duel_longest_streak% En uzun galibiyet serisi
%duel_avg_time% Ortalama duello suresi
%duel_fastest_kill% En hizli oldurme suresi
%duel_total_playtime% Toplam duello suresi
%duel_favorite_arena% Favori arena
%duel_favorite_opponent% Favori rakip
%duel_last_opponent% Son rakip
%duel_last_result% Son sonuc
%duel_rank% Siralama pozisyonu

Dinamik Placeholder'lar

Placeholder Aciklama
%duel_arena_wins:<arena>% Belirli arenadaki galibiyet
%duel_arena_losses:<arena>% Belirli arenadaki maglubiyet
%duel_vs_wins:<oyuncu>% Belirli rakibe karsi galibiyet
%duel_vs_losses:<oyuncu>% Belirli rakibe karsi maglubiyet

12

Ganimet Sandigi Sistemi

  • Envanter dusurme acik olan duellolarda kaybeden oyuncunun esyalari yakalanir
  • Kazanan oyuncu icin ozel bir sandik olusturulur
  • /duel sandik komutuyla acilir
  • Birden fazla bekleyen sandik destekler (kuyruk sistemi)
  • Tum esyalar alindiginda sandik temizlenir
  • Sandik envanterinde bekleyen sandik sayisi gosterilir

13

Izleyici Sistemi

  • /spectate <oyuncu> veya /izle <oyuncu> ile aktif duelloyu izleme
  • Duello basina maksimum 20 izleyici (ayarlanabilir)
  • Izleyiciler arena merkezine isinlanir
  • Hasar alamaz, etkilesim yapamaz, esya toplayamaz
  • Duello bittiginde otomatik cikarilir ve eski konumuna geri gonderilir

14

Veritabani

SQLite Tablolari

Tablo Amac
player_stats Oyuncu istatistikleri (galibiyet, maglubiyet, ELO, seri, sure vb.)
duel_history Duello gecmisi (oyuncu basina son 50 kayit)
arena_stats Arena bazli performans (arena basina galibiyet/maglubiyet)
opponent_stats Rakip bazli kafa kafaya kayitlar
banned_players Duellodan men edilen oyuncular
arenas Arena konfigurasyonu (koordinatlar, sinirlar, spawn noktasi, Y ekseni)
duel_npcs Citizens NPC kayitlari (ID, tip, isim)

15

GUI Arayuzleri

GUI Aciklama
DuelRulesGUI Kural secim ekrani -- renkli ikonlarla kurallari ac/kapat, onayla
DuelRequestGUI Duello istegi goruntuleme -- kabul/red butonlari
DuelChallengeGUI NPC ile duello meydan oku -- online oyuncularin ELO ve W/L bilgisiyle kafalari
StatsGUI Istatistik goruntuleme -- detayli oyuncu istatistikleri envanter GUI'si
HistoryGUI Duello gecmisi goruntuleme -- son duellolar envanter GUI'si
TournamentGUI Turnuva bracket goruntuleme -- bracket durumu GUI'si
AdminPanelGUI Yonetim paneli -- ban, unban, force-end, istatistik sifirlama
DuelLootChestHolder Ganimet sandigi -- kaybeden oyuncunun esyalarini goruntuleme

16

Sikca Sorulan Sorular (SSS)

S: ELO sistemi nasil calisir? ELO, satranc dunyasindan uyarlanmis bir beceri puanlama sistemidir. Her oyuncu 1000 puanla baslar. Guclu rakipleri yenmek daha fazla puan kazandirir, zayif rakiplere kaybetmek daha fazla puan kaybettirir. K-factor (varsayilan 32) ile degisim hizini ayarlayabilirsiniz.

S: Kuyrukta ne kadar beklerim? Eslesme suresi sunucudaki aktif oyuncu sayisina ve ELO dagilimina baglidir. Baslangicta +-100 ELO araliginda rakip aranir. Her 30 saniyede tolerans 50 puan genisler, boylece uzun sure bekleyen oyuncular da eslesir (maks +-500).

S: Citizens eklentisi zorunlu mu? Hayir. Citizens opsiyonel bir bagimliliktir. Yuklu degilse NPC ozellikleri otomatik devre disi kalir, diger tum ozellikler normal calisir.

S: Turnuva sirasinda sunucu kapanirsa ne olur? Aktif turnuvalar bellekte tutulur, sunucu kapanirsa kaybolur. Turnuva sirasinda sunucuyu yeniden baslatmaktan kacinin.

S: Parti boyutu siniri nedir? Config'de team-duel.max-party-size ile ayarlanir (varsayilan 3). Bu deger 2 yapilirsa sadece 2v2, 3 yapilirsa 2v2 ve 3v3 duellolar yapilabilir.

S: AFK koruma nasil calisir? Plugin, duello icin teleport yaparken oyuncuya ozel bir metadata ekler. Bu metadata sayesinde AFK pluginleri (EssentialsX AFK, CMI vb.) oyuncuyu geri isinlayamaz. Sadece harici plugin teleportlari engellenir; ender pearl ve chorus fruit arena siniri icerisinde normal calisir, sinir disina cikis engellenir.

S: Arenalarda kac oyuncu olabilir? Her arena ayni anda yalnizca bir duello barindirir (1v1 veya takim). Birden fazla arena olusturarak es zamanli duello sayisini artirabilirsiniz.

S: Arena korumasi nasil calisir? Arena icerisinde blok kirma/koyma, sandik acma, su/lav dokme, piston kullanma, zirh standi/item frame kirma ve mob dogmasi varsayilan olarak engellenir. Her koruma config'den ayri ayri kapatilabilir. arceniaduel.bypass.arenaprotection izni ile tum korumalar bypass edilebilir.

S: Arena sinir kontrolu nedir? Aktif duello sirasinda oyuncular arena disina cikamaz. Yurume, ender pearl ve chorus fruit ile arena sinirlarini asmaya calismak engellenir. Sinirlar X, Y ve Z eksenlerinde kontrol edilir. Y siniri ayarlanmamis eski arenalar icin Y kontrolu otomatik atlanir.


17

Proje Yapisi

ArceniaDuel/
+-- pom.xml
+-- README.md
+-- src/
    +-- main/
        +-- java/com/arcenia/duel/
        |   +-- ArceniaDuel.java                    # Ana plugin sinifi
        |   +-- commands/
        |   |   +-- AdminCommand.java               # /dueladmin (NPC dahil)
        |   |   +-- ArenaSetupCommand.java          # /duelarena (status dahil)
        |   |   +-- BerabereCommand.java            # /berabere
        |   |   +-- DuelCommand.java                # /duel (queue, team dahil)
        |   |   +-- DuelHistoryCommand.java         # /duelhistory
        |   |   +-- DuelListCommand.java            # /duellist
        |   |   +-- DuelRankCommand.java            # /duelrank
        |   |   +-- PartyCommand.java               # /party
        |   |   +-- SpectateCommand.java            # /spectate
        |   |   +-- StatsCommand.java               # /stats
        |   |   +-- TournamentCommand.java          # /turnuva
        |   +-- gui/
        |   |   +-- AdminPanelGUI.java              # Yonetim paneli
        |   |   +-- DuelChallengeGUI.java           # NPC duello meydan oku
        |   |   +-- DuelLootChestHolder.java        # Ganimet sandigi
        |   |   +-- DuelRequestGUI.java             # Istek GUI'si
        |   |   +-- DuelRulesGUI.java               # Kural secim GUI'si
        |   |   +-- HistoryGUI.java                 # Duello gecmisi GUI'si
        |   |   +-- StatsGUI.java                   # Istatistik GUI'si
        |   |   +-- TournamentGUI.java              # Turnuva bracket GUI'si
        |   +-- hooks/
        |   |   +-- PlaceholderAPIHook.java          # PlaceholderAPI entegrasyonu
        |   +-- listeners/                           # 13 olay dinleyicisi
        |   |   +-- ArenaProtectionListener.java     # Kapsamli arena korumasi
        |   |   +-- BlockChangeListener.java
        |   |   +-- DuelCommandBlockListener.java
        |   |   +-- DuelListener.java
        |   |   +-- DuelLootChestListener.java
        |   |   +-- DuelTeleportListener.java        # AFK + ender pearl korumasi
        |   |   +-- InventoryClickListener.java
        |   |   +-- NPCInteractListener.java         # Citizens NPC etkilesimi
        |   |   +-- PlayerDeathListener.java
        |   |   +-- PlayerInteractListener.java
        |   |   +-- PlayerMoveListener.java          # Sinir kontrolu
        |   |   +-- PlayerQuitListener.java
        |   |   +-- WandInteractListener.java
        |   +-- managers/
        |   |   +-- ArenaManager.java               # Arena musaitlik ve secimi
        |   |   +-- ArenaResetManager.java          # Blok geri yukleme
        |   |   +-- ArenaSetupManager.java          # Arena kurulum oturumu
        |   |   +-- BlockTrackingManager.java       # Blok degisiklik takibi
        |   |   +-- ConfigManager.java              # Konfigurasyon yukleme
        |   |   +-- CooldownManager.java            # Bekleme suresi yonetimi
        |   |   +-- DatabaseManager.java            # SQLite islemleri
        |   |   +-- DiscordWebhookManager.java      # Discord bildirimleri
        |   |   +-- DuelLootChestManager.java       # Ganimet sandigi yonetimi
        |   |   +-- DuelManager.java                # Duello yasam dongusu
        |   |   +-- NPCManager.java                 # Citizens NPC yonetimi
        |   |   +-- PartyManager.java               # Parti yonetimi
        |   |   +-- PostDuelArenaManager.java       # Duello sonrasi arena yonetimi
        |   |   +-- QueueManager.java               # Kuyruk/eslestirme sistemi
        |   |   +-- StatsManager.java               # Istatistik yonetimi
        |   |   +-- TeamDuelManager.java            # Takim duellosu yonetimi
        |   |   +-- TournamentManager.java          # Turnuva yonetimi
        |   +-- models/
        |   |   +-- Arena.java                      # Arena veri modeli (Y ekseni dahil)
        |   |   +-- Duel.java                       # Duello durumu modeli
        |   |   +-- DuelHistory.java                # Gecmis kayit modeli
        |   |   +-- DuelNPC.java                    # NPC veri modeli
        |   |   +-- DuelRequest.java                # Istek modeli
        |   |   +-- DuelRules.java                  # Kural modeli
        |   |   +-- Party.java                      # Parti modeli
        |   |   +-- PlayerStats.java                # Istatistik modeli
        |   |   +-- QueueEntry.java                 # Kuyruk girdisi modeli
        |   |   +-- TeamDuel.java                   # Takim duellosu modeli
        |   |   +-- Tournament.java                 # Turnuva modeli
        |   +-- utils/
        |       +-- MessageUtil.java                # Mesaj formatlama
        +-- resources/
            +-- plugin.yml                          # Plugin metadata
            +-- config.yml                          # Varsayilan yapilandirma

18

Geliştirici API'si

ArceniaDuel, geliştiricilerin eklentinin temel özelliklerine erişebilmesi ve kendi sistemlerine entegre edebilmesi için genişletilebilir bir API yapısı sunar. Eklentinin sunduğu etkinlikleri (event) dinleyerek duello başlangıçlarını, bitişlerini ve oyuncu istatistiklerini takip edebilirsiniz.

API Kullanımı:

  • Etkinlikler: DuelStartEvent, DuelEndEvent ve DuelJoinEvent sınıflarını kullanarak duello süreçlerini kendi eklentilerinizle senkronize edebilirsiniz.
  • PlaceholderAPI: arceniaduel_elo, arceniaduel_wins ve arceniaduel_losses gibi placeholder'lar ile oyuncu verilerini skor tablolarında veya sohbet formatlarında kolayca sergileyebilirsiniz.
  • Entegrasyon: Citizens NPC API desteği sayesinde, özel NPC'ler üzerinden duello kuyruğuna giriş ve istatistik görüntüleme işlemlerini tetikleyebilirsiniz.

Daha detaylı teknik dokümantasyon ve örnek kod blokları için projenin GitHub üzerindeki Javadocs klasörünü inceleyebilirsiniz.

19

Sorun Giderme (Troubleshooting)

Sorun Giderme (Troubleshooting)

  • Java Sürümü: Eklentinin çalışması için sunucunuzda Java 21 veya üzeri yüklü olduğundan emin olun.
  • Sunucu Sürümü: ArceniaDuel yalnızca Spigot/Paper 1.21+ sürümlerini destekler. Eski sürümlerde eklenti hata verebilir.
  • Arena Sorunları: Blok kırma veya komut engelleme çalışmıyorsa, arena sınırlarının doğru tanımlandığından ve Bypass yetkisine sahip olmadığınızdan emin olun.
  • Komut Engelleme: Duello sırasında /spawn veya /tp gibi komutlar engellenmiyorsa, eklentinin diğer komut yönetim eklentileriyle çakışıp çakışmadığını kontrol edin.
  • Bağımlılıklar: PlaceholderAPI veya Citizens NPC entegrasyonu ile ilgili sorun yaşıyorsanız, ilgili eklentilerin güncel olduğundan ve sunucuda yüklü olduğundan emin olun.
  • Hatalı Davranışlar: Sorun devam ederse, konsoldaki hata kayıtlarını (stack trace) inceleyin ve eklentinin en güncel sürümünü kullandığınızdan emin olun.

auto_awesome Benzer Projeler