Sunucuna yeni oyuncular gelmeye başladığında ilk sorun genellikle aynıdır: biri doğma noktasındaki yapıları kırar, birinin evindeki sandıklar boşaltılır ya da ortak bir pazar alanı lavla doldurulur. Olan biteni sonradan geri almak mümkündür; bunu CoreProtect ile geri alma yazısında anlattık. Ama asıl istenen, zararın hiç oluşmamasıdır. WorldGuard bunun için yazılmış bir eklentidir: dünyada bir alan seçer, ona bir ad verir ve o alanda kimin ne yapabileceğini kurallarla belirlersin. Bu rehber doğma noktasını korumaktan oyunculara kendi bölgelerini vermeye kadar temel kullanımı anlatır.
Kurulum: WorldGuard tek başına çalışmaz
WorldGuard, alan seçme işini WorldEdit eklentisine bırakır. Bu yüzden ikisini birlikte kurman gerekir. Eklenti ailesinden bir yazılım (Paper, Purpur, Spigot) kullanıyorsan iki eklentiyi de panelden kurabilir ya da dosya yöneticisiyle plugins klasörüne yükleyebilirsin. Sürüm seçerken sunucunun Minecraft sürümüyle uyumlu olanları al; WorldGuard ile WorldEdit'in birbirine uyan sürümleri birlikte kullanılmalıdır. Kurulumdan sonra sunucuyu yeniden başlat. Açılışta konsolda iki eklentinin de hatasız yüklendiğini gördüğünde hazırsın.
Bölge işlemlerini yapacak kişinin yetkisi olmalıdır. Başlarken bunu OP olarak yapabilirsin; ekip büyüdüğünde yetkileri LuckPerms ile yetki ve rütbe sistemi yazısındaki gibi gruplara dağıtmak daha güvenlidir.
Bölge nedir, nasıl seçilir?
WorldGuard'da bölge (region), dünyada sınırları belli bir hacimdir. Bir bölge oluşturduğun anda varsayılan davranış devreye girer: bölgenin üyesi ya da sahibi olmayan oyuncular orada blok kıramaz, blok koyamaz ve çoğu nesneyi kullanamaz. Yani yalnızca bir bölge tanımlamak bile temel korumayı sağlar.
Alanı seçmek için WorldEdit'in seçme aracını kullanırsın:
//wandkomutuyla seçme aracını (tahta balta) al.- Korumak istediğin alanın bir köşesindeki bloğa sol tıkla; bu birinci noktadır.
- Karşı köşedeki bloğa sağ tıkla; bu ikinci noktadır. İstersen durduğun yeri
//pos1ve//pos2komutlarıyla da işaretleyebilirsin. - Seçim yalnızca iki noktanın arasındaki yüksekliği kapsar. Alanın gökyüzünden yeraltına kadar tamamen korunmasını istiyorsan
//expand vertkomutunu çalıştır; seçim dünyanın alt ve üst sınırına kadar uzar. - Bölgeyi oluştur:
/rg define spawn
/rg, /region komutunun kısaltmasıdır; ikisi de aynı işi yapar. Bölge adlarını küçük harfle ve boşluksuz yaz: spawn, pazar, ali-evi gibi.
Doğma noktasını korumak
Minecraft'ın kendi ayarlarında, server.properties dosyasında spawn-protection adlı bir değer vardır. Bu değer, doğma noktası çevresinde belirli bir yarıçapta OP olmayanların blok değiştirmesini engeller. Basit ama kaba bir korumadır: yalnızca kare bir alanı kapsar ve hiçbir ayrıntısı yoktur. WorldGuard kullanacaksan bu değeri 0 yapıp korumayı tamamen WorldGuard'a bırakmak, iki sistemin birbirine karışmasını önler.
Doğma alanını yukarıdaki adımlarla spawn adıyla tanımladıktan sonra bayraklarla ince ayar yaparsın. Tipik bir doğma bölgesi için:
/rg flag spawn pvp deny
/rg flag spawn mob-spawning deny
/rg flag spawn tnt deny
/rg flag spawn creeper-explosion deny
/rg flag spawn fire-spread deny
/rg flag spawn greeting &aSunucuya hoş geldin!
Bu ayarlarla doğma alanında oyuncular birbirine vuramaz, yaratık doğmaz, patlamalar ve yangın bir şeye zarar vermez; alana giren oyuncu da bir karşılama mesajı görür.
Bayraklar: bölgenin kuralları
Bayrak (flag), bir bölgedeki tek bir davranışı açan ya da kapatan kuraldır. Genel biçimi /rg flag <bölge> <bayrak> <değer> şeklindedir. Bir bayrağı kaldırıp varsayılana dönmek için değeri boş bırakman yeterlidir: /rg flag spawn pvp. Sık kullanılanlar:
buildBlok kırma ve koymanın genel izni. deny yapılırsa üyeler de inşa edemez.
pvpOyuncuların birbirine hasar verip veremeyeceği.
chest-accessSandık ve benzeri kapların açılması.
useKapı, düğme, şalter gibi nesnelerin kullanımı.
mob-spawningBölgede yaratıkların doğması.
entry / exitBölgeye girişin ya da bölgeden çıkışın engellenmesi.
greeting / farewellGirişte ve çıkışta gösterilen mesaj.
Bir bayrağı yalnızca belirli bir oyuncu kümesine uygulamak için -g seçeneği vardır. Örneğin bir arenaya yalnızca üyelerin girmesini istiyorsan: /rg flag arena -g nonmembers entry deny. Burada nonmembers, bölgenin üyesi ya da sahibi olmayanlar demektir; members, owners ve all değerleri de kullanılabilir.
Dikkat edilmesi gereken bir nokta: build deny bayrağı üyeleri de durdurur. Bir bölgede yalnızca yabancıların inşa etmesini engellemek istiyorsan bu bayrağa hiç dokunma; varsayılan koruma zaten bunu yapar.
Üye ve sahip eklemek
Bölgede iki tür yetkili kişi vardır. Üyeler bölgede inşa edebilir ve nesneleri kullanabilir. Sahipler bunlara ek olarak bölgenin üye listesini ve, yetkileri varsa, bayraklarını yönetebilir.
- Üye ekle:
/rg addmember ali-evi Ali - Sahip ekle:
/rg addowner ali-evi Ali - Üye çıkar:
/rg removemember ali-evi Veli - Sahip çıkar:
/rg removeowner ali-evi Ali
Tek tek oyuncu yerine bir yetki grubunu da ekleyebilirsin: /rg addmember pazar g:esnaf komutu, yetki eklentindeki esnaf grubunda bulunan herkesi o bölgeye üye yapar. Grup üyeliği değiştikçe bölgedeki hak da kendiliğinden değişir; her yeni esnafı bölgeye ayrıca eklemen gerekmez.
İç içe bölgeler ve öncelik
Bölgeler üst üste binebilir. Örneğin büyük bir sehir bölgesinin içinde her oyuncuya ayrı bir arsa bölgesi verebilirsin. İki bölge çakıştığında hangisinin kuralının geçerli olacağını öncelik (priority) belirler; yüksek sayı kazanır:
/rg setpriority sehir 0
/rg setpriority ali-evi 10
Dünyanın tamamını kapsayan, sınırı olmayan özel bir bölge de vardır: __global__. Örneğin dünyanın her yerinde ateşin yayılmasını kapatmak için /rg flag __global__ fire-spread deny yazabilirsin. Bu bölgeye inşa bayrağı koyarken dikkatli ol; yanlış bir ayar herkesin her yerde inşa etmesini engelleyebilir.
Bölgeleri incelemek ve yönetmek
/rg info: Bulunduğun yerdeki bölgenin sahiplerini, üyelerini ve bayraklarını gösterir. Bir ad verirsen o bölgeyi gösterir:/rg info spawn./rg list: Bu dünyadaki bölgeleri listeler./rg select spawn: Bölgenin sınırlarını yeniden seçer; ardından seçimi büyütüp/rg redefine spawnile bölgeyi güncelleyebilirsin./rg remove ali-evi: Bölgeyi siler. Bu yalnızca korumayı kaldırır; içindeki yapılara dokunmaz.
Bölge verileri sunucu klasöründe, plugins/WorldGuard/worlds/<dünya adı>/regions.yml dosyasında durur. Dosya yöneticisinden açıp elle düzenlemek mümkün olsa da komutları kullanmak daha güvenlidir; dosyayı değiştirirsen ardından /rg load ile yeniden yükle.
Sık yapılan hatalar
- OP hesabıyla test etmek. Operatörler korumayı aşabilir. Bölgenin çalışıp çalışmadığını OP olmayan bir hesapla, üye olmayan bir oyuncu olarak dene.
- Dikey genişletmeyi unutmak. Yalnızca yerde iki nokta seçip bölge tanımlarsan oyuncular bölgenin altından kazarak ya da üstünden inşa ederek içeri girebilir.
//expand vertalışkanlık olsun. - Her şeyi
__global__ile çözmeye çalışmak. Genel kurallar dünyanın tamamını etkiler; oraya yalnızca gerçekten her yerde geçerli olması gerekenleri yaz. - Bölgeyi silince yapının geri geleceğini sanmak. WorldGuard engeller ama geri almaz. Zarar oluştuysa CoreProtect gibi bir kayıt eklentisine ihtiyacın var.
WorldGuard'ı hayatta kalma sunucusunun diğer eklentileriyle birlikte nasıl kurgulayacağını survival sunucusu için eklenti seti yazısında bulabilirsin.