개인 자료란 (JE)

  서버 커뮤니티

Profile 허두 한마포 커뮤니티 매니저

HURDOO 2b370e4f33334fd5af2d1419cfe356a7

Profile

질문하기 커맨드

Storage는 어떻게 쓰는 오브젝트일까요?

2020.05.11 조회 수 1346 추천 수 0

1.15에서 한 가지의 자료구조가 마인크래프트에 추가되었습니다.

storage, 스토리지 라고 불리더군요.


raw JSON text format 이나, /data, /execute 명령어로 접근이 가능하다고 합니다.


마인크래프트 위키에서 /data 명령어 문서의 Storage 단락의 내용을 읽어보니, 이렇게 나와있습니다.

c5a984ac94a10545e7523a318035bd2e.png

( https://minecraft.gamepedia.com/Commands/data#Storage )

대략 정리해보자면 "NBT를 다루는 가장 효과적인 방법" 이라고 할 수 있겠네요


그리고 Command Storage Format 문서가 있길래, 그곳에도 들어가보았습니다.

52262f4806f13a5da373a0266ac23908.png

( https://minecraft.gamepedia.com/Command_storage_format )

...이렇다고 합니다.


이 storage라는 것을 커멘드에서 어떻게 접근할 수 있는지, 또 어떤 방식으로 활용이 가능한지

아시는 분 계실까요?



+ (이 게시글의 모든 사진은 minecraftwiki.net 에서 가져왔으며, 저작권 또한 그 사이트에 있음을 밝힙니다.)


++ (와! 제가 커멘드 질문 첫 사용자이네요!)




13개의 댓글

PatrickKR
2020.05.11

제가 이해한 바로는.... Storage는 일반 엔티티처럼 저장할 수 있는 하나의 nbt 저장소 인것 같네요. 평범한 nbt처럼 data get/merge/modify/remove 다 되는 storage고, execute와 엮으면 storage의 특정 key가 특정 value를 가지면 실행 가능하거나,, 뭐 이런식으로 사용이 되는 것 같네요... (으으 어렵다...)

허두
2020.05.11
@PatrickKR

으윽.... struct같은 NBT의 묶음으로써의 오브젝트인 걸까요....

(어렵당)

PatrickKR
2020.05.11
@허두

대충 그렇게 해석했는데... 맞게 이해한건지는 잘..모르겠네요 ㅎㅎㅎ

허두
2020.05.11
@PatrickKR

커멘드는 직접 써보면서 익히는 수밖에 없죠...

그래도 연구 방향 잡아주셔서 감사합니다!

PatrickKR
2020.05.11
@허두

ㅎㅎ 감사합니다! 혹시 좋은 정보 있으면.. 공유해주세요!! ㅎㅎ

허두
2020.05.11
@PatrickKR

넵 알겠습니다! ^^

허두
2020.05.12
@PatrickKR

윗분이 친절하게 설명해 주셨네요!

PatrickKR
2020.05.12
@허두

오! 그렇군요! 그러면 이제 아머스탠드는 자연스럽게.. 사라지게 되겠네요 ㅎㅎ

허두
2020.05.12
@PatrickKR

...음

다른 용도로 잘 쓰이지 않을까요 ㅋㅋ?

PatrickKR
2020.05.14
@허두

저는 커맨드 분야는 초보여서 ㅋㅋㅋ 아마 써봤자 아머스탠드 대용 그 이상은 잘 모르겠네요 읔..

허두
2020.05.14
@PatrickKR

글쎄요...

저는 아머스탠드를 카메라 대용으로 소환해두고

플레이어가 /spectate 명령어로 그 아머스텐드의 시점으로 관전하게끔 만들어 놓았거든요

그러면 아마 스토리지에 아머스탠드 기본 정보들(예: Invisible:1b,Invulnerable:1b,NoGravity:1b,Tags:["camera_n"] 등등)을 입력해두고

나중에 소환할때 스토리지만 불러오면...? 확실히 매번 입력해야하던 번거로움은 줄겠네요.

사향(CivetKitty)
2020.05.12

Storage는 /data modify에서 주로 사용되는데 /scoreboard에서 임의의 플래이어 이름에다 값을 저장하듯이 nbt를 임시로 저장하는 기능을 합니다. 

제가 1.14때 만들었던 갑옷 거치대 커스터마이처 데이터팩을 예로 들어볼게요. .zip폴더에서 data > cvt_armorstand > functions > slotswap에 있는 파일들을 보시면 됩니다.  

이 파일들을 이용해서 저는 갑옷 거치대에 특정 아이템을 던지면 오른손에 들려있는 아이템을 다른 슬롯에 있는 아이템과 맞바꾸는 기능을 만들었는데요, 일반적인 /data modify로는 nbt를 복붙하는 기능밖에 못하기 때문에 잠시 투명 거치대를 소환해서 거기다 아이템 정보를 저장한 다음 다시 저장한 곳에서 불러오는 방식을 택했습니다. 

1.15에 추가된 storage는 바로 이 투명 거치대의 기능을 대신하는데요, 다른 엔티티를 소환할 필요 없이 월드 내에 저장공간을 만들어 보관했다가 꺼내 쓸 수 있습니다. 다른 점이라면 어느 nbt든 제한 없이 저장할 수 있다는 점이랑 필요한 작업을 마치고 정리할 때 /kill이 아닌 /data remove를 이용해 지울 수 있다는 점이네요. 

허두
2020.05.12
@사향(CivetKitty)

오옹.. 이거 되게 유용한 기능이었네요.

알려주셔서 감사합니다!