카테고리 없음

Minecraft Plugin EVENT

JAVART 2017. 11. 24. 13:38
반응형

플러그인 인식에 성공하고 잠시 이벤트 처리를 위해 api를 살펴보고 있는데

아무리 봐도 어떻게 쓰는지를 모르겠었다.


클래스 만들어서 상속도 시켜보고 해봤지만 도저히 안되었었는데

조사해보니 따로 방법이 있었다.


---------------------------------------------------------------------------

개발환경

JDK : 1.8

Server : Spigot 1.12.2


----------------------------------------------------------------------------

PluginManager라는 인터페이스가 필요하다.


PluginManager pm = getServer().getPluginManager();

위와같이 선언 후


pm.registerEvents(Class, Plugin);

으로 등록을 해야한다.


Class는 객체를 생성해서 넘겨준다. new MyEvent()

Plugin은 JavaPlugin을 상속받은 클래스에서 this를 넣어줘도 된다.

---------------------------------------------------------------------------

이후는 쉽다.


public class MyEvent implements Listenr{



}


처럼 클래스를 생성하고 인터페이스를 상속받는다.

이 후, 생성자는 기본생성자를 사용해도 되며 함수 선언에 대해서 함수명은 자유인듯 하다.

대신, 함수가 받는 매개값을 이벤트 클래스로 받도록 한다.



public void onMoveEvent(PlayerMoveEvent event){

if(event.getTo().getBlockX() > 500 || event.getTo().getBlockZ() > 500){

event.getPlayer().sendMessage("나가지마요!");

event.setCancelled(true);

}

}


처음엔 이렇게 작성을 했는데, 작동하질 않았었다.

그 이유는, 이벤트핸들러를 지정해주지 않아서였다.



@EventHandler(priority = EventPriority.NORMAL)

public void onMoveEvent(PlayerMoveEvent event){

if(event.getTo().getBlockX() > 500 || event.getTo().getBlockZ() > 500){

event.getPlayer().sendMessage("나가지마요!");

event.setCancelled(true);

}

}


이런식이다.

정상적으로 이벤트를 처리해줌을 알 수 있었다.

반응형