콘텐츠로 이동

플러그인이란?

모드팩을 해 봤다면 Mod(모드)라는 개념은 익숙하겠지만, 서버를 처음 열어 본다면 Plugin(플러그인)이 무엇인지 모를 수도 있다. 이 문서에서 자세히 소개한다.

대부분의 모드가 클라이언트와 서버 양쪽에 설치해야 하는 것과 달리, 플러그인은 서버에만 설치한다.

플레이어는 바닐라 클라이언트로 접속하면 되고, 대부분의 경우 모드를 따로 설치할 필요가 없다.

플러그인(Plugin)이라는 이름이 붙은 이유는 모드(Mod)보다 꽂았다 뺐다 하기 쉽기 때문이다.

게임 콘텐츠를 더 간편하게 추가하거나 바꿀 수 있고, Minecraft 자체를 침습적으로 고치는 정도도 더 적다.

플러그인은 서버 루트 디렉터리의 /plugins 폴더에 넣은 뒤 서버를 재시작해야 한다.

플러그인 핫로드/핫리로드/핫언로드란 서버가 이미 실행 중일 때 플러그인을 불러오거나/다시 불러오거나/내리는 것을 말한다.

서버가 돌아가는 중에는 함부로 하지 말자. 대부분의 플러그인은 핫로드를 지원하지 않으며, 예측할 수 없는 결과가 생긴다.

그래도 꼭 순리를 거스르고 싶다면 플러그인 관리 페이지를 참고하자.

  • 플러그인 개발은 대부분 더 간단하고, Minecraft 소스 코드를 직접 다룰 필요가 없다. Skript 같은 스크립트 언어는 개발 난이도를 머리만 조금 있으면 할 수 있는 수준까지 낮춰 준다.
  • 플러그인 API는 대부분 이벤트로 서버의 여러 동작을 추상화해서 복잡도를 숨기고, 호환성도 더 좋다.
  • 플러그인 API는 Minecraft 소스 코드가 바뀌어도 깨지지 않기 때문에 버전이 올라가도 고칠 게 많지 않다. 예를 들어 Vault는 3년 전 업데이트된 버전이 최신 버전에서도 동작한다.
  • API가 버전마다 바뀌기 때문에, 기능이 많은 플러그인은 마이너 버전만 바꿔도 일부 기능이 망가지거나 아예 로드되지 않을 수 있다.
  • Minecraft 자체 코드에 접근하기가 어렵고, 보통 여러 버전 사이의 코드 변화를 고려해야 한다.
  • 모드처럼 Mixin으로 게임 코드를 직접 고치기 어려워서, 소스 코드를 수정해야만 구현할 수 있는 기능은 플러그인으로 만들기 힘들다.

플러그인은 모드처럼 게임 소스 코드를 직접 고칠 수는 없지만, 게임에 있는 요소를 활용해 놀라운 일을 해낼 수 있다.

다음은 (초보자 입장에서) 놀라운 플러그인들이다.

  • Slimefun: 플러그인으로 모드 같은 기능 구현
  • ItemsAdder/Oraxen: 커스텀 블록, 아이템, HUD, 가구 등
  • ModelEngine: 모드처럼 커스텀 몹 엔티티
  • MythicMob: 모드 같은 스킬과 몹 제작

플러그인 서버에서는 이제 커스텀 아이템, 블록, HUD, 가구, 이모지, 몹 엔티티, 농작물, 나뭇잎, 툴팁, 인챈트까지 쓸 수 있다.

그러니 플러그인이 최종 결과물에서 모드보다 못하다고 섣불리 생각하지 말자. 소스 코드를 고치지 않고도 같은 효과를 낼 수 있는 경우가 많지 않은가?