공통 개념

공통 개념에서는 플러그인 개발 시 항상 공통적으로 사용되는 개념에 대해 간단히 설명합니다.

Weight

ItemConfigString

ItemConfigString 이란 자체 제작 플러그인에서 아이템을 나타내는 format 을 의미합니다.

거의 대부분 플러그인이 해당 방식을 따르고 있습니다.

마인크래프트에서 아이템은 이름이나 로어가 조금만 달라져도 다른 아이템 으로 취급되기 때문에 아이템들의 안정성을 보장하기 어렵습니다. 이를 보통 data integrity 라고 합니다.

이 부분을 보정하기 위해서 보통의 게임에서는 이런 아이템들이 id 형식으로 데이터베이스에 저장되지만 마인크래프트는 아이템이 월드의 파일에 그 자체로 저장되는 방식이기에 보장이 어렵습니다.

이 문제점을 완화시키기 위해서 아이템을 사용하는 기능같은 경우 자체제작 플러그인에서 아이템을 인식하기 위해서는 해당 아이템을 강제로 id로 인식 할 수 있도록 눈에 보이지 않는 태그(nbt 태그)를 아이템에 넣어 두고, 해당 id를 통해서 아이템을 "인식" 할 수 있게 만듭니다.

해당 아이템의 id 는 /cmi itemnbt 를 통해 인게임에서 확인하거나 아이템이 생성된 플러그인의 파일을 확인하여 확인 할 수 있습니다.

ItemConfigString 은 두 가지 종류가 있습니다.

"CUSTOM ITEM_ID" : 앞에 CUSTOM 이 붙은 경우 어디에서 생성되었던 (sigitem, mmoitem 등 ) 
해당 아이템을 item id 로서 인식한다는 뜻입니다. 그렇기에 아이템을 인식할때 설령 유저의 인벤토리에서
겹쳐지지 않는 경우에도 동일한 아이템으로 인식합니다.

"VANILLA MATERIAL_ID" : 앞에 VANILLA 가 붙은 경우 마인크래프트 VANILLA ITEM 을 의미하며 
MATERIAL NAME 을 정확히 지켜야 합니다. MATERIAL 이름은
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
을 통해 확인 할 수 있습니다. 

한글화

서버 자체 제작 플러그인의 거의 모든 유저가 보는 것들 (UI) 는 localization.yml 에 위치해 있습니다.

multipleMessages

여러개의 줄이 있는 메세지를 의미하며 명령어의 사용법이나 특정 컨셉을 채팅으로 길에 설명할 때 자주 사용됩니다.

messages

한 줄 짜리 TEXT 이며 좌측 key값은 건들지 말고 value 쪽만 변경해야 합니다. placeholder 들은 보통 최대한 부가설명 없이도 어떤 수치를 나타내는지 파악 할 수 있도록 직관적인 네이밍을 따르려 노력합니다. placeholder 의 위치는 상관이 없으므로 변경해도 좋습니다.

gui

gui 는 gui 를 구성하는 것으로 보통 아예 새로운 element 를 생성 할 수는 없습니다.

gui 의 name 또는 lore 에 placeholder 이 있는 경우에는 위치와 상관없이 사용 할 수 있습니다.

(하지만 당연히 새로운 placeholder 을 임의로 추가 할 수는 없습니다)

Last updated