플러그인의 1부터 10까지라고 쓰고 활용이라고 읽는다.
저번 강좌 중에 "명령어"를 만드는 강좌를 올렸습니다.
오늘은 그 강좌를 활용하여 확성기를 만들어봅시다.
명령어 만들기 : http://blog.kgaons.kr/208
일단 먼저 위 강좌처럼 명령어를 만들기 위한 준비를 해줘야겠죠?
(절대 기존 코드 쓴게 아닙니다)
저의 경우는 콘솔에서 입력 할 때와 플레이어가 입력한 확성기를 따로 분리해보겠습니다.
일단 오늘의 핵심코드를 말해보자면, Bukkit.broadcastMessage(); 입니다.
(클릭시 Docs로 이동합니다)
먼저 콘솔로 입력 할 때의 동작부터 만들겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | @Override public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) { if (sender instanceof Player) { Player p = (Player) sender; } else { // 콘솔이 입력할 때의 동작 if(args.length > 0) { Bukkit.broadcastMessage("§6[CONSOLE] §f" + args[0]); } else Bukkit.getConsoleSender().sendMessage("§c[NOTICE] 사용법: /확성기 <메세지>"); } return false; } | cs |
완성된 코드입니다.
여기서 args.length가 보이는데요.
이는 변수 args의 길이를 반환하는 함수입니다.
기본적으로 명령어는 아래와 같은 형태로 띄고 있습니다.
/cmd arg0 arg1 arg2 ......
확성기의 명령어는 /확성기 <메세지>의 형태이기 때문에 메세지 부분 즉, arg0이 없으면 안되기 때문에
필요합니다.
이번에는 유저 명령어를 만들어봅시다.
1 2 3 4 5 6 7 | if (sender instanceof Player) { Player p = (Player) sender; if(args.length > 0) { Bukkit.broadcastMessage("§6[" + p.getName() + "] §f" + args[0]); } else p.sendMessage("§c[NOTICE] 사용법: /확성기 <메세지>"); } | cs |
두 코드는 거의 비슷하며 사용법 메세지를 보내는 대상과 확성기 문구만 다를 뿐입니다.
저는 명령어를 "확성기"로 하겠습니다. plugin.yml과 Main클래스에 등록 후 테스트를 해봅시다.
인게임, 콘솔 모두 잘 뜨고 있습니다.
사용법도 잘 뜹니다.
테스트는 성공적이나 한가지 문제점이 있습니다.
띄어쓰기를 하면 첫 단어만 출력되는 문제점인데요.
코드 상으로 arg0만 불러왔으니 당연합니다. 이를 해결하기 위해 아래 코드를 써서 가능한데요.
한번 직접 사용해보시길 바랍니다.
1 2 3 | String s = String.join(" ",Arrays.copyOfRange(args, 어느 문자열부터 시작할 것인가, args.length)); 예) String lore = String.join(" ",Arrays.copyOfRange(args, 0, args.length)); | cs |
코드 확인 : https://github.com/SkyLightQP/Notice-Code
오늘 강좌는 여기서 마치겠습니다!
검색어:
마인크래프트, 마인크래프트 플러그인, 마인크래프트 플러그인 만들기, 마인크래프트플러그인,
마인크래프트 확성기, 마인크래프트 확성기 플러그인, 마크
'게임 > 마인크래프트' 카테고리의 다른 글
플러그인의 1부터 10까지! - 콘피그 다루기 (0) | 2017.08.23 |
---|---|
플러그인의 1부터 10까지! - 이벤트 (2) | 2017.08.19 |
플러그인의 1부터 10까지! - 색깔을 표현하는 방법 (0) | 2017.08.12 |
플러그인의 1부터 10까지! - 명령어 만들기 (17) | 2017.08.10 |
플러그인의 1부터 10까지! - 개발 준비하기 (1) | 2017.08.09 |