본문 바로가기
마인크래프트/플러그인 제작 강좌(자바)

[자바로 마크 Paper 플러그인 만들기]1. 기본 세팅하기

by Zepelown 2023. 12. 23.

안녕하세요.

 

이전에 만들었던

 

'인텔리제이로 마크 플러그인 만들기' , '코틀린으로 마크 플러그인 개발하기' 

 

두 시리즈를 리뉴얼하여

 

'자바로 마크 Paper 플러그인 만들기'로 돌아왔습니다.

 


Paper API 란??

기존 Spigot의 문제점들을 해결하여 만든 Bukkit API 베이스 API

 

Spigot 추세에서 성능적인 문제로 Paper로 넘어갔고

 

주류가 된 API입니다.

Development Guide | PaperMC Documentation

 

Development Guide | PaperMC Documentation

Welcome to the Paper Development Guide! This guide includes information and tutorials on

docs.papermc.io


시작 개발 환경

마인크래프트 버전 : 1.20.2

 

언어 : 자바 (JDK 17)

Java Archive Downloads - Java SE 17 (oracle.com)

 

Java Archive Downloads - Java SE 17

WARNING: These older versions of the JDK are provided to help developers debug issues in older systems. They are not updated with the latest security patches and are not recommended for use in production. For production use Oracle recommends downloading th

www.oracle.com

 

IDE : 인텔리제이 (New UI)

/New UI 적용법/

더보기

인텔리제이 Settings -> Appearance & Behavior -> New UI

버전 관리 : Gradle

 


프로젝트 생성

1. 인텔리제이 플러그인 설치하기

자 첫 시작이니 프로젝트를 만들어봅시다.

 

먼저 마인크래프트 개발 관련 설정을 한 번에 해주는 인텔리제이의 플러그인을 설치해 봅시다.

 

인텔리제이 Settings -> Plugins -> MarketPlace -> Minecraft 검색

그림 1. 저는 설치가 되어 있으므로 Disable 표시가 뜹니다.

 

Minecraft Development 라는 인텔리제이 플러그인을 사용할 겁니다.

 

설치해 줍시다.

 

2. 인텔리제이 프로젝트 생성

인텔리제이 New Project 버튼을 누르게 되면

 

그림 2. 프로젝트 생성 화면

 

왼쪽 Generators에서 Minecraft를 눌러주면 위와 같은 화면이 나옵니다.

 

Name 을 PaperEdu로 하였습니다.

 

개발 환경에서 언급한 대로

 

Platform Type은 Plugin,

 

Platform은 Paper,

 

Minecraft Version은 1.20.2,

 

Build System은 Gradle,

 

Group ID는 폴더 경로

 

org.blog -> org 폴더 내의 blog 폴더를 뜻한다고 생각하시면 됩니다.

 

org.blog로 설정하였고

 

JDK는 17로 해주었습니다.

/만약 JDK 17이 안뜬다면??/

더보기

JDK의 경로를 직접 설정해주셔야 합니다.

 

일반적으로 C:\Program Files\Java 에 있습니다.

 

그림 3. 프로젝트 생성 결과

 

Create 버튼을 누르면 프로젝트가 생성됩니다.

 


코드 작성 해보기

PaperEdu  클래스 전체 코드

public final class PaperEdu extends JavaPlugin {

    @Override
    public void onEnable() {
        // Plugin startup logic

    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic

    }
}

 

만들어진 PaperEdu 클래스는 Main 클래스로

 

서버의 시작 및 종료를 담당한다고 생각하시면 됩니다.

 

onEnable(), onDisable() 메소드는 각각 시작, 종료 시에 실행됩니다.

 

public final class PaperEdu extends JavaPlugin {

    @Override
    public void onEnable() {
        // Plugin startup logic
        getLogger().info("플러그인 시작 테스트");
    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
        getLogger().info("플러그인 종료 테스트");
    }
}

 

로그를 남겨보겠습니다.


빌드 해보기

코드를 작성했으니 빌드 아티팩트(빌드 결과물)를 만들어 보겠습니다.

 

먼저, 플러그인 아티팩트 경로를 개발 서버의 plugins 폴더로 지정하여

 

차후에 개발할 때, 귀찮은 작업을 줄이겠습니다.

 

build.gradle 파일

tasks.jar{
    archiveFileName = 'PaperEduPlugin.jar'
    destinationDirectory = file('C:\\Users\\User\\Desktop\\game\\minecraft\\1.20.2 paper plugin develop server\\plugins')
}

 

build.gradle 파일에 위와 같은 코드를 추가합니다.

 

archiveFileName은 파일명,

 

destinationDirectory은 결과물 경로를 나타냅니다.

 

여기서 destinationDirectory를 본인이 사용하는 서버의 폴더 경로로 지정해주세요

 

이제 빌드해 보겠습니다.

 

그림 4. Gradle 창 위치

 

인텔리제이의 오른쪽 상단을 보게 되면 코끼리 비슷한 아이콘이 있습니다.

 

이를 눌러봅시다.

 

그림 5. Gradle jar 빌드

 

Tasks -> build -> jar 눌러줍니다.

 

그림 6. 빌드 완료 창

 

그림 7. 서버 플러그인 폴더에 있는 플러그인 파일

 

서버를 실행하여 결과를 확인해 보겠습니다.

그림 8. 서버 콘솔 창


만약 한글이 나오지 않는다면??

[인텔리제이로 마크 플러그인 개발하기] 2. 인텔리제이 한글인코딩 (tistory.com)

 

[인텔리제이로 마크 플러그인 개발하기] 2. 인텔리제이 한글인코딩

약 2년 전에 멈췄던 강의를 다시 시작하고자 합니다. 공지글을 쓰는 겸 미처 알려드리지 못한 내용을 짧게 알려드리겠습니다. 먼저 1강은 지금도 여전히 문제없습니다. 그대로 쭉 진행하시면 됩

zepelown.tistory.com

 

 

댓글