기존에는 공식 위키에도 Gradle로 시작하는 방법이 있는 만큼 Gradle 프로젝트로 시작했었다. 그러나 생각보다 대부분의 플러그인들이 maven 프로젝트였고, 초보인 만큼 정보의 풀이 많은 maven으로 시작하기로 했다.
maven으로 프로젝트를 새로 연다.
groupId: io.github.potato-y.hottimeevent
artifactId: HotTimeEvent
로 설정하여 프로젝트를 생성하였다.
위 링크로 들어가면 최신 버전과 함께 가이드가 잘 되어있다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.github.potato_y.hottimeevent</groupId>
<artifactId>HotTimeEvent</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
</properties>
<repositories>
<!-- This adds the Spigot Maven repository to the build -->
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencies>
<!--This adds the Spigot API artifact to the build -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.16.5-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
위 링크를 참조하여 프로젝트를 설정하였다.
utf-8 인코딩 문제가 있어 <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
를 추가 하였다.
서버에서 플러그인으로 인식할 수 있도록 plugin.yml 파일을 추가해준다.
name: HotTimeEvent
main: io.github.potato_y.hottimeevent.HotTimeEvent
version: 1.0
commands:
HotTimeEventTest:
description: 플러그인이 정상 작동하는지 확인하세요.
usage: /HET 를 입력하세요.
aliases:
- HET
permission: hottimeevent.het
permission-message: You do not have permission to use this command.
permissions:
hottimeevent.het:
default: op
테스트용 명령어와 권한까지 입력했다.
name에 띄어쓰기가 들어가면 안 된다. 이거 때문에 몇 시간을 헤맸다.
사진과 같이 패키지를 만들었다.
메인 클래스로 사용할 HotTime_Event
클래스를 생성하고 다음과 같이 코드를 입력했다.
package io.github.potato_y.hottimeevent;
import org.bukkit.plugin.java.JavaPlugin;
public class HotTime_Event extends JavaPlugin {
@Override
public void onEnable(){
//플러그인 활성화
getLogger().info("HotTime event on");
}
@Override
public void onDisable(){
//플러그인 비활성화
getLogger().info("Jong Plugin end");
}
}
몇 시간 만에 드디어 빌드를 한다.
package를 두 번 눌러준다.
빌드 완료!
프로젝트 폴더\target에 가면 사진과 같이 jar 파일이 생긴 것을 볼 수 있다.
정상적으로 작동하는 것을 확인할 수 있다.