darkline617
Birisi mi Spawnlandı?
- Minecraft Sürümleri
- 1.20.4
# BlockySeek
Blok ve mob kılığına girilen saklambaç eklentisi. Bildiğiniz saklambaç aslında:
birkaç kişi ebe oluyor, geri kalan herkes etraftaki eşyalara benzemeye çalışıp
saklanıyor. Süre bitmeden yakalanmazsan saklananlar kazanıyor, herkesi
yakalarsan ebeler kazanıyor.
Fikir yeni değil, Block Hunt tarzı oyunları biliyorsanız mantık aynı. Ben bunu
kendi sunucumda arkadaşlarla oynamak için toparladım, o yüzden gereksiz
özellik doldurmadım; kur, arena aç, oyna.
## Gerekenler
- Minecraft **1.20.4** (Spigot ya da Paper fark etmez, ikisinde de çalışıyor)
- Java 17
- Opsiyonel ama şiddetle önerilir: **LibsDisguises 11.x + PacketEvents**
Şu kılık meselesini baştan netleştireyim çünkü en çok o soruluyor: LibsDisguises
kurulu değilse eklenti yine çalışıyor, oyun yine oynanıyor. Tek fark, saklananlar
gerçekten bloğa dönüşmek yerine o bloğu kafalarında taşıyor. Oynanır mı?
Oynanır, biz ilk haftalar öyle oynadık. Ama tam hissi istiyorsanız LibsDisguises
şart. 1.20.4 için 11.x sürümünü kurun, yanında PacketEvents'i unutmayın
(LibsDisguises 11 artık ProtocolLib değil PacketEvents kullanıyor, eski
anlatımlara bakıp ProtocolLib kurmayın).
## Kurulum
1. `blockyseek-1.0-SNAPSHOT.jar` dosyasını `plugins` klasörüne atın.
2. İstiyorsanız LibsDisguises ve PacketEvents jar'larını da aynı klasöre atın.
3. Sunucuyu başlatın. İlk açılışta `config.yml`, `arenas.yml`, `stats.yml` ve
`players.yml` kendiliğinden oluşur, ellemenize gerek yok.
4. Konsolda "BlockySeek aktif!" yazısını gördüyseniz tamamdır. Kılık sistemi
açıksa "gerçek kılık dönüşümü açık", değilse "kafalık modu" diye ayrıca
yazar, oradan durumunuzu anlarsınız.
## Arena kurma (adım adım)
Oyunun oynanabilmesi için en az bir arena lazım. Sırayla yapın, sıra önemli
değil aslında ama böyle anlatması kolay:
```
/bs create orman
```
Arena ismi 2-16 karakter, boşluksuz olsun. Sonra haritada ilgili yerlere gidip
durarak şu dört noktayı kaydedin:
```
/bs setlobby orman -> oyuncuların oyunu beklediği yer
/bs sethiderspawn orman -> saklananların doğduğu yer
/bs setseekerspawn orman -> ebelerin doğduğu (ve bekletildiği) yer
/bs setexit orman -> oyun bitince / çıkınca gidilecek yer
```
Ebe spawn ile saklanan spawn'ı birbirini görmeyecek şekilde ayarlayın, yoksa
koruma süresinin anlamı kalmıyor. Lobi ile exit aynı yer olabilir, sorun değil.
Bir de genel bir ana lobi kaydedin, oyundan çıkanlar exit ayarlanmamışsa
oraya gider:
```
/bs setmainlobby
```
Sonra sayıları ayarlayın (ayarlamazsanız varsayılan min 2, max 12):
```
/bs setmin orman 3
/bs setmax orman 10
```
Her şey tamamsa:
```
/bs enable orman
```
Eksik bir şey varsa komut zaten söylüyor ("kurulum eksik: seekerspawn"
gibi), tek tek tamamlayıp tekrar deneyin. `/bs info orman` yazarak da
ne ayarlı ne değil görebilirsiniz, tikli liste çıkar.
Arena hazır olunca oyuncular `/bs join orman` ile girmeye başlar. Yeterli
sayıya ulaşılınca geri sayım kendiliğinden başlar, ayrıca başlatmanıza gerek
yok. Beklemek istemezseniz `/bs start orman` ile elinizle başlatırsınız,
`/bs stop orman` ile de durdurursunuz. Arena silmek için önce içerde kimse
olmadığından emin olun (komut zaten içerdekileri çıkarıyor ama yine de
söyleyeyim): `/bs delete orman`.
## Oyuncular için
En kolayı `/bs menu` yazmak. Arenalar renkli liste halinde geliyor: yeşil
bekliyor demek (tıkla katıl), sarı başlıyor, kırmızı oyunda, turuncu dolu,
gri kapalı. Altta da nasıl oynanır rehberi, kendi istatistiğiniz ve liderlik
tablosu var. Komutla oynamak isteyenler için:
```
/bs join <arena> oyuna katıl (arena yazmazsan boş yer varsa oraya atar)
/bs leave oyundan ayrıl
/bs list arenaları listele
/bs info <arena> arena detayı
/bs stats istatistiğin
/bs top liderlik
```
Oyuna girince envanteriniz alınıyor, merak etmeyin çıkınca geri veriliyor.
Sunucu çökerse bile `players.yml` sayesinde eşyalar kurtarılıyor, oyuncu
tekrar girince ana lobiye alınıyor. Yine de önemli eşyayla minigame'e
girmeyin, ne olur ne olmaz.
Oyun başlayınca roller rastgele dağıtılıyor. Saklanan olduysanız rastgele
bir blok kılığına giriyorsunuz. Elinize üç eşya veriliyor:
- **Oyundan Ayrıl** (bariyer): basınca onay menüsü açıyor, yanlışlıkla
çıkma yok. Evet derseniz çıkıyorsunuz.
- **Blok Kılığı** (çim bloğu): menüden başka bir bloğa dönüşürsünüz.
- **Mob Kılığı** (inek yumurtası): izinli moblardan birine dönüşürsünüz.
İzinli mob listesi config'de, varsayılan olarak tavuk, inek, domuz,
koyun falan var. İsterseniz `/bs disguise block OAK_LOG` ya da
`/bs disguise mob COW` diye komutla da değiştirebilirsiniz (isimler
İngilizce yazılıyor, tab tuşu tamamlıyor zaten).
Bir de eğilme mekaniği var: saklanırken eğilirseniz (shift) bloklaşıp
sabitleşiyorsunuz, kıpırdarsanız form bozuluyor. Kıpırdamadan durmak
cidden işe yarıyor, tavsiye ederim.
Ebe olduysanız koruma süresi bitene kadar kör ve yavaş bekliyorsunuz,
süre dolunca "YAKALA!" diye salınıyorsunuz. Elinizde yakalama çubuğu ve
en yakın saklananı gösteren bir pusula oluyor. Saklanana bir tane
vurun, o da ebeye dönüşüyor. Hepsini yakalarsanız kazandınız. Süre
biterse saklananlar kazanıyor.
Ebe oyundan çıkarsa sistem otomatikman saklananlardan birini ebe yapıyor,
oyun yarım kalmıyor.
Oyundayken yazdıklarınız normal sohbete düşmüyor, sadece aynı arenadakiler
görüyor. Mesajın başında arena adı ve rolünüz yazıyor ([Saklanan] / [Ebe]),
lobide beklerken de [Oyuncu] yazıyor. Yani oyun taktiğini sohbetten
konuşabilirsiniz, dışarıdakiler görmez. Adminler her şeyi görüyor, ona göre
yazın. Kapatmak isterseniz config'de `chat.enabled: false` yapmanız yeterli.
Formatı da oradan değişiyor, `{arena} {role} {player} {message}` kalıplarını
kullanarak kendinize göre düzenleyebilirsiniz.
## Komutların tamamı
Oyuncu komutları (`blockyseek.player`, herkeste var):
| Komut | Ne yapar |
|---|---|
| `/bs menu` | Arenalar menüsü |
| `/bs join <arena>` | Oyuna katıl |
| `/bs leave` | Oyundan ayrıl |
| `/bs list` | Arenaları listele |
| `/bs info <arena>` | Arena detayı |
| `/bs stats [oyuncu]` | İstatistik |
| `/bs top [sayı]` | Liderlik |
| `/bs disguise block <blok>` | Blok kılığına gir (oyunda, saklanan) |
| `/bs disguise mob <mob>` | Mob kılığına gir (oyunda, saklanan) |
Admin komutları (`blockyseek.admin`, varsayılan op):
| Komut | Ne yapar |
|---|---|
| `/bs create <isim>` | Arena oluştur |
| `/bs delete <arena>` | Arena sil |
| `/bs enable <arena>` | Arenayı aç |
| `/bs disable <arena>` | Arenayı kapat |
| `/bs setlobby <arena>` | Bekleme lobisini bulunduğun yere kaydet |
| `/bs sethiderspawn <arena>` | Saklanan doğma noktası |
| `/bs setseekerspawn <arena>` | Ebe doğma noktası |
| `/bs setexit <arena>` | Çıkış noktası |
| `/bs setmainlobby` | Genel ana lobi |
| `/bs setmin <arena> <sayı>` | En az oyuncu |
| `/bs setmax <arena> <sayı>` | En çok oyuncu |
| `/bs start <arena>` | Oyunu el ile başlat |
| `/bs stop <arena>` | Oyunu durdur |
| `/bs reload` | Configleri yeniden yükle |
`bs` yerine `seek` ya da `hideandseek` de yazabilirsiniz, üçü de aynı komut.
Tab tuşu hemen her yerde çalışıyor, arena isimlerini falan tamamlıyor.
Yetkiler özet: `blockyseek.player` (herkeste açık), `blockyseek.admin`
(oplarda), ikisini birden veren `blockyseek.*`.
## Config (config.yml)
Çoğu şeyi komutla hallediyorsunuz ama sürelerle oynamak isterseniz:
- `prefix`: mesajların başındaki etiket.
- `defaults.minPlayers / maxPlayers`: yeni arenaların varsayılan sayıları.
- `game.countdown-seconds`: yeterli sayıya ulaşınca başlayan geri sayım (30).
- `game.grace-seconds`: ebenin bekletildiği saklanma süresi (20).
- `game.game-seconds`: ana oyun süresi, bitince saklananlar kazanır (300).
- `game.seekers-on-start`: oyunun başında kaç ebe olacağı (1).
- `game.hide-blocks`: saklananlara rastgele verilen bloklar ve blok seçim
menüsündekiler. Buraya eklediğiniz blok menüde de çıkar.
- `disguise.enabled`: false yaparsanız LibsDisguises kurulu olsa bile
kafalık moduna dönersiniz.
- `disguise.allowed-mobs`: mob kılığına izinli listesi.
Süreleri abartmayın. Koruma süresini 60 saniye yaparsanız ebeler sıkıntıdan
çıkıyor, oyun süresini 10 dakika yaparsanız saklananlar sıkıntıdan çıkıyor.
Varsayılanlar denenmiş değerler.
## Aklınızda bulunsun
- Ebe spawn ile saklanan spawn'ı ayrı yerde olsun, yukarıda söyledim ama
önemli, tekrar yazıyorum.
- `/bs reload` aktif oyunu ödülsüz kapatır, ortada oyun varken kullanmayın.
- Kılıklar Türkçesi: LibsDisguises yoksa kılık eşyaları hiç verilmiyor,
kimse boşuna menü aramasın.
- Mob kılığında pusula yine çalışıyor, ebe mob kılıklı birini de
vurarak yakalayabiliyor. Kılık görünmezlik değil, kamuflaj.
- Oyuncular oyun içinde blok kıramıyor, eşya düşüremiyor, hasar almıyor.
Haritanız bozulmaz.
## Sorun giderme
**Oyun başlamıyor, sürekli "yetersiz oyuncu" diyor.**
`setmin` değerine bakın, lobideki kişi sayısı o sayıya ulaşmadan geri
sayım başlamaz. Ya bekleyin ya sayıyı düşürün.
**"Kurulum eksik" hatası alıyorum.**
Dört nokta da ayarlı olmalı: lobby, hiderspawn, seekerspawn, exit.
`/bs info` ile bakın, eksik olanın yanında çarpı var.
**Kılık değişmiyor, hep kafa bloğu geliyor.**
LibsDisguises kurulu değil ya da açık değil demektir. Konsoldaki açılış
mesajına bakın. Kuruluysa ve 1.20.4'teyseniz 11.x + PacketEvents
kullandığınızdan emin olun.
**Menüde arena gri görünüyor.**
Arena kapalı, `/bs enable` yapın.
**Biri oyunda takılı kaldı, çıkamıyor.**
`/bs stop <arena>` herkesi çıkarır. Tek kişi ise op olarak oyuncuya
`/bs leave` yazdırın, olmuyorsa kick atın, kick de temiz çıkış sayılıyor.
## Geliştiriciler için
Başka bir eklentiden bağlanmak için `BlockySeekAPI.get()` yeterli.
`plugin.yml` tarafına `depend: [BlockySeek]` ya da `softdepend`
ekleniyor. Arena sorgulama, oyuncu sokup çıkarma, rol bakma,
istatistik okuma/yazma var. Bir de dinlenebilir event'ler var:
`ArenaJoinEvent` (iptal edilebilir, mesela seviyesi yetmeyeni sokmama),
`ArenaLeaveEvent`, `GameStartEvent`, `GameEndEvent` (ödüllerden önce
ateşlenir, kazanan buradan okunur), `PlayerCatchEvent` (iptal
edilebilir, mesela dokunulmazlığı olan yakalanmaz). Detay javadoc'larda
yazıyor, koda bakmanız yeterli.
## Not
Sürüm 1.0, 1.20.4 için. Hata bulursanız arenanın durumunu (`/bs info`
çıktısını), konsoldaki hatayı ve ne yaparken olduğunu yazın, bakayım.
İyi saklanmalar.