ArceniaVıpWorldGuard

Bu proje, Paper 1.21.8 ve üzeri sunucular için Java 21 tabanlı olarak geliştirilmiş 1.0.0-SNAPSHOT sürümüne sahip bir eklentidir. Sunucu altyapısı üzerinde çalışmak üzere optimize edilmiş olup güncel Minecraft sürümleriyle tam uyumluluk sağlar. Geliştirme aşamasındaki özellikleri ile sunucu yönetimine yönelik temel işlevler sunar.

schedule
01

Kısa Açıklama

ArceniaVipWorldGuard, Minecraft sunucularında WorldGuard bölgelerine LuckPerms grup tabanlı giriş kısıtlaması getiren bir Paper eklentisidir. Belirli WorldGuard bölgelerini "VIP bölge" olarak tanımlayarak yalnızca belirli LuckPerms gruplarına sahip oyuncuların bu bölgelere girebilmesini sağlar. Yetkisiz oyuncular bölgeye girmeye çalıştığında otomatik olarak engellenir ve özelleştirilebilir bir uyarı mesajı gösterilir.


02

Özellikler

  • Grup Tabanlı Bölge Koruması: WorldGuard bölgelerini LuckPerms gruplarıyla ilişkilendirerek yalnızca yetkili oyuncuların girmesine izin verir.
  • Çoklu Grup Desteği: Bir bölgeye birden fazla LuckPerms grubu atanabilir; oyuncu bu gruplardan herhangi birine sahipse giriş yapabilir.
  • Dünya (World) Desteği: Her bölge, bulunduğu dünyaya göre ayrı ayrı yönetilir. Farklı dünyalardaki aynı isimli bölgeler bağımsız yapılandırılabilir.
  • Tam Tab-Tamamlama: Tüm komutlar için akıllı tab-tamamlama desteği sunar (bölge isimleri, dünya isimleri, LuckPerms grupları).
  • Seçim (Selection) Sistemi: Bir bölgeyi seçtikten sonra tekrar tekrar bölge adı yazmadan grup ekleme/çıkarma işlemleri yapılabilir.
  • Bypass (Atlama) İzni: arceniavipworldguard.bypass iznine sahip oyuncular veya OP oyuncular tüm VIP bölge kısıtlamalarını atlar.
  • Özelleştirilebilir Mesajlar: Giriş engelleme mesajı config.yml üzerinden & renk kodlarıyla birlikte değiştirilebilir.
  • Otomatik Kayıt: Yapılan tüm değişiklikler anında config.yml dosyasına kaydedilir; sunucu yeniden başlatıldığında kaybolmaz.
  • WorldGuard Session Handler Entegrasyonu: Bölge giriş kontrolü, WorldGuard'ın kendi oturum yönetim sistemi (SessionManager) üzerinden yapılır; bu sayede hem yürüyerek hem de ışınlanarak yapılan tüm giriş denemeleri yakalanır.
  • Konsol Desteği: Komutlar sunucu konsolundan da kullanılabilir (dünya adı parametresi belirtilmesi gerekir).
  • Thread-Safe Mimari: Dahili kayıt defteri (VipRegionRegistry) ConcurrentHashMap kullanarak eş zamanlı erişime karşı güvenlidir.

03

Gereksinimler

Bağımlılık Minimum Sürüm Açıklama
Paper 1.21.8+ Sunucu yazılımı (Spigot desteklenmez)
WorldGuard 7.0.16+ Bölge yönetim eklentisi
LuckPerms 5.5+ İzin ve grup yönetim eklentisi
Java 21+ Çalışma ortamı

04

Kurulum

  1. Sunucunuzda Paper 1.21.8+, WorldGuard ve LuckPerms eklentilerinin yüklü ve çalışır durumda olduğundan emin olun.
  2. Derlenen arcenia-vip-worldguard-1.0.0-SNAPSHOT.jar dosyasını sunucunuzun plugins/ klasörüne kopyalayın.
  3. Sunucuyu yeniden başlatın veya eklentiyi yükleyin.
  4. Eklenti ilk çalıştığında plugins/ArceniaVipWorldGuard/config.yml dosyası otomatik olarak oluşturulacaktır.
  5. /vipbolge komutuyla VIP bölgelerinizi yapılandırmaya başlayın.

Not: WorldGuard veya LuckPerms bulunamazsa eklenti otomatik olarak devre dışı bırakılır ve konsola hata mesajı yazılır.


05

Komutlar

Tüm komutlar /vipbolge ana komutu altında çalışır.

Bölge Komutları

Komut Açıklama İzin
/vipbolge ekle <region> [world] Bir WorldGuard bölgesini seçer (VIP bölge olarak işaretlemek için). sec takma adıyla da kullanılabilir. arceniavipworldguard.region.select
/vipbolge bilgi [region] [world] Seçili veya belirtilen bölgenin VIP bilgilerini (tanımlı gruplar) gösterir. arceniavipworldguard.region.info
/vipbolge liste [world] Belirtilen dünyada (veya oyuncunun bulunduğu dünyada) tanımlı tüm VIP bölgeleri ve gruplarını listeler. arceniavipworldguard.region.list
/vipbolge sil [region] [world] Seçili veya belirtilen bölgenin tüm VIP grup tanımlarını siler ve seçimi kaldırır. arceniavipworldguard.region.remove

Grup Komutları

Komut Açıklama İzin
/vipbolge grup ekle <grup> Seçili bölgeye bir LuckPerms grubu ekler. arceniavipworldguard.group.add
/vipbolge grup ekle <region> <grup> [world] Belirtilen bölgeye doğrudan bir LuckPerms grubu ekler. arceniavipworldguard.group.add
/vipbolge grup sil <grup> Seçili bölgeden bir grubu kaldırır. arceniavipworldguard.group.remove
/vipbolge grup sil <region> <grup> [world] Belirtilen bölgeden bir grubu kaldırır. arceniavipworldguard.group.remove
/vipbolge grup liste [region] [world] Seçili veya belirtilen bölgenin gruplarını listeler. arceniavipworldguard.group.list
/vipbolge grup temizle [region] [world] Seçili veya belirtilen bölgenin tüm gruplarını temizler. arceniavipworldguard.group.clear

Diğer

Komut Açıklama İzin
/vipbolge yardim Tüm komutların kullanım bilgisini gösterir. arceniavipworldguard.use

06

İzinler

İzin Açıklama Varsayılan
arceniavipworldguard.admin Tüm VipBolge yönetim yetkilerini verir (aşağıdaki tüm izinleri kapsar). OP
arceniavipworldguard.use /vipbolge ana komutunu kullanma izni. false
arceniavipworldguard.region.select VIP bölge seçme komutu (ekle/sec). false
arceniavipworldguard.region.remove VIP bölge silme komutu (sil). false
arceniavipworldguard.region.list VIP bölge listeleme komutu (liste). false
arceniavipworldguard.region.info VIP bölge bilgi komutu (bilgi). false
arceniavipworldguard.group.add VIP bölgeye grup ekleme. false
arceniavipworldguard.group.remove VIP bölgeden grup silme. false
arceniavipworldguard.group.list VIP bölge gruplarını listeleme. false
arceniavipworldguard.group.clear VIP bölge tüm gruplarını temizleme. false
arceniavipworldguard.bypass VIP bölge giriş kısıtlamalarını tamamen atlar. false

Not: arceniavipworldguard.admin iznine sahip oyuncular otomatik olarak tüm alt izinlere sahip olur. Ayrıca OP oyuncular, kod düzeyinde giriş kontrolünde bypass yetkisine sahiptir.


07

Yapılandırma (config.yml)

Varsayılan config.yml dosyası:

messages:
  no-entry: "&cBu alana girmek icin su gruplardan birine sahip olmalisin: &f{groups}"
vip-regions: []

Anahtar Açıklamaları

Anahtar Tür Açıklama
messages.no-entry String Oyuncu VIP bölgeye giremediğinde gösterilecek mesaj. {groups} yer tutucusu, gerekli grup isimlerinin virgülle ayrılmış listesiyle değiştirilir. & ile Minecraft renk kodları desteklenir.
vip-regions Liste Tanımlı VIP bölgelerin listesi. Bu alan eklenti tarafından otomatik olarak yönetilir; komutlar üzerinden yapılan tüm değişiklikler buraya kaydedilir. Elle düzenleme gerekli değildir.

vip-regions Yapısı (Komutlarla Otomatik Oluşturulur)

Komutlarla bölge ve grup eklendiğinde config.yml dosyası şu şekilde güncellenir:

vip-regions:
  - world: "world"
    region: "vip_zone"
    groups:
      - "vip"
      - "mvp"
  - world: "world_nether"
    region: "nether_vip"
    groups:
      - "elite"

Her giriş şu alanları içerir:

Alan Açıklama
world Bölgenin bulunduğu dünyanın adı.
region WorldGuard bölgesinin kimliği (ID).
groups Bu bölgeye giriş için gereken LuckPerms grup adlarının listesi. Oyuncunun listedeki gruplardan en az birine sahip olması yeterlidir.

08

Nasıl Çalışır

1. Başlatma

Eklenti açıldığında şu adımları izler:

  • config.yml dosyasından kayıtlı VIP bölge tanımlarını VipRegionRegistry sınıfına yükler.
  • WorldGuard eklentisinin varlığını doğrular; bulunamazsa eklentiyi devre dışı bırakır.
  • LuckPerms servisini Bukkit ServicesManager üzerinden alır; bulunamazsa eklentiyi devre dışı bırakır.
  • WorldGuard'ın SessionManager sistemine özel VipRegionEntryHandler fabrikasını kaydeder.
  • /vipbolge komutunu VipBolgeCommand sınıfına bağlar (hem executor hem tab-completer olarak).

2. Giriş Kontrolü (VipRegionEntryHandler)

Bir oyuncu bir bölge sınırını her geçtiğinde (MOVE veya TELEPORT) şu kontrol zinciri çalışır:

  1. Girilen bölgelerin VipRegionRegistry içinde VIP bölge olarak tanımlı olup olmadığı kontrol edilir.
  2. Tanımlı değilse giriş serbest bırakılır.
  3. Oyuncu OP ise veya arceniavipworldguard.bypass iznine sahipse giriş serbest bırakılır.
  4. Girilen tüm VIP bölgelerin gerektirdiği gruplar birleştirilir (birden fazla bölgeye aynı anda girilebilir).
  5. Oyuncunun LuckPerms birincil grubu ve miras alınan grupları (getInheritedGroups) sorgulanır.
  6. Oyuncunun gruplarından herhangi biri, gerekli gruplardan biriyle eşleşirse giriş izni verilir.
  7. Hiçbir eşleşme yoksa oyuncunun girişi engellenir ve config.yml dosyasında tanımlı messages.no-entry mesajı gönderilir.

3. Bölge ve Grup Yönetimi (VipBolgeCommand)

/vipbolge komutuyla yöneticiler:

  • Bir WorldGuard bölgesini seçebilir (ekle/sec).
  • Seçili veya doğrudan belirtilen bölgeye LuckPerms grupları ekleyip çıkarabilir.
  • Tanımlı VIP bölgeleri ve gruplarını listeleyebilir.
  • Tüm değişiklikler anında bellekteki VipRegionRegistry kayıt defterine ve config.yml dosyasına yansıtılır.

4. Seçim Sistemi

Yöneticiler /vipbolge ekle <region> ile bir bölge seçtikten sonra, sadece /vipbolge grup ekle <grup> yazarak bölge adını tekrarlamadan işlem yapabilir. Seçimler oyuncu UUID'sine (veya konsol adına) göre bellekte tutulur ve sunucu oturumu boyunca geçerlidir.

5. Kapatma

Eklenti devre dışı bırakıldığında, kayıtlı VipRegionEntryHandler.Factory WorldGuard'ın SessionManager sisteminden temiz bir şekilde kaldırılır.


09

Kullanım Örneği

# 1. Bir WorldGuard bölgesini VIP bölge olarak seçin
/vipbolge ekle spawn_vip

# 2. Seçili bölgeye LuckPerms grupları ekleyin
/vipbolge grup ekle vip
/vipbolge grup ekle mvp

# 3. Bölge bilgisini kontrol edin
/vipbolge bilgi

# 4. Tüm VIP bölgeleri listeleyin
/vipbolge liste

# 5. Bir grubu bölgeden kaldırın
/vipbolge grup sil mvp

# 6. Farklı bir dünyada doğrudan bölge ve grup tanımlayın
/vipbolge grup ekle nether_zone elite world_nether

auto_awesome Benzer Projeler