arceniagenel
ArceniaCore,
schedule
01
📋 İçindekiler
02
📦 Gereksinimler
| Gereksinim | Versiyon |
|---|---|
| Minecraft Server | Paper 1.21.8 |
| Java | 21+ |
| Build Tool | Maven |
Opsiyonel Bağımlılıklar
| Plugin | Açıklama |
|---|---|
| SuperVanish / PremiumVanish | Vanish entegrasyonu ve sohbet maskeleme |
| PlaceholderAPI | Placeholder desteği |
03
🚀 Kurulum
- Projeyi build edin:
mvn clean package - Oluşan
ArceniaCore-1.0.0.jardosyasınıplugins/klasörüne kopyalayın. - Sunucuyu başlatın —
config.yml,lang_tr.ymlveoperators.ymlotomatik oluşturulacaktır. - Yapılandırma dosyalarını düzenleyip
/core reloadile yeniden yükleyin.
04
✨ Özellikler
🏠 Ev Sistemi
- İzin tabanlı ev limitleri (3 / 5 / 10 / sınırsız)
- GUI ile ev yönetimi
- Async SQLite ile kayıt
🌀 Warp Sistemi
- Sunucu geneli warp noktaları
- Warp başına izin kontrolü
- GUI ile warp listesi
🔀 Işınlanma (Teleport)
- TPA sistemi (istek / kabul / ret)
- Warmup ve cooldown desteği
- Hareket algılama ile iptal
🏰 Spawn Sistemi
- Spawn noktası belirleme ve ışınlanma
- Otomatik yeniden doğma (AutoRespawn)
🛡️ Doğuş Koruması (Spawn Protection)
- İlk girişte 1 saat tam koruma
- Sunucu yeniden başlatması sonrası devam eder
- Engellenenler: hasar alma/verme, eşya bırakma, sandık/envanter açma, buton/kapı etkileşimi
/korumakapat onayile erken kapatma- Custom eventler:
PlayerProtectionStartEvent,PlayerProtectionEndEvent
⚔️ Mini Komut Paketi
- 9 adet yardımcı/yetkili komutu
- Hibrit izin modeli: OP olan herkes kullanabilir VEYA permission node atanabilir
- Tüm komutlar Tab completion destekler
🏷️ Etiket/Mention Sistemi
- Sohbette
@OyuncuAdıyazılarak etiketleme - Etiketlenen oyuncuya: title + actionbar + ses efekti
- Anti-spam cooldown (3 saniye)
- Vanish kontrolü (gizli oyuncular etiketlenemez)
/etiketile bildirim aç/kapat
👻 Vanish Entegrasyonu (SuperVanish)
- Gizli yetkililerin sohbet mesajları "Bir Yetkili" olarak maskelenir
- Ölüm mesajları maskelenir
- Gerçek isimler sadece konsolda görünür
- Giriş/çıkış mesajları etkilenmez
💬 Yetkili Sohbeti (Staff Chat)
/ycile toggle mod/yc <mesaj>ile tek seferlik mesaj- MiniMessage format desteği
- Ses bildirimi
- Vanish maskeleme desteği
🔧 Altyapı & Kalite
- Async SQLite — HikariCP bağlantı havuzu
- Bellek önbellekleme — ConcurrentHashMap
- MiniMessage format desteği
- Modüler yapı — Her özellik ayrı ayrı açılıp kapatılabilir
- Denetim günlüğü (Audit Logging)
- Güvenli konfigürasyon yeniden yükleme (
/core reload) - PlaceholderAPI entegrasyonu
- AutoPickup — Otomatik eşya toplama
- Gece Görüşü — Kalıcı gece görüşü efekti
05
🎮 Komutlar
Oyuncu Komutları
| Komut | Açıklama | Kullanım |
|---|---|---|
/home [isim] |
Eve ışınlan | /home yatak |
/sethome <isim> |
Ev kaydet | /sethome maden |
/delhome <isim> |
Ev sil | /delhome eski |
/homes |
Evleri listele | /homes |
/warp <isim> |
Warp noktasına ışınlan | /warp spawn |
/warps |
Warp listesi | /warps |
/tpa <oyuncu> |
Işınlanma isteği gönder | /tpa Steve |
/tpaccept |
İsteği kabul et | /tpaccept |
/tpdeny |
İsteği reddet | /tpdeny |
/spawn |
Spawn'a ışınlan | /spawn |
/korumakapat [onay] |
Doğuş korumasını kapat | /korumakapat onay |
/etiket |
Etiket bildirimlerini aç/kapat | /etiket |
Yetkili / OP Komutları
Not: Bu komutlar OP olan oyuncular tarafından doğrudan kullanılabilir. OP olmayanlar için ilgili permission node gereklidir.
| Komut | Açıklama | İzin |
|---|---|---|
/fly |
Uçuş modunu aç/kapat | arcenia.fly |
/god |
Ölümsüzlük modunu aç/kapat | arcenia.god |
/thor |
Baktığınız bloğa yıldırım düşürün | arcenia.thor |
/whois <oyuncu> |
Oyuncu detayını görüntüle (IP, sağlık, konum vb.) | arcenia.whois |
/seen <oyuncu> |
Oyuncunun son görülme zamanı | arcenia.seen |
/playtime [oyuncu] |
Toplam oynama süresi | arcenia.playtime |
/jump |
Baktığınız bloğa ışınlan (120 blok menzil) | arcenia.jump |
/top |
Bulunduğunuz X/Z'de en yüksek bloğa ışınlan | arcenia.top |
/back [numara|list] |
Son 5 konumdan birine geri dön | arcenia.back |
/yc [mesaj] |
Yetkili sohbetini aç/kapat veya tek mesaj gönder | arcenia.staffchat |
Yönetim Komutları
| Komut | Açıklama | İzin |
|---|---|---|
/setwarp <isim> |
Warp noktası oluştur | arcenia.warp.set |
/delwarp <isim> |
Warp noktası sil | arcenia.warp.delete |
/setspawn |
Spawn noktası ayarla | arcenia.spawn.set |
/core reload |
Yapılandırmayı yeniden yükle | arcenia.admin.reload |
/core admin |
Yönetici GUI'sini aç | arcenia.admin.gui |
/core debug |
Debug bilgisini görüntüle | arcenia.admin.debug |
06
🔐 İzinler (Permissions)
Oyuncu İzinleri (Varsayılan: true)
| İzin | Açıklama |
|---|---|
arcenia.home.use |
/home komutu |
arcenia.home.set |
/sethome komutu |
arcenia.home.delete |
/delhome komutu |
arcenia.home.list |
/homes komutu |
arcenia.warp.use |
/warp komutu |
arcenia.warp.list |
/warps komutu |
arcenia.tp.request |
TPA isteği gönderme |
arcenia.tp.accept |
TPA isteği kabul etme |
arcenia.tp.deny |
TPA isteği reddetme |
arcenia.spawn.use |
/spawn komutu |
arcenia.gui.home |
Ev GUI'si |
arcenia.gui.warp |
Warp GUI'si |
Ev Limitleri (Varsayılan: false)
| İzin | Limit |
|---|---|
arcenia.home.limit.3 |
3 ev |
arcenia.home.limit.5 |
5 ev |
arcenia.home.limit.10 |
10 ev |
arcenia.home.unlimited |
Sınırsız ev |
Yetkili / OP İzinleri (Varsayılan: op)
| İzin | Açıklama |
|---|---|
arcenia.fly |
Uçuş modu |
arcenia.god |
Ölümsüzlük modu |
arcenia.thor |
Yıldırım düşürme |
arcenia.whois |
Oyuncu bilgisi |
arcenia.seen |
Son görülme |
arcenia.playtime |
Oynama süresi |
arcenia.jump |
Blok ışınlanma |
arcenia.top |
En üst blok |
arcenia.back |
Geri dönme |
arcenia.staffchat |
Yetkili sohbeti |
arcenia.tp.bypasscooldown |
TPA cooldown atlama |
Operatör İzinleri (operators.yml gerektirir)
| İzin | Açıklama |
|---|---|
arcenia.warp.set |
Warp oluşturma |
arcenia.warp.delete |
Warp silme |
arcenia.spawn.set |
Spawn ayarlama |
arcenia.admin.reload |
Yapılandırma yeniden yükleme |
arcenia.admin.gui |
Yönetici paneli |
arcenia.admin.debug |
Debug komutları |
07
⚙️ Yapılandırma
config.yml
# Dil (tr / en)
language: tr
# Veritabanı
database:
filename: "arcenia.db"
pool-size: 5
# Işınlanma
teleport:
warmup: 3 # saniye
cooldown: 10 # saniye
tpa-timeout: 60 # saniye
cancel-on-move: true
move-threshold: 1.0
# Modül Aç/Kapat
modules:
homes: true
warps: true
teleport: true
spawn: true
autopickup: true
autorespawn: true
nightvision: true
protection: true # Doğuş koruması
commands: true # Mini komut paketi
mention: true # Etiket sistemi
vanish: true # Vanish entegrasyonu
staffchat: true # Yetkili sohbeti
# Doğuş Koruması
protection:
duration-minutes: 60
# Etiket Sistemi
mention:
cooldown-seconds: 3
# Vanish Maskeleme
vanish:
masked-chat-name: "Bir Yetkili"
masked-system-name: "Sistem"
mask-chat: true
mask-death: true
# Yetkili Sohbeti
staffchat:
prefix: "<dark_gray>[<dark_red>YC</dark_red>]</dark_gray>"
format: "<prefix> <gray><sender>: <white><message>"
sound: true
vanish-mask: true
Dil Dosyaları
lang_tr.yml— Türkçe (varsayılan)lang_en.yml— İngilizce
Tüm mesajlar MiniMessage formatını destekler. Renk, kalın, tıklanabilir metin ve gradyan gibi özellikler kullanılabilir.
operators.yml
Operatör yetkilendirmesi UUID tabanlıdır. Detaylar için operators.yml dosyasına bakınız.
08
📊 PlaceholderAPI
Aşağıdaki placeholder'lar PlaceholderAPI üzerinden kullanılabilir:
| Placeholder | Açıklama | Örnek Çıktı |
|---|---|---|
%arcenia_protection_active% |
Koruma aktif mi? | true / false |
%arcenia_protection_remaining% |
Kalan koruma süresi (dakika) | 45 |
%arcenia_fly% |
Uçuş modu durumu | true / false |
%arcenia_god% |
Ölümsüzlük modu durumu | true / false |
%arcenia_staffchat% |
Yetkili sohbeti durumu | true / false |
09
🔌 Geliştirici API
ArceniaCore, harici pluginlerin erişebileceği kapsamlı bir API sunar.
API'ye Erişim
ArceniaCore plugin = ArceniaCore.getInstance();
ArceniaCoreAPI api = plugin.getAPI();
İzin Kontrolleri
// İzin kontrolü (OP'yi yok sayar)
boolean hasPerm = api.hasPermission(player, "arcenia.home.use");
// Operatör kontrolü (operators.yml'den)
boolean isOp = api.isOperator(player);
// Operatör + izin kontrolü
boolean hasOpPerm = api.hasOperatorPermission(player, "arcenia.admin.reload");
// Ev limiti
int limit = api.getHomeLimit(player);
// Warp erişimi
boolean canAccess = api.canAccessWarp(player, "vip-area");
Ev Sistemi
// Tüm evleri getir (async)
CompletableFuture<List<Home>> homes = api.getHomes(playerUuid);
// Belirli bir evi getir
CompletableFuture<Home> home = api.getHome(playerUuid, "yatak");
// Ev sayısı
CompletableFuture<Integer> count = api.getHomeCount(playerUuid);
Warp Sistemi
// Warp getir
CompletableFuture<Warp> warp = api.getWarp("spawn");
// Tüm warp'ları listele
CompletableFuture<List<Warp>> warps = api.getAllWarps();
Oyuncu Ayarları
CompletableFuture<PlayerSettings> settings = api.getPlayerSettings(playerUuid);
Doğuş Koruması
// Koruma altında mı?
boolean isProtected = api.isUnderProtection(playerUuid);
// Kalan süre (milisaniye)
long remaining = api.getRemainingProtection(playerUuid);
// Korumayı kaldır (geri alınamaz)
api.removeProtection(playerUuid);
Modül Kontrolü
// Modül aktif mi?
boolean enabled = api.isModuleEnabled("protection");
Custom Eventler
// Koruma başladığında
@EventHandler
public void onProtectionStart(PlayerProtectionStartEvent event) {
Player player = event.getPlayer();
long duration = event.getDurationMs();
}
// Koruma bittiğinde
@EventHandler
public void onProtectionEnd(PlayerProtectionEndEvent event) {
Player player = event.getPlayer();
PlayerProtectionEndEvent.EndReason reason = event.getReason();
// EndReason: EXPIRED, MANUAL, ADMIN
}
10
📁 Dosya Yapısı
com.arcenia.core/
├── ArceniaCore.java # Ana plugin sınıfı
├── api/
│ └── ArceniaCoreAPI.java # Public API
├── command/
│ └── CoreCommand.java # /core komutu
├── database/
│ ├── DatabaseManager.java # HikariCP + SQLite
│ └── dao/
│ ├── AuditLogDAO.java
│ ├── BackLocationDAO.java
│ ├── HomeDAO.java
│ ├── PlayerDataDAO.java
│ ├── PlaytimeDAO.java
│ ├── SpawnProtectionDAO.java
│ └── WarpDAO.java
├── gui/
│ ├── AdminGUI.java
│ ├── BaseGUI.java
│ ├── GUIListener.java
│ ├── HomeGUI.java
│ └── WarpGUI.java
├── hook/
│ └── ArceniaPlaceholderExpansion.java
├── manager/
│ ├── ConfigManager.java
│ ├── LangManager.java
│ └── PlayerSettingsCache.java
├── model/
│ ├── AuditEntry.java
│ ├── Home.java
│ ├── PlayerSettings.java
│ ├── TeleportRequest.java
│ └── Warp.java
├── module/
│ ├── commands/ # Mini komut paketi
│ │ ├── BackCommand.java
│ │ ├── BackListener.java
│ │ ├── FlyCommand.java
│ │ ├── GodCommand.java
│ │ ├── GodListener.java
│ │ ├── JumpCommand.java
│ │ ├── PlaytimeCommand.java
│ │ ├── PlaytimeListener.java
│ │ ├── SeenCommand.java
│ │ ├── ThorCommand.java
│ │ ├── TopCommand.java
│ │ └── WhoisCommand.java
│ ├── home/
│ │ ├── HomeCommand.java
│ │ └── HomeManager.java
│ ├── mention/ # Etiket sistemi
│ │ ├── EtiketCommand.java
│ │ ├── MentionListener.java
│ │ └── MentionManager.java
│ ├── protection/ # Doğuş koruması
│ │ ├── KorumaKapatCommand.java
│ │ ├── PlayerProtectionEndEvent.java
│ │ ├── PlayerProtectionStartEvent.java
│ │ ├── SpawnProtectionListener.java
│ │ └── SpawnProtectionManager.java
│ ├── spawn/
│ │ ├── SpawnCommand.java
│ │ └── SpawnManager.java
│ ├── staffchat/ # Yetkili sohbeti
│ │ ├── StaffChatCommand.java
│ │ ├── StaffChatListener.java
│ │ └── StaffChatManager.java
│ ├── teleport/
│ │ ├── TeleportManager.java
│ │ └── TpaCommand.java
│ ├── utility/
│ │ ├── AutoPickupListener.java
│ │ ├── AutoRespawnListener.java
│ │ └── NightVisionListener.java
│ ├── vanish/ # Vanish entegrasyonu
│ │ ├── VanishChatListener.java
│ │ └── VanishManager.java
│ └── warp/
│ ├── WarpCommand.java
│ └── WarpManager.java
└── security/
├── AuditLogger.java
├── OperatorManager.java
└── PermissionManager.java
11
📚 Bağımlılıklar
| Kütüphane | Versiyon | Scope | Açıklama |
|---|---|---|---|
| Paper API | 1.21.8-R0.1-SNAPSHOT | provided | Minecraft sunucu API'si |
| HikariCP | 5.1.0 | compile (shaded) | Veritabanı bağlantı havuzu |
| SQLite JDBC | 3.45.1.0 | compile (shaded) | SQLite sürücüsü |
| SuperVanish | 6.2.19 | provided | Vanish entegrasyonu |
| PlaceholderAPI | 2.11.6 | provided | Placeholder desteği |
12
📄 Lisans
Bu proje Arcenia sunucusu için özel olarak geliştirilmiştir.
ArceniaCore · Minecraft Paper 1.21.8 · Java 21 · Maven