본문 바로가기
카테고리 없음

마인크래프트 플러그인 제작 강좌 - 기초

by ryush00 2015. 12. 2.

안녕하세요. 말똥이입니다. 이번 포스팅에서는 마인크래프트 서버, Bukkit에서 돌아가는 플러그인을 만드는 기초적인 방법에 대해 알아보겠습니다. 준비물은 IntelliJ IDEA Community Edition과 JDK 1.7 입니다. (이 포스팅에서는 설치 방법 및 환경 변수 설정 방법에 대해 자세히 설명하지 않습니다. 오직, 플러그인에 대해서만!)

1. 프로젝트 만들기



Java를 선택하고, Next를 누릅니다.



템플릿은 의미가 없습니다. Next를 클릭합니다.



이번 강좌에서는 Hello World로 하겠습니다.


짜잔! 첫 프로젝트가 생성되었습니다.


2. 플러그인 정보 파일

플러그인에는 자신이 만든 소스 코드 (컴파일시 class 파일로 바뀝니다)와 플러그인 정보를 담는 파일이 있어야 합니다.

플러그인 정보를 담는 파일은 아래와 같은 구조입니다

name: 이름
version: 버전
author: 제작자
main: 메인 클래스

여하튼, 이 정보들을 가지고 있는 파일 이름이 plugin.yml이라는 놈인데, 우리는 이 파일이 없죠. (안 만들었으니 당연한 걸까요?) 이 파일을 추가하기 위해 1. Hello World 프로젝트를 우클릭 2. New -> Folder -> "resources" 쓰기 3. resources 폴더 우클릭하고 Mark Directory As -> Resources Root 눌러주기 4. resources 폴더 우클릭하고 New -> File -> "plugin.yml"을 입력해서 파일을 추가해 주세요. 내용물은 위에 적은 내용대로 복사한다음, 이름, 버전, 제작자까지만 채워 주시면 됩니다. 메인 클래스는 나중에...



여기까지 잘 따라오셨다면 위 그림처럼 되어 있어야 합니다.

3. 플러그인 소스 코드

플러그인 정보만 있으면 뭐하나요. 플러그인 소스가 있어야죠. src 폴더가 우리가 만들 소스가 들어갈 폴더입니다. 메인 소스를 만들기 위해 1. src 폴더 우클릭 -> New -> Package -> "org.example.helloworld" 입력 2. org.example.helloworld 클래스 우클릭 -> New -> Java Class -> "mainclass"를 입력해서 클래스를 만들어 줍니다.

public class mainclass {
}

내용물은 위처럼 텅 비어 있겠죠. 우선 여기서 진행하기 전, 이 플러그인 제작 프로그램 (이하 IDE)은 버킷의 존재를 모릅니다. 그 존재를 알려주기 위해 1. File -> Project Structure -> Modules -> Dependencies -> + (추가) 버튼을 클릭 -> JARs or directories -> 버킷 서버 파일 선택 -> OK를 눌러 저장해 줍니다.

public class mainclass extends JavaPlugin {
}

이제 소스 코드를 수정해야 합니다. 위처럼 extends JavaPlugin을 추가해 주세요. 빨간 줄이 그어지지 않았나 확인해 보시기 바랍니다. (빨간줄은 색 그대로 불행, 오류가 있다는 뜻입니다) 

@Override
public void onEnable() {

}

@Override
public void onDisable() {

}

이제 이 소스코드를 { } 안쪽에 입력해 줍니다. 한쪽은 활성화, 한쪽은 비활성화시 호출됩니다. 우리는 플러그인이 꺼질때 "Hello World!"라 띄우고, 꺼질때에는 "Bye World!"라고 띄우도록 프로그램해 봅시다. 

getServer().getLogger().info("할 말");

위 명령어를 이용하면, 콘솔에 할말을 띄우기가 가능합니다.

public class mainclass extends JavaPlugin {
@Override
public void onEnable() {
getServer().getLogger().info("Hello World!");
}

@Override
public void onDisable() {
getServer().getLogger().info("Bye World!");
}
}

응용하자면, 위와 같은 소스코드가 되겠죠. 한번 실행해 볼까요? 실행하기 위해서는 이 플러그인을 빌드 (Build)해야 합니다.


비활성화 상태입니다.


몇가지 설정을 하기 위해 1. File -> Project Structure -> Artifacts -> + -> JAR -> Empty를 누른 후



저걸 더블 클릭해서 왼쪽으로 옮긴 다음 OK 눌러서 저장하면 Build Artifacts 버튼을 누를 수 있게 됩니다. 그렇지만 그 전에 하나 빠트린 것이 있네요. 컴퓨터는 플러그인을 실행하면, 어디로 가야 하는지 모릅니다. 알게 해줘야겠죠.



plugin.yml 맨 아랫줄을 다음과 같이 변경해 줍니다.

main: org.example.helloworld.mainclass



빌드 결과물은 여기에 있습니다. 서버에서 작동시켜보면..


잘 동작합니다! 이상으로 마인크래프트 기초 플러그인 제작 강좌를 마치겠습니다.

댓글