필요한 사람이 있을까 싶지만 새롭게 알게 되어 써본다
$dialog show @a {type:"minecraft:notice",title:$(a),inputs:[{type:"minecraft:text",key:"input"}],action:{label:"입력",action:{type:"dynamic/run_command",template:"say $(input)"}}}
요런 친구가 있다고 쳐보자(대충만든거라 문제가 있을수도 있음)
이 친구는 text타입의 input으로 사용자에게 정보를 받음.
그 정보를 사용하기위해선 input의 키 이름인 $(input)을 사용함.
또한 이 친구는 매크로를 사용하고있음. 타이틀에 $(a) 매크로를 사용하였음.
그럼 /function test:test {a:"\"우히히\""} 으로 작동시켰다고 쳐보자.
잘 잘동할까? 아님. $(input)이 매크로 취급이 되어 마크는 input값이 누락되었다고 생각함.
바보 같죠 매크로랑 dialog입력이 $()으로 똑같아서 생기는 문제임.
그러면 둘이 동시에 쓸수없나? 아님.
/function test:test {a:"\"우히히\""} 대신
/function test:test {a:"\"우히히\"",input:"$(input)"}으로 실행하면 매크로때문에 $(input)의 값이 바뀌어도
$(input)이기에 실행이 잘된다!
이거 때문에 2시간 넘게 고민하고 찾아봤는데 이렇게 간단하게 풀리니 넘 현타오노. ㅇㅇ 암튼 맞음.
뭔가 더 나은 방법이 있을것 같지만 맞음.
ㅋ..ㅋ....ㅋ........ㅋ................ㅋ................................ㅋ................................................................ㅋ................................................................................................................................ㅋ..........................................................................................................................................
......................................................................................................................