본문으로 바로가기
반응형

## 게시글을 보기 전 확인 해주세요. ##

완성본 파일 다운받기 : 에제2.zip

만약, 위 결과물을 알카이브 파일로 추가를 못한다면 아래의 링크를 눌러주세요.

[Spring] 알카이브 파일 추가하기


이번에 게시글의 이벤트는 PlayerJoinEvent, PlayerQuitEvent 입니다.

PlayerJoinEvent 는 플레이어가 접속을 했을때 PlayerQuitEvent 는 플레이어가 퇴장을 했을때 실행되는 메소드 입니다.

이벤트의 디폴트값 변경법 및 이벤트 사용법에 대해서 알아봅시다.


우선 이클립스 IDE를 실행시켜주세요.


이전 게시물을 통해 만들어둔 결과물을 바탕으로 진행을 하도록 하겠습니다.

만약, 파일이 없으신 분들은 아래의 링크를 눌러주세요.

[Minecraft]마인크래프트 개발을 위한 메이븐 프로젝트를 만들어보자.


Main.java의 파일을 여시면 위와 이미지와 같은 기존의 결과물이 있습니다.



1
2
3
4
5
6
7
8
9
    @EventHandler
    public void PlayerJoinEvent (PlayerJoinEvent e) {
        
    }
    
    @EventHandler
    public void PlayerQuitEvent (PlayerQuitEvent e) {
        
    }
cs

위의 코드를 14번쨰줄에 넣어 주세요.


위 이미지는 소스코드를 넣고 난 결과 화면 입니다.


그런뒤 @EventHandler를 작동을 하기 위해서 12번쨰줄에 아래의 코드를 삽입 해주세요.

1
getServer().getPluginManager().registerEvents(this, this);
cs


위 이미지는 코드를 삽입한 결과 입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package org.alpreah.main;
 
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
 
public class Main extends JavaPlugin implements Listener {
    public void onEnable() {
        getLogger().info("onEnable 메소드가 호출이 되었고 정상적으로 작동 되었습니다.");
        getServer().getPluginManager().registerEvents(this, this);
    }
 
    public void onDisable() {
        getLogger().info("onDisable 메소드가 호출이 되었고 정상적으로 작동 되었습니다.");
    }
    
    @EventHandler
    public void PlayerJoinEvent (PlayerJoinEvent e) {
        
    }
    
    @EventHandler
    public void PlayerQuitEvent (PlayerQuitEvent e) {
        
    }
    
}
 
cs

위 소스코드는 위 과정을 통해 완성된 소스코드 입니다.

참고 바랍니다.


이제, 이벤트 설정도 마무리가 되었으니 이벤트를 간단하게 사용을 하도록 하겠습니다.

위 이미지와 같이 접속을 하게 되면 위와같은 메시지가 출력이 되는데 이 메시지를 변경을 하겠습니다.


1
2
3
4
5
6
7
8
9
    @EventHandler
    public void PlayerJoinEvent (PlayerJoinEvent e) {
        //플레이어라는 자료형의 변수명을 player로 지정을 하고 이벤트를 통해 접속을 한 플레이어를 구해온다.
        //(Player)는 자료형을 변환해주는 역활
        Player player = (Player) e.getPlayer();
        //플레이어 접속가 접속을 했을때 메시리를 변경을 한다.
        //player.getDisplayName()플레이어의 이름을 구한다.
        e.setJoinMessage(player.getDisplayName() + "님이 입장을 하셨습니다.");
    }
cs

위와 같은 소스를 PlayerJoinEvent 메소드에 블록에 넣어주세요.


위 소스코드를 추가한 결과값 입니다.


마인크래프트 인게임 내 실행 화면


1
2
3
4
5
    @EventHandler
    public void PlayerQuitEvent (PlayerQuitEvent e) {
        Player player = (Player) e.getPlayer();
        e.setQuitMessage(player.getDisplayName() + "님이 퇴장 하셨습니다.");
    }
cs

위와 같은 소스를 PlayerQuitEvent 메소드에 블록에 넣어주세요.


위 소스코드를 추가한 결과값 입니다.


서버에 퇴장하니까 필자가 확인이 불가능해서 cmd창으로 확인한것을 보여 


## 서버 내에 플러그인을 적용하자 ! ##

자신이 만든 프로젝트 우클릭 하고 "EXPORT"를 눌러주세요.


검색하는 칸에 jar를 검색하고 "jar file"을 누르신뒤 Next를 눌러주세요.


"EXPORT ALL OUTPUT FOLDERS FOR CHECKED PROJECTS"를 클릭해주세요.


이제 서버를 키시고 사용 하시면 됩니다.


## 결과 영상 ##


반응형