프로젝트
CLI와 편집기
설치, 모드 생성, 검사, 게임 없이 테스트까지 하는 도구 하나, crafting. 그리고 모드를 불러올 때 보게 될 오류를 편집기에서 그대로 보여 주는 언어 서버.
command not found: crafting. 빌드하면 실행 파일은 crafting-cli/build/install/crafting/bin/crafting에 있습니다. 이 폴더를 PATH에 추가하거나, 이미 PATH에 있는 폴더에 링크하세요. 예: ln -s "$PWD/crafting-cli/build/install/crafting/bin/crafting" /usr/local/bin/crafting
명령어
| 명령어 | 하는 일 |
|---|---|
install --mc 26.3 [--dir DIR] |
공식 런처에 Crafting 프로필을 추가합니다. |
install --mc 26.3 --server DIR |
start-crafting.sh와 .bat가 있는 서버 폴더를 준비합니다. |
new <name> [--kind script|kotlin|plugin] |
새 모드를 만듭니다. |
check <file.craft>… |
문법과 타입을 검사합니다. |
sandbox [folder] |
게임 없이 모드를 테스트하는 시뮬레이션 서버. |
mods [folder] |
게임 폴더의 모드를 나열하고 의존성을 검사합니다. |
lsp |
편집기용 언어 서버(편집기가 실행합니다). |
version |
Crafting 버전. |
모드 만들기
모드 정리하기에서 권장하는 대로, 책임별로 이미 나뉜 모드를 만듭니다.
| 명령어 | 생성되는 것 |
|---|---|
crafting new gems |
main.craft, content/items.craft, content/blocks.craft, content/recipes.craft, events/welcome.craft, commands/gem.craft |
crafting new gems --kind kotlin |
GemsMod.kt(각 부분을 연결하기만 함), content/ModContent.kt, events/Welcome.kt, commands/GemCommand.kt, 매니페스트, Java 25용 build.gradle.kts |
crafting new gems --kind plugin |
진입 클래스, events/ChatFilter.kt, commands/HelloCommand.kt |
모드 검사하기
하나 이상의 .craft 파일의 문법과 타입을 import를 따라가며 검사합니다. 각 오류에는 파일과 줄이 표시되고, 비슷한 이름이 있으면 제안도 함께 나옵니다. 오류가 있으면 0이 아닌 코드로 종료하므로 지속적 통합(CI)에서 사용할 수 있습니다.
crafting check mods/rubies/main.craft샌드박스에서 테스트하기
게임과 같은 API를 가진 시뮬레이션 서버입니다. <폴더>/mods와 <폴더>/plugins의 모드를 개발 모드로 불러오므로, 파일을 저장하면 모드를 다시 불러옵니다.
join <name> 플레이어가 접속합니다
leave <name> 퇴장합니다
as <name> <chat or /command> 그 플레이어로 채팅하거나 명령어를 실행합니다
/<command> 콘솔로 명령어를 실행합니다
break <name> <x> <y> <z> 블록을 부숩니다
tick [n] n틱 진행합니다
op <name> 관리자 권한을 부여합니다
inv <name> 인벤토리를 표시합니다
reload <mod> 스크립트나 플러그인을 다시 불러옵니다
quit 종료합니다편집기
모든 편집기는 실제 CraftScript 검사기를 실행하는 같은 언어 서버, crafting lsp를 사용합니다. PATH에 crafting이 있어야 합니다.
VS Code
CraftScript 확장이 제공하는 것: 구문 강조(문자열 안의 {interpolation}과 &a 색상 포함), 입력 중 오류 표시, 타입 기반 자동 완성(player. 뒤, on 뒤, : 뒤, 그리고 직접 만든 클래스와 가져온 모듈), 마우스를 올렸을 때의 정보, 스니펫, Check current file 및 Run sandbox server for this mod 명령.
git clone <extension-repository> craftscript-vscode && cd craftscript-vscode
npm install --omit=dev
npx @vscode/vsce package --allow-missing-repository
code --install-extension craftscript-0.1.0.vsixcrafting이 PATH에 없다면 craftscript.craftingPath 설정에 경로를 지정하세요.
Neovim 0.11+
vim.filetype.add({ extension = { craft = "craftscript" } })
vim.lsp.config("craftscript", {
cmd = { "crafting", "lsp" },
filetypes = { "craftscript" },
root_markers = { "main.craft", ".git" },
})
vim.lsp.enable("craftscript")Helix
[language-server.craftscript]
command = "crafting"
args = ["lsp"]
[[language]]
name = "craftscript"
scope = "source.craftscript"
file-types = ["craft"]
roots = ["main.craft"]
comment-token = "//"
indent = { tab-width = 4, unit = " " }
language-servers = ["craftscript"]Sublime Text와 JetBrains
Sublime Text: .craft 파일에 ["crafting", "lsp"] 명령을 지정한 LSP 패키지와 CraftScript.tmLanguage.json 문법. JetBrains: 같은 명령을 지정한 LSP4IJ 플러그인, 그리고 문법을 TextMate 번들로 가져옵니다. 이 문법은 .tmLanguage 파일을 읽는 모든 편집기에서 작동합니다.