progprag
대표칭호 없음
안녕하세요. 오늘도 뿌루뜨입니다.
오늘은 /fly 명령어를 만들어볼거에요!
일단 프로젝트를 만들어주고요,
우리의 코드파일을 만듭니다 그방법은 아래와 같습니다.
이제 코드파일을 만들었으니까 코드를 셋팅해봅시다.
위와 같이 하면 실행될 코드를 셋팅한 겁니다.
이제 그 명령어를 사용하면 실행되는 코드를 셋팅햇습니다.
이제는 위와 같이 플러그인에 우리의 명령어를 추가합시다.
그리고 아래 이미지를 참고해서 서버에 명령어를 등록해봅시다.
좋아요. 이제 /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; //이 코드를 실행한 코드에게 명령어가 잘 실행됬는지에 대해서 참을 알린다. }
이제 컴파일 하고 빌드해줍시다.
아래처럼.
이게 뜨면 됩니다.
그러면 여기에 당신의 플라이 플러그인 .jar 파일이 있습니다.
플러그인을 버킷 플러그인 폴더에 넣고 /fly 명령어를 실행시켜보세요.
끝!
다음강의는 config.yml 을 설정하는 방법에 대해서 말해보겠습니다. 그럼 이만 삡빱뽀!
haejeok
2020.04.28굳 감사요
PatrickKR
2020.04.28저,,기,, sender의 타입을 확인하지 않고.. Player로 타입 변환하면.. 오류를 뿜습니다.. 콘솔이나 커맨드블록 등에서 쓴다면 말이죠..
playerList는 로드 시 마다 초기화되니.. getAllowFlight 로 나는게 허가 되었는지 확인하고 true면 false로, false면 true로 바뀌게 하는 것도 좋을 것 같네요.....
progprag
2020.04.28땡큐~