NimBlock 로그인

코드 없이 마인크래프트 플러그인 만들기

마인크래프트 서버에서 기본 게임을 벗어나는 모든 건 플러그인을 거치고, 플러그인은 Java로 작성돼요. 서버를 운영하는 대다수가 부딪히는 벽이 바로 이거예요: 원하는 게 뭔지는 정확히 알지만, 유일한 길은 언어 하나, 컴파일해야 할 프로젝트 하나, 배워야 할 API 하나를 거쳐야 한다는 거죠. 이 페이지는 그것 없이 무엇을 할 수 있는지, 그리고 무엇보다 그 한계가 어디인지 설명해요.

벽, 그리고 알려진 세 가지 우회 방법

NimBlock 이전에는 프로그래밍을 하지 않는 사람에게 세 가지 선택지가 있었고, 각각은 뛰어들기 전에 알아두는 게 좋은 뚜렷한 한계를 가지고 있어요.

  • 커맨드 블록. 월드 안 정해진 한 지점에 있고 레드스톤이나 타이머로 작동해요. 서버 이벤트에 반응할 줄 모르고, 그걸 막는 건 더더욱 못해요.
  • 데이터팩. 바닐라의 틀 안에 머물러요: 함수, 진행 과제, 전리품 테이블. 진짜 명령어도, 채팅 가로채기도, 행동 취소도 없어요. 대신 Paper 없이 바닐라 서버에서 작동해요.
  • Skript. 앞의 둘보다 훨씬 강력하고, NimBlock보다도 강력해요. 진짜 언어이기 때문에 익혀야 할 문법과 해독해야 할 오류가 따라와요.

이 세 가지는 오래전부터 있었고 낡은 게 하나도 없어요. 부족했던 건 커맨드 블록과 언어 사이의 단계였어요.

규칙, 한 문장으로

NimBlock의 문법 전체는 한 문장에 들어가요: 이런 일이 일어나면, 이런 조건이 충족되면, 이렇게 한다. 플러그인은 규칙들의 목록이고, 규칙은 트리거 하나, 조건 몇 개, 액션 몇 개로 이루어져요. 그 외에 배울 건 없고, 이건 의도된 거예요: 한 문장에 들어가는 문법은 머릿속에도 들어가니까요.

규칙 « 환영 »
언제 플레이어가 게임에 접속하면
만약 플레이어가 nimblock.vip 권한을 가지고 있으면
그러면 « 환영해요 {플레이어} ! » 보내기
빵 1개 지급
레벨업 사운드 재생

에디터 안에서는 이것들이 서로 맞물리는 블록이에요: 어떤 자리에 들어갈 수 없는 블록은 거기에 맞물리지 않아요. 그리고 에디터가 통과시킨 것도 검증기가 다시 확인해요: 스펙은 전체가 승인되거나 거부되고, 절반만 통과하는 일은 없어요. 보호 규칙이 빠진 보호 플러그인은 게임에서 보이지 않을 텐데, 그건 아무도 원하지 않는 종류의 오류예요.

지금 만들 수 있는 것

트리거 9개, 조건 8개, 액션 14개. 각 파라미터까지 최신 상태로 정리된 정확한 목록은 문법 페이지에 있어요: 카탈로그에서 자동으로 생성되기 때문에 절대 거짓말을 하지 않아요. 무엇이 가능한지 간단히 정리하면:

  • 무슨 일이 일어나는지에 반응하기: 접속, 접속 종료, 채팅 메시지, 사망, 블록 파괴나 설치, 직접 만든 명령어, 아니면 그냥 N초마다 한 번씩.
  • 필터링하기: 권한, 오퍼레이터 여부, 월드, 체력, 텍스트 내용, 숫자 비교, 확률을 기준으로.
  • 실행하기: 메시지, 큰 타이틀, 사운드, 아이템, 효과, 회복, 텔레포트, 서버 전체 공지, 콘솔 명령어 실행, 그리고 방금 일어난 이벤트 취소. 이 마지막 항목이 목록을 진짜 보호 장치로 만들어줘요.

대신할 수 없는 것

모든 걸 약속하는 페이지는 아무에게도 도움이 안 돼요. NimBlock이 할 수 없는 것:

  • 새로운 게임 메커니즘은 없어요. 새로운 블록 종류, 독자적인 엔티티, 맞춤 인벤토리 인터페이스: 이런 건 Java의 영역이고, 앞으로도 그럴 거예요.
  • 변수도 반복문도 없어요. 규칙은 반응할 뿐 계산하지 않아요. 두 이벤트 사이에 복잡한 상태를 저장해야 하는 아이디어라면, 이 문법의 범위를 벗어난 거예요.
  • 서드파티 플러그인은 안 돼요. NimBlock은 여러분의 스펙을 실행할 뿐, 다른 곳에서 내려받은 .jar를 불러오지 않아요.
  • 새 명령어는 다음 재시작을 기다려야 해요. 나머지는 서버를 멈추지 않고 바로 적용되지만, 마인크래프트는 명령어를 시작할 때만 등록해요: 게임에서 직접 알게 되는 대신 그 순간 패널에 표시돼요.

플러그인이 실행되는 곳

어디에서도 Java가 생성되거나 컴파일되지 않아요. 서버는 모두를 위해 한 번 작성된 런타임을 불러오고, 이 런타임이 여러분의 스펙을 읽어요. 그래서 여기서 만든 플러그인에는 빚이 없어요: 마인크래프트가 바뀌면 런타임이 한 번 적응하고, 그걸로 만든 플러그인 하나하나가 각각 적응할 필요는 없어요.

NimBlock 서버에서는 설치가 클릭 한 번이고 플레이를 중단하지 않고 플러그인이 내려가요. 런타임 자체는 플러그인 카탈로그에 공개될 예정이라, 같은 스펙을 여기서 호스팅하지 않는 서버에서도 실행할 수 있어요.

자주 묻는 질문

정말 프로그래밍을 몰라도 마인크래프트 플러그인을 만들 수 있나요?
네, 조건이 하나 있어요: 정해진 문법 안에서 규칙을 조합하는 거지, 임의의 프로그램을 짜는 게 아니에요. 규칙은 "이런 일이 일어나면, 이런 조건이 충족되면, 이렇게 한다"라고 말해요. 친구들끼리 운영하는 서버가 필요로 하는 것 중 거의 전부가 이 형태에 들어맞아요: 환영 메시지, 보상, 보호 장치, 공지, 커스텀 명령어. 여기에 들어맞지 않는 건 게임 메커니즘 전체를 새로 만들어야 하는 경우고, 그럴 땐 여전히 Java가 필요해요.
커맨드 블록과는 어떻게 다른가요?
커맨드 블록은 월드 안 정해진 한 지점에 있고 레드스톤이나 타이머로 작동해요. 플러그인은 서버 이벤트에서 작동해요: 플레이어 접속, 블록 파괴, 채팅 메시지 같은 것들이죠. 커맨드 블록이 못 하는 건 무슨 일이 일어나는지에 반응하는 것, 그리고 무엇보다 그 일을 막는 거예요. NimBlock 규칙은 방금 일어난 이벤트를 취소할 수 있어요.
데이터팩과 비교하면요?
데이터팩은 바닐라 게임의 틀 안에 머물러요: 함수, 진행 과제, 전리품 테이블. 진짜 명령어를 추가하거나 채팅을 가로채거나 행동을 취소할 수는 없어요. Paper 플러그인은 그게 가능한데, 월드 데이터가 아니라 서버 안에서 실행되기 때문이에요. 대신 데이터팩은 바닐라 서버에서 작동하고, 플러그인은 Paper나 Spigot이 필요해요.
Skript와 비교하면요?
Skript는 이 장르의 원조고 비교가 안 될 만큼 강력해요: 변수, 반복문, 거대한 확장 라이브러리를 갖춘 진짜 언어니까요. 하지만 그만큼 언어이기도 해서, 익혀야 할 문법과 읽어야 할 오류, 어디서 망가졌는지 알려주지 않는 파일이 따라와요. NimBlock은 할 수 있는 게 훨씬 적지만, 잘못된 규칙은 저장하기 전에 거부하고 문제가 있는 블록의 정확한 위치를 보여줘요. Skript가 편하다면 Skript를 계속 쓰세요.
플러그인이 어딘가에서 Java로 컴파일되나요?
아니요, 그리고 이게 이 제품의 핵심 선택이에요. 스펙은 JSON 파일로 남고, 서버는 모두를 위해 한 번 작성된 런타임을 불러와 그 파일을 읽고 실행해요. 아무것도 생성되지 않고, 아무것도 컴파일되지 않아요. 실질적인 결과: 새 마인크래프트 버전이 나오면 그 비용은 이 런타임 한 곳에서 한 번만 치르면 되고, 그걸로 만든 플러그인 하나하나마다 치르지 않아도 돼요.
NimBlock이 아닌 서버로 플러그인을 가져갈 수 있나요?
그럴 계획이에요. 스펙을 읽는 런타임이 플러그인 카탈로그에 공개될 예정이에요. 스펙은 평범한 JSON 파일이라 런타임이 서버의 plugins 폴더에서 그대로 읽어들여요. 이 페이지를 쓰는 시점에는 아직 공개되지 않았어요.

첫 규칙을 만들고, 이미 존재하는 서버에서 바로 실행되는 걸 확인해보세요.

베타 기간 무료 · 계정당 1 GB 서버 1개