방법은 사람마다 다를 수 있음!


이 글은 -마- 갤러리에 쓰여진 '디노니'의 글임

gall.dcinside.com/minecraft/80680

이 글은 -마- 갤러리에 쓰여진 글임. 만약 다른 곳에서 이게 보인다면 그건 불펌임.

베드락 이스케이프 하다보면 가끔 시간 한참 지나도 아이템 안사라지게 하는 맵이 있음

그런거 어떻게 만드냐구?

생각보다 매우 간단함


반복형

execute as @e[type=item] run data remove entity @s Age


execute as @e[type=item] unless data entity @s {PickupDelay:32767s} run data remove entity @s Age

로 해도 된다

해석

execute는 뭔가를 '감지'한다는 뜻이라고 하면 쉬움


as는 '명령어의 주체'를 지정함

@e는 모든 엔티티를 뜻함

@e[type=item]은 모든 아이템을 뜻함


run은 execute에서 벗어나 명령어를 실행함


data remove는 nbt를 지운다(지우면 0이 됨)

entity @s는 이 명령어의 주체를 뜻함


Age는 '이 아이템이 얼마나 오래됐나'를 뜻하며, 6000이 되면 아이템이 사라짐

그래서 계속 0으로 만들어서 사라지지 않게 하는거임


의문이 하나 생길수도 있음

명령어 밑에 작은 명령어 또 있는건 뭔지에 대해서

그거는...

?

일단 버그가 맞는진 잘 모르겠는데

이걸 쓰면 /give로 아이템 줄때 아이템이 2배가 된다!


무슨 의미냐면

아는 게이들도 있겠지만 /give는 머리 위에 아이템을 소환하고, 아이템을 준 후에 머리 위 아이템을 지운다

아이템이 지워지는 원리가 /give로 소환할때 Age를 5999로 하는거라서

Age를 0으로 만들면 아이템이 지워지지 않음


근데 /give로 소환된 아이템은 PickupDelay가 32767이라 그것도 지워야 먹을 수 있음

그래서 unless data entity @s {PickupDelay:32767s}를 넣어뒀음

unless data entity @s는 '특정 nbt가 없는 이 엔티티'를 말함


왜 따로 뒀냐구?

아이템이 있으면 항시 반복되는 커맨드니까 단계가 많으면 최적화가 약간 안좋아지더라구

한 2000개쯤 있으면 티 남

딱히 쓸모는 없지만 일단 그렇게 했음


이것도 기믹이라고 봐야하나