개인 자료란 (JE)

  서버 커뮤니티

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

플러그인 제작

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

2020.10.12 조회 수 452 추천 수 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/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 3

노트블럭전문가

2024-11-27

1

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ? 1

팀뉴일리시

2024-11-23

5

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2