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

  1. Projeyi build edin:
    mvn clean package
    
  2. Oluşan ArceniaCore-1.0.0.jar dosyasını plugins/ klasörüne kopyalayın.
  3. Sunucuyu başlatın — config.yml, lang_tr.yml ve operators.yml otomatik oluşturulacaktır.
  4. Yapılandırma dosyalarını düzenleyip /core reload ile 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 onay ile 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)
  • /etiket ile 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)

  • /yc ile 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