마인크래프트 플러그인 개발 - 2. 이벤트 추가

kingcjy·2020년 2월 17일
0
post-thumbnail

Introduction

이번 포스팅에서는 마인크래프트 내에서 발생하는 이벤트를 핸들링하는 방법을 알아보겠습니다.
전체 이벤트는 org.bukkit.event 하위에서 확인하실 수 있습니다.

Maven 설정

pom.xml

<repositories>
  <repository>
    <id>spigot-repo</id>
    <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
  </repository>
</repositories>
<dependencies>
  <dependency>
    <groupId>org.bukkit</groupId>
    <artifactId>bukkit</artifactId>
    <version>1.12.2-R0.1-SNAPSHOT</version>
  </dependency>
  <dependency>
    <groupId>io.github.kingcjy</groupId>
    <artifactId>ezframework-core</artifactId>
    <version>1.1.1</version>
  </dependency>
</dependencies>

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArgs>
          <arg>-parameters</arg>
        </compilerArgs>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Main Class

마인크래프트 플러그인의 main class에는 JavaPlugin을 상속받아야합니다.
me.kingcjy.example.Main.java

public class Main extends JavaPlugin {
//    플러그인 활성화 시점에 호출
    @Override
    public void onEnable() {
//        프레임워크 초기화
        EzFramework.run(this);
    }
}

Event 클래스 생성

me.kingcjy.example.event.JoinEvent

@EzEvent
public class JoinEvent implements Listener {

//    플레이어가 서버에 접속할때 발생하는 이벤트
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
        Player player = e.getPlayer();
        player.sendMessage("환영합니다!!!");
    }
}

plugin.yml 작성

resources/plugin.yml

name: <플러그인 이름>
main: <메인 클래스 (패키지 이름까지)>
version: <버전>

예시

name: testplugin
main: me.kingcjy.example.Main
version: 0.0.1

테스트

mvn package 명령어를 실행해 jar파일로 만듭니다.
target/폴더 안에 생성된 jar파일을 서버의 plugins/폴더에 넣고 서버를 실행합니다.

서버에 접속 후 /message send Hello World를 입력하면

위와 같이 메세지를 전송합니다.

끝!

샘플 소스는 >> GITHUB <<에 있습니다.

profile
아 개발잘하고싶다

0개의 댓글