개인 자료란 (JE)

  서버 커뮤니티

Profile progprag 대표칭호 없음
Profile

플러그인 제작

마인크래프트 플라이 플러그인을 만들어보자 #003

2020.04.27 조회 수 1511 추천 수 0

안녕하세요. 오늘도 뿌루뜨입니다.


오늘은 /fly 명령어를 만들어볼거에요!


일단 프로젝트를 만들어주고요,


우리의 코드파일을 만듭니다 그방법은 아래와 같습니다.


708bb013b0260ef3df6b2b905300944b.gif




이제 코드파일을 만들었으니까 코드를 셋팅해봅시다.


3c356c8fa6901020c491b71a955f5947.gif


위와 같이 하면 실행될 코드를 셋팅한 겁니다.


이제 그 명령어를 사용하면 실행되는 코드를 셋팅햇습니다.


b308619a59f4a143ef32f18b9e631843.gif

49ef29a47eeb934ec402c79c9243854c.gif



이제는 위와 같이 플러그인에 우리의 명령어를 추가합시다.


그리고 아래 이미지를 참고해서 서버에 명령어를 등록해봅시다.


6d9e41e572a438675cffa163840e7900.gif



좋아요. 이제 /fly 명령어가 발생할 때 우리의 코드가 실행됩니다.


그니까 이제 코드를 짭시다. 지금부터요.



ArrayList<Player> playersList = new ArrayList<>(); 

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

if (!(sender instanceof Player)) return true
    Player player = (Player) sender; 

    if (playersList.contains(player)) { 
        playersList.remove(player); 
        player.setAllowFlight(false); 
    } else {
        playersList.add(player);  
        player.setAllowFlight(true);  
    }


    return true;  
}

위에 꺼 해석본. 제 나름대로 해석했으니까 자바적인 공부를 하는데에 있어서 별 지장이 있을겁니다.

ArrayList<Player> playersList = new ArrayList<>();  // 플레이어가 담겨있는 리스트를 만듬.

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

if (!(sender instanceof Player)) return true;

    Player player = (Player) sender; //커맨드를 실행한 누군가를 플레이어 타입으로 바꿔서 플레이어 변수에 저장함.

    if (playersList.contains(player)) { // 만약 플레이어 리스트 변수에 플레이어 변수가 있으면 아래를 실행한다.
        playersList.remove(player);  //플레이어 리스트에서 플레이어를 제거한다.
        player.setAllowFlight(false);  //플레이어의 플라이 가능 여부 값을 거짓으로 바꾼다.
    } else { //만약 플레이어 리스트 변수에 플레이어가 없으면 아래를 실행한다
        playersList.add(player);  //플레이어 리스트에서 플레이어를 추가한다.
        player.setAllowFlight(true);  //플레이어의 플라이 가능 여부 값을 참으로 바꾼다.
    }


    return true;  //이 코드를 실행한 코드에게 명령어가 잘 실행됬는지에 대해서 참을 알린다.
}





이제 컴파일 하고 빌드해줍시다.

아래처럼.


8eee58cb699be8c90aa59ef3e6c251d3.gif


e4cd8ec6ee4ca9b5ae9fa98e28f8babd.png

이게 뜨면 됩니다.




그러면 여기에 당신의 플라이 플러그인 .jar 파일이 있습니다.

6a2b2e3879d52e8e119af2fe3d636973.gif




플러그인을 버킷 플러그인 폴더에 넣고  /fly 명령어를 실행시켜보세요.


끝!


다음강의는 config.yml 을 설정하는 방법에 대해서 말해보겠습니다. 그럼 이만 삡빱뽀!


https://discord.gg/2gxSqWu

3개의 댓글

haejeok
2020.04.28

굳 감사요

PatrickKR
2020.04.28

저,,기,, sender의 타입을 확인하지 않고.. Player로 타입 변환하면.. 오류를 뿜습니다.. 콘솔이나 커맨드블록 등에서 쓴다면 말이죠..

playerList는 로드 시 마다 초기화되니.. getAllowFlight​ 로 나는게 허가 되었는지 확인하고 true면 false로, false면 true로 바뀌게 하는 것도 좋을 것 같네요.....

progprag
2020.04.28
@PatrickKR

땡큐~

뉴스 및 창작물
/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