# Как узнать название и остановить генерацию

**URL:** <https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789>\
**Category:** Вопросы/Обсуждения\
**Created:** [08.Май.2023 12:59:45 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789 "2023-05-08T12:59:45Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![to4noFp](https://talk.24serv.pro/letter_avatar_proxy/v4/letter/t/96bed5/32.png) [@to4noFp](https://talk.24serv.pro/u/to4noFp)\
**Post date:** [08.Май.2023 12:59:45 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/1 "2023-05-08T12:59:45Z")

</div>

Как узнать внутреннее название мира? К примеру, папка с миром называется “mir”, а при загрузке оно в консоли оно называется по-другому. Так-же как сделать, что-бы мир не генерировался, к примеру “lobby” ?

---

<div class="post-metadata">

**Author:** ![MEFRREEX](https://talk.24serv.pro/user_avatar/talk.24serv.pro/mefrreex/32/18603_2.png) [@MEFRREEX](https://talk.24serv.pro/u/MEFRREEX)\
**Post date:** [08.Май.2023 13:18:58 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/2 "2023-05-08T13:18:58Z")

</div>

Level#getFolderName() - узнать как называется папка мира, Level#getName() узнать как называется сам мир

---

<div class="post-metadata">

**Author:** ![Marusel](https://talk.24serv.pro/user_avatar/talk.24serv.pro/marusel/32/16416_2.png) [@Marusel](https://talk.24serv.pro/u/Marusel)\
**Post date:** [08.Май.2023 13:19:18 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/3 "2023-05-08T13:19:18Z")

</div>

$level-\>getName() - название мира  
$level-\>getFolderName() - название папки где находится мир

---

<div class="post-metadata">

**Author:** ![to4noFp](https://talk.24serv.pro/letter_avatar_proxy/v4/letter/t/96bed5/32.png) [@to4noFp](https://talk.24serv.pro/u/to4noFp)\
**Post date:** [08.Май.2023 13:23:33 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/4 "2023-05-08T13:23:33Z")

</div>

Как остановить генерацию мира? т.е. чтобы он не продолжал генерировать новые блоки

---

<div class="post-metadata">

**Author:** ![Dinner\_Bone](https://talk.24serv.pro/user_avatar/talk.24serv.pro/dinner_bone/32/19014_2.png) [@Dinner\_Bone](https://talk.24serv.pro/u/Dinner_Bone)\
**Post date:** [08.Май.2023 13:29:03 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/5 "2023-05-08T13:29:03Z")

</div>

(сообщение удалено автором)

---

<div class="post-metadata">

**Author:** ![s1mple](https://talk.24serv.pro/letter_avatar_proxy/v4/letter/s/ac91a4/32.png) [@s1mple](https://talk.24serv.pro/u/s1mple)\
**Post date:** [08.Май.2023 13:50:38 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/6 "2023-05-08T13:50:38Z")

</div>

> [@to4noFp](#):
>
> Так-же как сделать, что-бы мир не генерировался, к примеру “lobby” ?

адекватно никак

можно заменять все блоки на воздух, когда будет вызываться ChunkLoadEvent(естественно те чанки, которые не нужны)

---

<div class="post-metadata">

**Author:** ![Marusel](https://talk.24serv.pro/user_avatar/talk.24serv.pro/marusel/32/16416_2.png) [@Marusel](https://talk.24serv.pro/u/Marusel)\
**Post date:** [08.Май.2023 13:57:13 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/7 "2023-05-08T13:57:13Z")

</div>

Сделать кастомную генерацию, это наверное самый адекватный способ

---

<div class="post-metadata">

**Author:** ![s1mple](https://talk.24serv.pro/letter_avatar_proxy/v4/letter/s/ac91a4/32.png) [@s1mple](https://talk.24serv.pro/u/s1mple)\
**Post date:** [08.Май.2023 14:01:55 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/8 "2023-05-08T14:01:55Z")

</div>

```auto
public function handleChunkLoad(ChunkLoadEvent $event) : void{
	$chunk = $event->getChunk();
	$level = $chunk->getLevel();
	if($level->getName() !== 'lobby'){
		return;
	}
	// сюда ты должен ввести координаты чанка, которые не должны быть "уничтожены"
	$excludedChunks = [
		"0,0",
		"0,1",
		"1,1",
		"1,0"
		];
		
		if(in_array($chunk->getX() . "," . $chunk->getZ(), $excludedChunks)){
			return;
		}
		// заменяем блоки в загруженном чанке
		$highest = $chunk->getHighestBlockAt($x, $z);
		for($x = 0; $x <= 15; ++$x){
			for($z = 0; $z <= 15; ++$z){
				for ($y = 0; $y <= $highest; ++$y) {
					$chunk->setBlockIdAt($x, $y, $z, BlockIds::AIR);
					$chunk->setBlockDataAt($x, $y, $z, 0);
				}
			}
		}
}

```

накидал псевдокода

---

<div class="post-metadata">

**Author:** ![Dinner\_Bone](https://talk.24serv.pro/user_avatar/talk.24serv.pro/dinner_bone/32/19014_2.png) [@Dinner\_Bone](https://talk.24serv.pro/u/Dinner_Bone)\
**Post date:** [08.Май.2023 14:30:05 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/9 "2023-05-08T14:30:05Z")

</div>

> [@s1mple](#):
>
> ```auto
> $excludedChunks = [
> "0,0",
> "0,1",
> "1,1",
> "1,0"
> ];
> 		
> if(in_array($chunk->getX() . "," . $chunk->getZ(), $excludedChunks)){
> return;
> }
> 
> ```

```auto
$saveChunksMin = [256, 256]; // Коорды первой точки сохранение
$saveChunksMax = [-256, -256]; // Коорды второй точки сохранения

$x = $chunk->getX();
$y = $chunk->getZ();

$minX = min($saveChunksMin[0], $saveChunksMax[0]);
$maxX = max($saveChunksMin[0], $saveChunksMax[0]);
$minZ = min($saveChunksMin[1], $saveChunksMax[1]);
$maxZ = max($saveChunksMin[1], $saveChunksMax[1]);

$saveX = array_flip(range($minX, $maxX));
$saveZ = array_flip(range($minZ, $maxZ));

if(isset($saveX[$x])) {
     if(isset($saveZ[$z])) return;
}

```

накидал псевдокода норм проверки

---

<div class="post-metadata">

**Author:** ![s1mple](https://talk.24serv.pro/letter_avatar_proxy/v4/letter/s/ac91a4/32.png) [@s1mple](https://talk.24serv.pro/u/s1mple)\
**Post date:** [08.Май.2023 14:43:48 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/10 "2023-05-08T14:43:48Z")

</div>

HAHAHAHAhahahhaha

---

<div class="post-metadata">

**Author:** ![Dinner\_Bone](https://talk.24serv.pro/user_avatar/talk.24serv.pro/dinner_bone/32/19014_2.png) [@Dinner\_Bone](https://talk.24serv.pro/u/Dinner_Bone)\
**Post date:** [08.Май.2023 14:50:54 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/11 "2023-05-08T14:50:54Z")

</div>

> [@s1mple](#):
>
> ```auto
> $excludedChunks = [
> "0,0",
> "0,1",
> "1,1",
> "1,0"
> ];
> 
> ```

Ну тут я уже в обморок упал. Только щяс очнулся

---

<div class="post-metadata">

**Author:** ![mopsikzloS](https://talk.24serv.pro/user_avatar/talk.24serv.pro/mopsikzlos/32/15075_2.png) [@mopsikzloS](https://talk.24serv.pro/u/mopsikzloS)\
**Post date:** [08.Май.2023 14:59:53 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/12 "2023-05-08T14:59:53Z")

</div>

да ну, это кринжатина блоки заменять, худшее решение мне кажется.  
лучшее что тут можно придумать - написать свой генератор void

---

<div class="post-metadata">

**Author:** ![s1mple](https://talk.24serv.pro/letter_avatar_proxy/v4/letter/s/ac91a4/32.png) [@s1mple](https://talk.24serv.pro/u/s1mple)\
**Post date:** [08.Май.2023 15:17:11 UTC](https://talk.24serv.pro/t/kak-uznat-nazvanie-i-ostanovit-generacziyu/12789/13 "2023-05-08T15:17:11Z")

</div>

те по лицу надавать или че?

это координаты чанков
