아스트라
대표칭호 없음
이해도 | 초보자 |
---|---|
게임버전 (JE) | 1.20.1 |
게임버전 (BE) | 관련없음 |
1.21버전에서 'a'을 가진 다이아몬드와 'b'라는 이름을 가진 에메랄드를 던졌을 때를 감지하는 명령어를 모르겠습니다.
execute at @a run execute as @e[type=item,nbt={Item:{id:"minecraft:diamond",count:1}},distance=..3] at @s if entity @e[type=item,nbt={Item:{id:"minecraft:emerald",count:1}},distance=..0.5] run execute at @a run
여기까진 했는데, 이름을 가진 아이템을 어떻게 감지해야 하는지를 모르겠습니다.
Sidite
22 일 전와 세상에 시간복잡도가 n^4이야... 게다가 [nbt={}]가 엄청 많아!
이걸로 서버 터트릴수 있겠는데요?
Sidite
22 일 전/execute at @a as @e[distance=..3,type=item] if items entity @s contents minecraft:diamond[minecraft:custom_name=(A이름)] as @e[type=minecraft:item,distance=..0.5] if items entity @s contents minecraft:diamond[minecraft:custom_name=(B이름)] run
아스트라
22 일 전감사합니다!
근데 가끔 감지가 안되는 경우도 있어서 혹시 componentsfmf 통해 아이템 이름을 감지하는 것은 불가능한가요?
Sidite
22 일 전감지 가능합니다. JSON으로 적어야해요
아스트라
22 일 전에메랄드는 give @p minecraft:emerald[custom_name='{"text":"b", "color":"white", "bold":true}']
다이아는 give @p minecraft:diamond[custom_name='{"text":"a", "color":"white", "bold":true}']이고
감지 커맨드는
execute at @a run execute as @e[type=item,nbt={Item:{id:"minecraft:diamond",count:1,components:{custom_name:'{"text":"a", "color":"white", "bold":true}'}}},distance=..3] at @s if entity @e[type=item,nbt={Item:{id:"minecraft:emerald",count:1,components:{custom_name:'{"text":"b", "color":"white", "bold":true}'}}},distance=..0.5] run say 1
로 적었는데 묵묵 무답이라...