콘텐츠로 이동

plugin.json

plugin.json 은 플러그인 폴더 바로 아래에 두는 설명 파일입니다. 에디터는 이 파일로 플러그인을 찾고, 검사하고, 불러옵니다. 이 파일이 없는 폴더는 플러그인으로 보지 않습니다.

%APPDATA%\NPEditor\plugins\
└─ road_tools\
├─ plugin.json
├─ RoadTools.dll
└─ RoadTools.pdb (선택)
칸필수형식설명
id예글플러그인 id 입니다. 아래 「id 규칙」을 따릅니다. 폴더 이름과 달라도 됩니다.
name아니요글플러그인 관리자에 보일 이름입니다. 비우면 id 를 씁니다.
version예글내 플러그인 판입니다. x.y.z 꼴입니다. 뒤에 -태그 나 +태그 를 붙일 수 있습니다(예 1.2.0-beta.1).
sdk예글필요한 SDK 판 범위입니다. 아래 「sdk 범위」를 따릅니다.
dll예글불러올 dll 경로입니다. plugin.json 기준 상대 경로입니다. 하위 폴더는 되고 .. 와 절대 경로는 안 됩니다. .dll 로 끝나야 합니다.
entry아니요글진입 클래스의 전체 이름(네임스페이스.클래스)입니다. 비우면 dll 안에서 INpEditorPlugin 을 구현한 첫 클래스(전체 이름 순)를 씁니다.
description아니요글플러그인 관리자의 설명 줄과 툴팁에 나옵니다.
author아니요글만든 사람입니다.
  • 모든 칸은 JSON 글(문자열)입니다. 글이 아닌 값은 빈 칸으로 봅니다.
  • 위에 없는 칸은 무시합니다.
  • // 주석과 끝 쉼표를 허용합니다.
  • 칸이 틀리면 플러그인 관리자에 「오류(파일)」과 이유가 나옵니다.
규칙맞음틀림
소문자로 시작road_toolsRoadTools · 1road · _road
소문자 · 숫자 · _ 만road_tools2road-tools · road tools
. 로 마디를 나눌 수 있음myteam.road_toolsmyteam..road · road.
  • 같은 id 가 둘 있으면 먼저 찾은 폴더 것만 씁니다(플러그인 폴더 순서 → 폴더 이름 순). 나머지는 「오류(파일)」이 됩니다.
  • 에디터 안에서 이 플러그인이 등록한 메뉴 · 모드 · 패널 id 앞에 ext.<id>. 가 붙습니다.
  • 설정 파일 이름(plugin_settings\<id>.json)과 단축키 저장도 id 를 씁니다. 나중에 id 를 바꾸면 저장된 설정이 이어지지 않습니다.
쓴 것뜻쓰는 때
"^1.2"1.2.0 이상 2.0.0 미만권장. 쓰는 기능의 최소 판으로 씁니다.
"1.2""^1.2" 와 같음
"~1.2"1.2.0 이상 1.3.0 미만1.2.x 에서만 돌려야 할 때
">=1.0"1.0.0 이상(위 끝 없음)권장하지 않음. 다음 major 에서도 불러옵니다.
">1.0"1.0.0 초과
"<1.5"1.5.0 미만다른 조건과 함께 씁니다.
"<=1.4"1.4.0 이하
">=1.0 <1.5"1.0.0 이상 1.5.0 미만공백으로 조건을 이어 씁니다.
"=1.3.0"1.3.0 만시험용
  • 판은 1~3마디로 씁니다. 1 은 1.0.0, 1.2 는 1.2.0 입니다.
  • 판 뒤의 -태그 는 비교에서 뺍니다.
  • 범위에 에디터의 SDK 판이 들지 않으면 「버전 안 맞음」이 되고 불러오지 않습니다. 에디터는 계속 돕니다.
쓰는 기능sdk
메뉴 · 빠른 추가 · 명령 · 가져오기/내보내기 · 패널 · 모드 · 액터 타입 · 칸 지킴이 · 대칭 · WorldChanged · Committed^1.0
위 + 단축키 · Settings · Draw^1.1
위 + AddSceneEvent^1.2
위 + Scene · View · 칸 종류 ActorList^1.3

판별 내용은 SDK 변경 내역에 있습니다.

같은 major 안에서 SDK 는 멤버를 더하기만 하고 이름을 바꾸지 않습니다. 그래서 ^1.0 플러그인은 SDK 1.3 에디터에서도 돕니다.

가장 짧은 파일입니다.

{
"id": "my_first_plugin",
"version": "0.1.0",
"sdk": "^1.0",
"dll": "MyFirstPlugin.dll"
}

모든 칸을 쓴 파일입니다.

{
// 관리자 창에 보일 이름
"id": "myteam.road_tools",
"name": "도로 도구",
"version": "1.2.0",
"sdk": "^1.1",
"dll": "bin/RoadTools.dll",
"entry": "RoadTools.Plugin",
"description": "선택 영역에 도로 깔기 · 가로등 · 단축키 Ctrl+Alt+R",
"author": "도로팀",
}