개인 자료란 (JE)

  서버 커뮤니티

Profile 난아무것도몰라요 대표칭호 없음
Profile

플러그인 제작

마인크래프트 플러그인 만들기 4강 - 이벤트

2020.10.12 조회 수 419 추천 수 0

안녕하세용! 난아몰입니당.

잡담없이 바로 4강을 시작하겠습니다.


오늘도 새로운 클래스를 생성해 주세요. 이름은 마음대로 해도 상관없지만 전 Events라고 하겠습니다.

그 뒤 Listener을 implements해주세요.

public class Events implements Listener {
}

이런식으로요. 다음으로 이벤트를 만들어 봅시다.

일단 Event만을 매개변수로 하는 매소드를 하나 만들어 봅시다. 매소드 이름은 마음대로 하셔도 상관 없습니다.

일단 전 입장 메시지를 만들거기에 이름은 onJoin으로 하겠습니다. 그리고 매서드 위에 @EventHandler 어노테이션을 이용해서 이 매소드가 이벤트라고 표시를 해줍시다 .

@EventHandler
public void onJoin(PlayerJoinEvent e) {
}

이런 식으로요. 그럼 이제 메시지를 출력해 봅시다 .

일단 Player p를 선언해 줍시다. 그리고 PlayerJoinEvent.setJoinMessage(String message);  을 사용해서 입장 메시지를 설정해 봅시다. 그러면

@EventHandler
public void onJoin(PlayerJoinEvent e) {
    Player p = e.getPlayer();
    e.setJoinMessage("§e" + p.getName() + "§f님이 접속하셨습니다!!!");
}

이런식으로 완성됩니다. 마지막으로 이벤트를 등록해 봅시다(등록을 안할시 작동을 안합니다)

onEnable안에 아래 코드를 사용하여 이벤트를 등록합니다.

Bukkit.getPluginManager().registerEvents(new Events(), this);

그리고 테스트를 해보면....

cbc67d8cf44de369d27437270055a8c1.png

이렇게 잘 적용됩니다. 그럼 이번엔 블럭 설치/파괴를 금지하는 이벤트도 만들어 볼까요?

@EventHandler
public void onPlace(BlockPlaceEvent e) {
    Player p = e.getPlayer(); //이벤트를 실행한 플레이어
    if(p.isOp()) { //플레이어가 op가 아닐때
        p.sendMessage("§c당신은 블럭을 설치할 귄한이 없습니다"); //플레이어에게 메시지 보내기
        e.setCancelled(true); //설치하는 행동을 취소(설치불가)
    }
}

이런식으로 op일때만 설치 할 수 있게 만들어 봅시다. 그리고 onPlace도 비슷하게 만들어 주세요.

@EventHandler
public void onBreak(BlockBreakEvent e) {
    Player p = e.getPlayer(); //이벤트를 실행한 플레이어
    if(!p.isOp()) { //플레이어가 op가 아닐때
        p.sendMessage("§c당신은 블럭을 파괴할 귄한이 없습니다"); //플레이어에게 메시지 보내기
        e.setCancelled(true); //파괴하는 행동을 취소(파괴불가)
    }
}

이런식으로요. 이 두 매소드 모두 한 클래스 안에 작성했기에 따로 이벤트를 등록할 필요는 없습니다.

그뒤 빌드하고 테스트를 해보면...

d46a5ea6555225e840f57ed066252ad1.png

이런식으로 메시지도 잘 뜨고 블럭설치도 잘 막아 집니다.


더 많은 이벤트들은 여기를 클릭하여 확인 가능합니다.

이상 이벤트 강좌를 미치겠습니다.

다음은 아이템에 관하여 알아보겠습니다.

Warning
댓글이 없습니다.

새로운 댓글을 등록해 주세요!

뉴스 및 창작물
/files/thumbnails/308/805/003/262x150.crop.jpg?20240605201646

레드스톤

[노트블럭 커버] 팬서비스/mona 【 HoneyWorks 】

노트블럭전문가

2024-06-05

0

/files/thumbnails/288/791/003/262x150.crop.jpg?20240602150002

아티클

《까다로운 시련》 업데이트 날짜 공개 및 정보

학교가기싫다

2024-06-02

0

/files/thumbnails/841/773/003/262x150.crop.jpg?20240526120908

레드스톤

마인크래프트 노트블록버전 『 봄을 고하다 (春を告げる) 』 [더블옥타브 버전]

노트블럭전문가

2024-05-26

0

/files/thumbnails/712/796/003/262x150.crop.jpg?20240525085438

레드스톤

마인크래프트 노트블록으로 만든 『 봄을 고하다 (春を告げる) 』 1

Sonttukk

2024-05-25

0

/files/thumbnails/268/789/003/262x150.crop.jpg?20240515192032

레드스톤

벌레먹은 돌 빠르게 제거하는 법

GlassesFilm

2024-05-15

0