개인 자료란 (JE)

  서버 커뮤니티

Profile 아스트라 대표칭호 없음
Profile

질문하기 커맨드

아이템 감지

22 일 전 조회 수 48 추천 수 0
이해도 초보자 
게임버전 (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 

여기까진 했는데, 이름을 가진 아이템을 어떻게 감지해야 하는지를 모르겠습니다.

5개의 댓글

Sidite
22 일 전

와 세상에 시간복잡도가 n^4이야... 게다가 [nbt={}]가 엄청 많아!

이걸로 서버 터트릴수 있겠는데요?

Sidite
22 일 전
@Sidite

/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 일 전
@Sidite

감사합니다!

근데 가끔 감지가 안되는 경우도 있어서 혹시 componentsfmf 통해 아이템 이름을 감지하는 것은 불가능한가요?

Sidite
22 일 전
@아스트라

감지 가능합니다. JSON으로 적어야해요

아스트라
22 일 전
@Sidite

에메랄드는 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

로 적었는데 묵묵 무답이라...