Bir sabah ortak üssün yarısının yıkıldığını ya da sandıkların boşaltıldığını görebilirsin. Yedekten geri dönmek bütün dünyayı o ana sarar; arada herkesin yaptığı iyi işler de kaybolur. CoreProtect farklı çalışır: dünyada kırılan ve konan her bloğu, sandıklara konan ve alınan her eşyayı kayda geçirir. Böylece yalnız zarar veren oyuncunun yaptıklarını, yalnız ilgili bölgede geri alırsın.

Kurulum ve ilk ayar

CoreProtect eklenti ailesindeki yazılımlarda (Paper, Purpur, Spigot) çalışır. Panelin mağazasından kur ve sunucuyu yeniden başlat; kayıt o andan itibaren başlar. Kurulmadan önce olan bir şeyi göremez, bu yüzden sorun çıkmasını beklemeden, sunucu açılır açılmaz kurmak gerekir.

Komutları kullanabilmek için oyuncunun yetkisi olmalıdır. Yetki eklentisi kullanıyorsan güvendiğin yardımcılara coreprotect.inspect ve coreprotect.lookup, geri alma yapacak yöneticilere ayrıca coreprotect.rollback ve coreprotect.restore ver. Geri alma güçlü bir araçtır; herkese açmamak gerekir.

İnceleme modu: tek bloğun geçmişi

co inspect (kısaca co i) yazınca inceleme modu açılır. Bu moddayken bir bloğa sol tıkladığında o bloğu kimin, ne zaman koyduğunu ya da kırdığını görürsün. Bir sandığa, fırına ya da varile sağ tıkladığında içine kimin ne koyup aldığı listelenir. Aynı komutu tekrar yazınca moddan çıkarsın.

İnceleme modu, kimin yaptığını bilmediğin durumlarda ilk adımdır. Yıkılmış bir duvarın birkaç noktasına tıklamak çoğu zaman tek bir isim gösterir.

Arama: bir oyuncunun yaptıklarının listesi

Kimin yaptığını bulduktan sonra o oyuncunun bölgedeki bütün işlerini görmek için arama komutunu kullan:

co lookup u:OyuncuAdi t:2h r:20

  • u: oyuncunun adı. Virgülle birden fazla ad yazabilirsin.
  • t: ne kadar geriye bakılacağı: 30m, 2h, 3d gibi.
  • r: bulunduğun yerin çevresinde kaç blokluk yarıçapa bakılacağı.
  • a: yalnız belli bir eylem türü: a:block blok kırıp koyma, a:container sandık hareketleri.

Sonuçlar sayfa sayfa listelenir; aramayı daraltmak için süreyi kısalt ya da eylem türü ekle.

Geri alma ve geri getirme

Aramada gördüğün işleri geri almak için aynı parametrelerle co rollback kullanılır:

co rollback u:OyuncuAdi t:2h r:20

Bu komut o oyuncunun son iki saatte, 20 blok yarıçapındaki değişikliklerini tersine çevirir: kırdığı bloklar yerine konur, koyduğu bloklar kalkar, sandıklardan aldığı eşyalar geri döner. Yanlış bir şeyi geri aldığını fark edersen co restore aynı parametrelerle işlemi geri getirir.

Yarıçapı küçük ve süreyi dar tut. r:#global bütün dünyayı kapsar; dikkatsiz bir geri alma, o oyuncunun haklı olarak kurduğu yapıları da siler. Geniş bir işlemden önce aynı parametrelerle önce co lookup çalıştırıp neyin etkileneceğine bakmak iyi bir alışkanlıktır.

Aramayı daraltan ek seçenekler

u:, t: ve r: çoğu işi görür. Kalabalık bir bölgede doğru satırları bulmak için şu ekleri de aynı komutun sonuna yazabilirsin:

  • a:-block yalnız kırılan, a:+block yalnız konan blokları gösterir. Delinmiş bir duvarı araştırırken kırılanlara bakmak yeter.
  • i: yalnız belirttiğin blokları dahil eder, e: belirttiğin blokları ya da oyuncuları dışarıda bırakır: i:diamond_ore ya da e:dirt gibi.
  • r:#we yarıçap yerine WorldEdit ile yaptığın seçimi kullanır. Zarar tek bir yapının içinde kaldıysa verebileceğin en isabetli sınır budur.
  • #preview etiketini bir geri alma komutunun sonuna eklersen değişiklik önce yalnız senin ekranında gösterilir, dünya değişmez. Sonuç doğruysa /co apply, değilse /co cancel yazarsın.
  • /co near durduğun yerin hemen çevresindeki son değişiklikleri tek komutla listeler; ilk bakış için hızlıdır.

Örnek: bir gecede boşaltılan ortak depo

Altı kişilik bir survival sunucusunda sabah ilk giren oyuncular ortak deponun duvarının delindiğini ve iki sandığın boşaldığını söylüyor; kimin yaptığını bilen yok. Oyunda komutları başına eğik çizgi koyarak yazarsın. İzleyeceğin sıra şöyle:

  1. Depoya git ve /co i ile inceleme modunu aç. Deliğin çevresindeki birkaç bloğa sol tıkla: her satırda bloğu kıran oyuncunun adı ve olayın ne kadar önce olduğu yazar. Boşalan sandıklara sağ tıkladığında aynı ad bu kez alınan eşyalarla birlikte görünür.
  2. /co i ile moddan çık ve o oyuncunun bölgedeki bütün işlerini listele: /co lookup u:OyuncuAdi t:12h r:15. Yalnız sandık hareketlerini görmek için sonuna a:container ekle.
  3. Listede depoyla ilgisi olmayan bir satır yoksa geri almayı önce önizle: /co rollback u:OyuncuAdi t:12h r:15 #preview. Duvar ekranında eski hâline dönüyorsa /co apply yaz.
  4. Sandıkları açıp eşyaların geri geldiğini kontrol et. Yanlışlıkla başka bir şey geri alındıysa aynı parametrelerle /co restore çalıştırıp işlemi geri çevir.
  5. Son olarak oyuncuyla konuş ve sunucu kurallarına göre karar ver. Kayda dayanan bir yaptırım "ben yapmadım" tartışmasını kısa keser; kuralları nasıl yazıp uygulayacağını topluluk yönetimi rehberinde anlattık.

Bu yolla yalnız o oyuncunun o gece yaptıkları geri alınır. Diğer beş oyuncunun aynı saatlerde kurduğu, kazdığı ve sandıklara koyduğu her şey yerinde kalır; bütün dünyayı yedekten geri yükleseydin bunlar da giderdi.

CoreProtect ile yedek birbirinin yerini tutmaz

CoreProtect blok ve eşya düzeyinde çalışır. Bir eklentinin dünyayı bozduğu, bölge dosyalarının zarar gördüğü ya da sürüm değişikliğinin ters gittiği durumlarda yedek gerekir. Bizde Dosya Koruması her sunucuda açıktır ve ücretsizdir: her gün otomatik yedek alınır, sunucun çalışırken yaklaşık yarım saatte bir de geri dönüş noktası oluşur. Ayrıntılar yedekleme rehberinde.

Disk alanını kontrol altında tutmak

CoreProtect kayıtları sunucunun diskinde bir veritabanında tutar ve kalabalık sunucularda bu dosya hızla büyür. Eski kayıtları co purge t:30d ile silebilirsin; bu komut 30 günden eski kayıtları temizler. Her sunucuda 5 GB ücretsiz disk alanı var ve bu alanı aşan her GB için aylık ücret işliyor; birkaç haftada bir temizlik hem alanı hem aramaların hızını korur.

Sorun giderme

  • Arama hiç sonuç vermiyor. Süre ya da yarıçap olayı kapsamıyordur ya da olay eklenti kurulmadan önce yaşanmıştır. Olayın olduğu yerde durduğundan emin ol ve süreyi büyüt (t:2d gibi); kurulumdan önceki bir olay için tek yol yedektir.
  • Komut yetkin olmadığını söylüyor. Yetki grubunda ilgili CoreProtect düğümü eksiktir. Yukarıdaki dört düğümden kimin hangisine ihtiyacı varsa onu ver.
  • Bloğa tıklayınca bilgi yerine blok kırılıyor. İnceleme modu kapalıdır; komutu ikinci kez yazmak modu kapatır. /co i yaz ve modun açıldığını bildiren mesajı gördükten sonra tıkla.
  • Geri alma başka oyuncuların yapılarını da sildi. Komutta u: yoktu ya da süre ve yarıçap gereğinden genişti. Hemen aynı parametrelerle /co restore çalıştır, sonra oyuncu adını vererek daha dar bir süre ve yarıçapla tekrarla.
  • Dosyalar bölümündeki depolama çubuğu hızla doluyor. Çoğu zaman sebep plugins/CoreProtect klasöründeki database.db dosyasıdır; boyutunu Dosyalar listesinde görürsün. Eski kayıtları co purge ile temizle. Bu dosya elle aldığın her yedeğin içine de girdiği için büyüdükçe yedeklerin de büyür.

Sık yapılan hatalar

  • Sorun çıktıktan sonra kurmak. Kurulumdan önceki olaylar kayıtlı değildir.
  • Süre ve yarıçap vermeden geri almak. Gereğinden geniş bir işlem, başkalarının işini de geri alabilir.
  • Geri alma yetkisini herkese vermek. Rollback yetkisi olan biri istediği oyuncunun emeğini silebilir.
  • Kayıtları hiç temizlememek. Büyüyen veritabanı diski doldurur ve aramaları yavaşlatır.

Sık sorulan sorular

CoreProtect'i sonradan kurarsam önceki olayları görebilir miyim?

Hayır. CoreProtect yalnız kurulduğu andan sonrasını kaydeder; önceki bir yıkımın kaydı hiçbir yerde yoktur. O durumda tek seçenek yedekten dönmektir: sunucun çalışırken yaklaşık yarım saatte bir oluşan geri dönüş noktalarından birini ya da elle aldığın bir yedeği kullanırsın. Hangisini seçeceğini yedek alma ve geri yükleme yazısında anlattık.

CoreProtect sohbeti ve komutları da kaydeder mi?

Evet. Varsayılan ayarlarda sohbet satırları, yazılan komutlar ve oyuncuların giriş çıkışları da kayda geçer. Bunları a:chat, a:command ve a:session ile ararsın; örneğin /co lookup u:OyuncuAdi t:1d a:chat. Bu kayıtlar yalnız aramada işe yarar, geri alınacak bir şey değildir.

Yanlışlıkla yaptığım bir WorldEdit işlemini geri alabilir miyim?

Hemen fark ettiysen WorldEdit'in kendi //undo komutu en hızlı yoldur. Sonradan fark ettiysen CoreProtect devreye girer: varsayılan ayarlarda WorldEdit ile yapılan değişiklikler de yapan oyuncunun adıyla kaydedilir. Böylece /co rollback u:OyuncuAdi t:1h r:30 gibi dar bir komutla geri alabilirsin.

Patlama ya da yangın gibi oyuncu dışı zararları da geri alabilir miyim?

Çoğu zaman evet. CoreProtect creeper patlaması ya da yangın gibi doğal sebepleri de kaydeder; bunlar sonuçlarda oyuncu adı yerine başında # işareti olan bir adla görünür. İnceleme moduyla sebebin adını öğren ve geri alırken u: kısmına o adı yaz.

CoreProtect sunucuyu yavaşlatır mı?

Günlük kullanımda genellikle fark edilmez; kayıtlar arka planda bir sıraya alınıp veritabanına yazılır. Yük daha çok büyük aramalarda ve geniş geri almalarda oluşur, bu yüzden süreyi ve yarıçapı dar tut. Veritabanı büyüdükçe aramalar da yavaşlar; düzenli temizlik bunu önler. Sunucunun genel performansını izlemeyi TPS rehberinde anlattık.