이전 강의
아직 0강을 보지 않은신 분들은 먼저 보고 오시는 것을 추천드립니다!!
개발환경이란?
서버를 만들었으면 이제 플러그인을 만들어야 할 차례입니다. 그러기 위해서는 개발을 위한 개발환경을 세팅해야 합니다. 흔히 프로그래밍 할 때 언어에 맞는 에디터들을 사용하곤 합니다. 예를 들어서 C언어는 Visual Studio, Java는 Eclipse, IntelliJ, 등이 있고 그냥 VScode를 사용하는 개발자들이 있습니다. 저는 Java 개발할 때 IntelliJ를 사용하기 때문에 여기서는 IntelliJ로 설명하도록 하겠습니다.
① IntelliJ 설치하기
https://www.jetbrains.com/ko-kr/idea/download/?section=windows
위 링크로 들어가시면 Ultimate 버전이 있고 Community 버전이 있습니다. 여러분들은 Community 버전을 다운로드 받으시면 됩니다.
만약 추후에 코틀린 같은 언어도 사용하실거면 다 체크해주시면 됩니다. java만 사용하실 거면 연결생성에서 .java만 체크해주시면 됩니다. 마인크래프트 플러그인은 요즘 코틀린으로도 많이 개발하는 추세입니다. 따라서 나중에 공부해보시는 것도 추천드립니다.
프로그램을 실행시키면 위와 같은 화면이 뜨게됩니다.
② 새 프로젝트 생성하기
먼저 Minecraft Development 라는 플러그인을 다운로드 받으셔야 합니다. Settings에 가셔서 Plugin 탭에서 다운로드 받으세요. 다운로드 받으셨으면 이제 새로운 프로젝트를 생성할 것입니다.
새 프로젝트 생성에서 위와 같이 해주시면 됩니다. 마인크래프트 버전은 여러분이 사용하실 버전으로 설정해주시면 됩니다. Class 이름을 위와 같이 역도메인으로 적는 이유는 관습의 이유도 있고 출처의 고유성 등으로 적습니다. 원래 보통 깃허브 도메인 반대로 적습니다.
생성하시면 위와 같이 뜰 것입니다.
package org.blog.pluginExample; //패키지 이름
import org.bukkit.plugin.java.JavaPlugin; //JavaPlugin을 사용하기 위한 import
public final class PluginExample extends JavaPlugin { //JavaPlugin을 사용하기 위해 확장하는 뜻
@Override
public void onEnable() { //플러그인이 활성화 되었을 때
// Plugin startup logic
}
@Override
public void onDisable() { //플러그인이 비활성화 되었을 때
// Plugin shutdown logic
}
}
③ 코드 작성하기
이제 플러그인이 잘 실행되는지 확인하기 위해 로그가 나타나게 해보겠습니다. 위와 같이 코드를 적어주세요.
package org.blog.pluginExample;
import org.bukkit.plugin.java.JavaPlugin;
public final class PluginExample extends JavaPlugin {
@Override
public void onEnable() {
// Plugin startup logic
getLogger().info("플러그인이 활성화되었습니다.");
}
@Override
public void onDisable() {
// Plugin shutdown logic
getLogger().info("플러그인이 비활성화되었습니다.");
}
}
플러그인이 활성화되면 활성화되었다는 문구가 뜨고, 비활성화되면 비활성화되었다는 문구가 뜨게 될 것입니다.
<코드 설명>
1. package org.blog.pluginExample;
이 코드는 해당 클래스가 org.blog.pluginExample이라는 패키지에 속한다고 명시합니다. 패키지는 클래스들을 논리적으로 그룹화하고 관리하고 이름 충돌을 방지합니다.
2. import org.bukkit.plugin.java.JavaPlugin;
이 코드는 JavaPlugin 클래스를 사용하기 위해 가져오는 선언입니다. JavaPlugin은 BukkitAPI에서 플러그인을 작성할 때 반드시 상송해야 하는 클래스이기 때문입니다. 이 클래스에 onDiable, onEnalbe과 같은 메서드(함수)들이 정의되어 있습니다.
3. public final class PluginExample extends JavaPlugin {
public 은 이 클래스가 어디에서든 접근 가능하다는 뜻입니다. final은 이 클래스를 더 이상 상속할 수 없도록 제한합니다. 사실상 굳이 쓸 필요는 없습니다. class PluginExample은 클래스 이름을 나타냅니다. extends JavaPlugin은 JavaPlugin 클래스를 상속받아 플러그인으로 동작할 수 있도록 설정합니다.
4. @Override
@Override는 어노테이션이라고 합니다. 부모 클래스(JavaPugin)의 메서드를 재정의(Override) 한다는 것을 의미합니다. onEnable과 onDisable은 위에서 설명하였듯이 JavaPlugin 클래스에 기본적으로 정의된 메서드(함수)입니다. 따라서 어노테이션을 붙임으로써 컴파일러가 메서드를 올바르게 재정의 했는지 확인해줍니다.
5. public void onEnable() {
이 코드는 서버에서 활성화될 때 호출되는 메서드입니다. 플러그인의 초기화 로직을 작성하는 곳입니다.
6. getLogger().info("플러그인이 활성화되었습니다.");
이 코드는 서버의 로그에 "플러그인이 활성화되었습니다"라는 메시지를 출력합니다. getLogger() 메서드도 JavaPlugin에서 제공하는 메서드입니다. 로그를 관리하는 역할을 합니다.
7.onDisable도 마찬가지로 플러그인이 비활성화될 때 작동하는 메서드입니다.
④ 빌드 설정하기
다음으로 build.gradle이라는 파일로 들어가주세요. 들어가시면 이렇게 화면이 나올 것입니다.
그럼 우리는 플러그인 jar 파일을 어디에 생성할지 지정해주어야 하기 때문에 아래 코드를 추가 해줍니다.
tasks.jar{
archiveFileName = 'testPlugin.jar'
destinationDirectory = file('C:\\Users\\ithan\\Desktop\\Server\\plugins')
}
이렇게 말입니다. DestinationDirectory의 파일 경로는 여러분이 플러그인을 어디에 생성할지 정해주시면 됩니다. 저는 이제 귀찮음을 방지하기 위해서 서버 폴더의 plugins 폴더에 바로 생성하도록 하겠습니다.
⑤ 빌드하기
저장해주신 뒤 맨 오른쪽에 코끼리 모양을 클릭해주세요. 이건 이제 gradle이라고 하는 build tool입니다. build tool은 소프트웨어 생성을 자동화하는 도구입니다. 종속성 관리도 해주기 때문에 배포할 때 편합니다.
그 다음 Tasks▶build ▶ jar을 더블클릭합니다.
그럼 이제 얘가 알아서 빌드를 해주고 jar 파일을 만들어줍니다.
아까 build.gradle에서 설정한 경로대로 플러그인 파일이 생성되는 것을 확인할 수 있습니다. 만약 다른 경로로 설정하신 분들은 플러그인 파일을 서버폴더의 plugins 폴더 안에 집어 넣으시기 바랍니다.
⑥ 플러그인 테스트하기
그럼 이제 플러그인이 실행되는 것을 확인하기 위해 서버를 열고 마인크래프트에 들어가보겠습니다. server.bat 파일을 실행시켜주세요.
서버에 잘 적용된 모습을 볼 수 있습니다. 그럼 server.bat에서 stop을 입력하셔서 비활성화 되었을 때도 확인해보세요.
위와 같이 문구가 잘 적용된 모습을 볼 수 있습니다.
⑦ 마무리하기
오늘은 간단한 플러그인을 제작해보고 서버에 적용하기까지 했습니다. 만약 궁금한 점이 있으시면 댓글로 달아주시면 성심성의껏 답변해드리도록 하겠습니다.
'마인크래프트 플러그인' 카테고리의 다른 글
마인크래프트 플러그인 강좌 4강 - 커스텀 스코어보드 구현 (0) | 2024.11.25 |
---|---|
마인크래프트 플러그인 강좌 3강 - 커스텀 인벤토리 구현 (0) | 2024.11.23 |
마인크래프트 플러그인 강좌 2강 - 커스텀 커맨드 구현 (2) | 2024.11.22 |
마인크래프트 플러그인 강좌 0강 - 준비하기 (2) | 2024.11.20 |