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 Uyumlu —
keepInventoryaktifse veya eşya yoksa sandık oluşturulmaz
02
Gereksinimler
| Gereksinim | Minimum Versiyon |
|---|---|
| Java | 21+ |
| Spigot / Paper | 1.21+ |
03
Kurulum
- Projeyi derleyin veya hazır JAR dosyasını indirin
- JAR dosyasını sunucunuzun
plugins/klasörüne kopyalayın - Sunucuyu başlatın —
plugins/ArceniaDeathChest/config.ymlotomatik oluşturulur - İsteğinize göre
config.ymldosyasını düzenleyin - 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:
- Veri geçici dosyaya (
lootdata.yml.tmp) yazılır - 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:
- Otomatik deserializasyon — Bukkit ItemStack çevirimi denenir
- Manuel onarım — Map verisinden
ItemStack.deserialize()ile kurtarma - BARRIER gösterimi — Onarılamayan eşyalar BARRIER bloğu olarak gösterilir (orijinal bilgiler lore'da saklanır)
- Ham veri koruması — Bozuk veriler
failedDataiç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 |