분야 | 플러그인 |
---|---|
게임버전 | 모든버전 |
안녕하세요! 오늘은 마인크래프트 플러그인 개발하기 3강으로 돌아왔습니다.
평소에 마인크래프트에서 날씨를 바꾸려면 "/weather clear", "/weather rain"등을 입력해야 하는 데 너무 귀찮습니다.
그래서 명령어를 만들도록 하겠습니다.
0.새 프로젝트 생성
먼저 새 프로젝트를 만들어 주도록 합니다.
File -> New -> JavaProject -> 프로젝트 이름 설정 뒤 Finish -> 스피곳 Build Path하기(모르시는 분은 2강 참조) -> 패키지, 클래스 생성
저는 패키지 이름을 changeweather이라고 하고 클래스 이름을 Main이라고 하겠습니다.
1.코드 적기
package changeweather;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
public boolean onCommand(CommandSender sender, Command cmd, String s, String[] a) {
Player player = (Player) sender;
if(cmd.getName().equalsIgnoreCase("w")) {
if(0 < a.length) {
World world = player.getWorld();
if(a[0].equalsIgnoreCase("Sun")) {
world.setStorm(false);
world.setThundering(false);
} else if(a[0].equalsIgnoreCase("rain")) {
world.setStorm(true);
world.setThundering(false);
} else if(a[0].equalsIgnoreCase("storm")) {
world.setStorm(true);
world.setThundering(true);
} else {
player.sendMessage(ChatColor.RED + "날씨를 입력하시오");
}
}
return false;
}
}
2.코드 해석
자 이제 코드를 해석해 드리겠습니다.
Command Sender와 Command cmd같은 경우는 2강에서 설명해드렸습니다.
명령하는 자(플레이어 혹은 콘솔 창)
Player은 말그대로 게임 안에서의 플레이어 입니다. World는 플레이어가 있는 월드를 정의 해준 것입니다.
만약 플레이어가 "/w sun"이라고 친다면 맑은 날씨가 됩니다. "sun" 코드에는 world.setStorm과 world.setThundering에 false가 들어가 있습니다. 이 말은 즉 비도 안 오고 천둥도 안 치고, 번개도 안 친다는 말입니다.
그 다음은 플레이어가 "/w rain"이라고 친다면 비가 내린다가 됩니다. "rain"코드에는 world.setStorm은 true 지만 world.setThundering은 false라고 되어있습니다.
이 뜻은 플레이어가 커맨드를 쳤을 때 비와 천둥소리만 나고 번개는 치지 않는다는 것입니다.
마지막으로 플레이어가" /w storm"이라고 친다면 비도 내리고 천둥소리도 나고, 번개도 친다는 것입니다. "storm"코드에는 world.setStorm과 world.setThundering 모두 true입니다. 이때는 아까 말한 것처럼 모든 것이 적용됩니다.
이제 진짜 마지막으로 player.sendMessage(ChatColor.RED + "날씨를 입력하시오");이라는 구문이 있습니다.
이 말은 플레이어가 /w만 치고 날씨를 입력하지 않으면 빨간 글씨로 날씨를 입력하라고 문장을 출력합니다.
3. plugin.yml 작성하기
자, 이제 마지막 단계입니다.
프로젝트 우클릭 -> New -> File-> plugin.yml입력하고 엔터
name: ChangeWeather version: 1.0 main: changeweather.Main commands: w:
저는 플러그인에 설명을 쓰지 않도록 하겠습니다.
다른것은 몰라도 main은 패키지 이름.클래스 이름이라고 써주셔야 하고 commands에는 꼭 커맨드 이름에 맞춰서 써주셔야 합니다.
4.Jar Export
이제 마지막 단계인 프로젝트를 내보내도록 하겠습니다.
프로젝트 우클릭 -> Export -> Java 폴더에서 JAR file 선택 후 Next -> 자신의 프로잭트 선택, Jar 파일을 어느 폴더에다가 둘지 설정하기 -> Finish 누르면 끝.
그리고 자신이 만든 프로젝트를 버킷 서버의 plugins 폴더에 넣고 버킷을 실행시켜 줍니다.
콘솔에서 pl이라고 적어서 플러그인이 정상적으로 실행 되는 지 확인하고 게임에서 "/w sun"를 치시거나 " /w rain" , "/w storm"를 치셔서 플러그인이 잘 실행 되는지 확인합니다.
궁금하시거나 안 되는 것들은 댓글에다가 적어주시면 감사하겠습니다:D
오늘도 부족한 제 강좌를 봐주셔서 감사합니다!
MinsooM2
2020.01.21플러그인.. 강좌 최고네요.. 잘볼께요!
JSD-ITHAN
2020.01.21감사합니다!!
MinsooM2
2020.01.22특정 월드를 지정하고싶을때는 어떻게 해야하나요?
JSD-ITHAN
2020.01.22한 번 알아보고 알려드리겠습니다!
JSD-ITHAN
2020.01.23찾아 보았는데 PerWorldPlugin이라는 플러그인이 있더라고요...
그 플러그인을 사용하시면 특정 월드에만 선택한 플러그인을 사용 할 수 있을 겁니다:D
https://dev.bukkit.org/projects/perworldplugins
DDang_
2020.01.22플러그인 강좌 감사합니다
JSD-ITHAN
2020.01.22저야 말로 제 강좌를 봐주셔서 감사합니다!!
히리지
2020.01.22강좌 보기가 너무편안하네요!!!
JSD-ITHAN
2020.01.22앞으로도 보기 편하시고 이해하기 쉽게 강좌를 하겠습니다!!
아이스틴
2020.01.22좋은 강좌 감사합니다~
JSD-ITHAN
2020.01.22앞으로도 더 좋은 강좌가 되도록 노력하겠습니다!
DRDTF
2020.02.27좋은강좌감사합니다 보기좋네요