ArceniaDeathChest

Versiyon: 2.0 Platform: Spigot / Paper 1.21+ Java: 21+

schedule
01

Özellikler

  • Otomatik Ölüm Sandığı — Oyuncu öldüğünde tüm eşyalar tek bir özel sandık eşyası olarak yere düşer
  • GUI ile Eşya Alma — Sandığa sağ tıklayarak 54 slotlu envanter üzerinden eşyaları geri al
  • Çok Katmanlı Envanter Koruması — Sandığa eşya koyma, sürükleme, Shift+Tık ve hotbar swap engellenir
  • Otomatik Temizlik — Tüm eşyalar alındığında sandık eşyası otomatik olarak yok olur
  • Veri Kalıcılığı — YAML tabanlı depolama, her ölümde anında kayıt
  • Atomik Dosya Yazımı — Geçici dosyaya yazıp rename ile veri kaybı önleme
  • Otomatik Yedekleme — Veri yüklenirken backups/ klasörüne zaman damgalı yedek oluşturma
  • Bozuk Veri Onarımı — Yüklenemeyen eşyalar otomatik onarılmaya çalışılır, onarılamazsa BARRIER ile gösterilir
  • Ses Efektleri — Sandık açma, kapama ve yok olma sesleri
  • Tamamen Özelleştirebilir — Sandık adı, açıklaması ve tüm mesajlar config'den değiştirilebilir
  • KeepInventory UyumlukeepInventory aktifse veya eşya yoksa sandık oluşturulmaz

02

Gereksinimler

Gereksinim Minimum Versiyon
Java 21+
Spigot / Paper 1.21+

03

Kurulum

  1. Projeyi derleyin veya hazır JAR dosyasını indirin
  2. JAR dosyasını sunucunuzun plugins/ klasörüne kopyalayın
  3. Sunucuyu başlatın — plugins/ArceniaDeathChest/config.yml otomatik oluşturulur
  4. İsteğinize göre config.yml dosyasını düzenleyin
  5. Eklenti sıfır konfigürasyonla varsayılan ayarlarla çalışır

04

Komutlar

Bu plugin hiçbir komut içermez. Tüm işlevler otomatik olarak olay (event) tabanlı çalışır:

  • Oyuncu ölür → sandık eşyası otomatik oluşturulur
  • Sandığa sağ tıklanır → GUI otomatik açılır
  • Tüm eşyalar alınır → sandık otomatik yok olur

05

İzinler

İzin Varsayılan Açıklama
arcenia.deathchest.use true Eklenti kullanım izni

06

Nasıl Çalışır

Oyuncu ölür
    |
    v
keepInventory aktif mi veya eşya yok mu?
    |
  Evet --> Hiçbir şey yapılmaz
    |
  Hayır --> Tüm düşen eşyalar toplanır
            |
            v
    Benzersiz UUID ile LootManager'a kaydedilir
            |
            v
    Özel CHEST eşyası oluşturulur:
      - Özel isim: "&c<OyuncuAdi> &7Ganimeti"
      - Lore: Tarih + "Sağ tıkla" bilgisi
      - NBT: Gizli UUID (PersistentDataContainer)
            |
            v
    Orijinal droplar temizlenir, sadece sandık yere düşer
            |
            v
    Oyuncu sandığa SAĞ TIKLAR
            |
            v
    54 slotlu "Ölüm Sandığı" GUI'si açılır
      - Sadece eşya ALMA izni var
      - Eşya koyma, sürükleme, hotbar swap ENGELLİ
            |
            v
    GUI kapatıldığında:
      |
      ├─ Eşya kalmadıysa:
      |     - "Tüm eşyaları aldın, sandık yok oldu!" mesajı
      |     - Sandık eşyası envanterden silinir
      |     - Eşya kırılma sesi çalınır
      |
      └─ Eşya kaldıysa:
            - "Bazı eşyalar sandıkta kaldı." mesajı
            - Kalan eşyalar güncellenir ve kaydedilir
            - Sandık kapanma sesi çalınır

07

Yapılandırma (config.yml)

Plugin ilk çalıştığında plugins/ArceniaDeathChest/config.yml dosyası otomatik oluşturulur.

# Mesajlar
messages:
  prefix: "&3Arcenia &8» &7"
  chest-consumed: "&aTum esyalari aldin, sandik yok oldu!"
  items-left: "&eBazi esyalar sandikta kaldi."
  chest-empty-error: "&cBu sandik zaten bos veya verisi bozuk, siliniyor..."

# Sandik Esyasi Gorunumu
chest-item:
  # Sandik adi (%player% = olen oyuncunun adi)
  name: "&c%player% &7Ganimeti"
  # Sandik aciklamasi (%date% = olum tarihi)
  lore:
    - "&7Bu sandik olen oyuncunun"
    - "&7esyalarini icerir."
    - ""
    - "&7Tarih: &f%date%"
    - "&eAcmak icin sag tikla!"

Yapılandırma Açıklamaları

Ayar Açıklama
messages.prefix Tüm mesajların başına eklenen ön ek
messages.chest-consumed Tüm eşyalar alındığında gösterilen mesaj
messages.items-left Sandıkta eşya kaldığında gösterilen mesaj
messages.chest-empty-error Boş veya bozuk sandık açılmaya çalışıldığında gösterilen mesaj
chest-item.name Yere düşen sandık eşyasının adı (%player% destekli)
chest-item.lore Sandık eşyasının açıklama satırları (%date% destekli)

Placeholder'lar

Placeholder Kullanıldığı Yer Açıklama
%player% chest-item.name Ölen oyuncunun adı
%date% chest-item.lore Ölüm tarihi ve saati (dd/MM/yyyy HH:mm formatı)

08

Envanter Koruması

Ölüm sandığı GUI'si çok katmanlı bir koruma sistemiyle eşya koymayı engeller:

Koruma Katmanı Engellenen İşlem
Cursor kontrolü Mouse ucunda eşya varken sandığa tıklama
Shift+Tık engeli Alt envanterden sandığa Shift+Tık ile eşya taşıma
Hotbar swap engeli 1-9 tuşlarıyla sandık içindeki eşyayı değiştirme
Sürükleme engeli Eşyaları sandık slotlarına sürükleme
Sandık eşyası koruması GUI içinde sandık eşyasının kendisine tıklama

Yalnızca eşya alma işlemine izin verilir.


09

Veri Saklama ve Güvenlik

Depolama

  • Dosya: plugins/ArceniaDeathChest/lootdata.yml
  • Format: UUID bazlı YAML — her sandık benzersiz UUID anahtarıyla saklanır
  • Kayıt Zamanı: Her ölümde ve her GUI kapanışında anında kaydedilir

Atomik Yazım

Veri kaybı önlemek için iki aşamalı kayıt yapılır:

  1. Veri geçici dosyaya (lootdata.yml.tmp) yazılır
  2. Eski dosya silinir, geçici dosya yeniden adlandırılır

Otomatik Yedekleme

  • Veri yüklenirken mevcut dosyanın yedeği alınır
  • Yedek dosyalar: plugins/ArceniaDeathChest/backups/lootdata_YYYY-MM-DD_HH-mm-ss.yml

Bozuk Veri Onarımı

Yüklenemeyen eşya verileri için çok katmanlı kurtarma sistemi:

  1. Otomatik deserializasyon — Bukkit ItemStack çevirimi denenir
  2. Manuel onarım — Map verisinden ItemStack.deserialize() ile kurtarma
  3. BARRIER gösterimi — Onarılamayan eşyalar BARRIER bloğu olarak gösterilir (orijinal bilgiler lore'da saklanır)
  4. Ham veri koruması — Bozuk veriler failedData içinde saklanır, diske geri yazılır ve kaybolmaz

10

Ses Efektleri

Durum Ses
Sandık GUI'si açıldığında BLOCK_CHEST_OPEN
Sandık kapatıldığında (eşya kaldı) BLOCK_CHEST_CLOSE
Sandık yok olduğunda (tüm eşyalar alındı) ENTITY_ITEM_BREAK

auto_awesome Benzer Projeler