분야 | 플러그인 |
---|---|
게임버전 | 모든버전 |
안녕하세요! 오늘은 마인크래프트 플러그인 개발하기 강좌를 할 것입니다.
오늘은 활성화 비활성화에 대해 배워 볼것입니다.
오늘은 이클립스 프로그램을 사용 할것입니다.
먼저 새 프로젝트를 하나 만들어 줍니다.
그러면 이런 화면이 생길 것입니다. 여러분들이 서버를 만들었다고 가정을 한 뒤 강의를 시작하겠습니다.
이렇게 testplugin이라 써져 있는 것을 더블 클릭하면 src라는 폴더가 하나 있을 것입니다. 이거를 우 클릭해서
New > package를 눌러 줍니다.
New Java Package가 하나 생길 건데 Name으로는 마음대로 지으셔도 됩니다.
하지만 중요한 것이 하나 있습니다!! 바로 대문자로 쓰면 안 되고 소문자로 쓰셔야 합니다.
저는 test로 이름을 짓겠습니다. 그리고 Finish를 눌러 주세요.
package를 설명하자면 바탕화면의 폴더와 같습니다.
바탕화면에 파일을 정리하기 위해 폴더를 생성합니다.
이런 개념이라고 생각하시면 됩니다.
이제 test 패키지가 생겼습니다. 폴더를 생성하면 안에 파일이 있어야겠죠?
만들어준 test 패키지를 우 클릭해서 New > class를 눌러줍니다.
보통 여기 이름에는 Main이라고 많이 합니다. 이제 Name에다가 Main이라고 쓰고 Finish를 써줍니다.
Main.java 파일이 생성되었습니다. 이제 여기에 코드를 적어주시면 됩니다.
1 2 3 4 5 6 7 | package test;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin{
} |
public class Main { 이 있으면 Main과 '{' 사이에 extends JavaPlugin이라고 써줍니다. extends가 확장하다라는 뜻이 있는데 JavaPlugin을 Main 클래스로 가져와서 쓸 수 있다는 정도로 이해하시면 될 것 같습니다.
그리고 extends JavaPlugin이라고 쓰면 빨간 줄이 생길 것인데 이것은 아직 import를 하지 않아서 생긴 것이기 때문에 빨간 줄이 있는 문장을 누르고 'ctrl' + 'Space'를 하시면 import가 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | package test;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin{
@Override public void onEnable() {
}
}
|
자 아래 구문을 추가해줬습니다. 밑에 onEnable()은 플러그인을 활성화했을 때라는 뜻입니다. 이제 아래에 플러그인이 활성화되면 실행시키는 문장을 써보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | package test;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin{
@Override public void onEnable() { System.out.println("플러그인이 활성화 되었습니다."); }
}
|
아래에 System.out.println("플러그인이활성화되었습니다.");이라는문장을 추가해보았습니다. 이거는 문자열을 출력하는 것인데 문자열을 쓸 때에는 따옴표 두 개를 꼭 해줘야 합니다. 그리고 뒤에는 문장이 끝났다는 것을 알려주기 위한 ' ;' 표시를 해야 합니다. 이 문장을 해석해 보면 플러그인이 활성화되었을 때 "플러그인이 활성화되었습니다."라는 문장을 출력하라는 뜻입니다. 그러면 이제 활성화를 해줬으니 비활성화도 해주겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package test;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin{
@Override public void onEnable() { System.out.println("플러그인이 활성화 되었습니다."); } @Override public void onDisable() { System.out.println("플러그인이 비활성화 되었습니다."); } }
|
이번에는 onDisable이라는 것을 알려 드리겠습니다. 이것은 플러그인이 비활성화되었을 때를 말합니다.
플러그인이 비활성화되었을 때 "플러그인이 비활성화되었습니다."라는 문장을 출력하라는 뜻입니다.
이제 첫 플러그인이 완성되었습니다. 하지만 여기서 끝이 아니라 파일을 하나 더 생성해 줘야 합니다.
아까 패키지를 만들 때처럼 testplugin 우 클릭 > New > File 을 눌러주세요.
이제 여기엔 이 플러그인에 대한 설명을 써야 합니다. 파일 이름은 무조건으로 plugin.yml로 생성해 주어야 합니다.
생성을 해 주었다면 이렇게 빈 화면이 나올 것입니다. 이제 여기에는 무조건 들어가야 할 내용이 있습니다.
1 2 3 | name: version: main: |
이렇게 이름, 버전, 메인을 써주셔야 합니다.
이름은 이 플러그인의 이름을 써주셔야 합니다. 저는 그냥 FirstPlugin이라고 할게요
버전은 크게 중요하지 않기 때문에 1.0이라고 써주셔도 되고 2.0, 3.0등으로 쓰실 수 있습니다.
main은 아까 작성한 Main의 위치를 쓰셔야 합니다. 이렇게 쓰셔야 합니다. (패키지. 메인)
저는 패키지가 test였고 메인의 이름이 Main이었으니까 test.Main이라고 적으면 됩니다.
1 2 3 | name: FirstPlugin version: 1.0 main: test.Main |
모든 작업이 끝났습니다. 이제 이것을 내보내야 합니다. 서버를 만드시고 월드 에딧이라는 플러그인을 사용하신 분은 아시겠지만 모든 플러그인은 JAR 파일로 되어 있습니다. 따라서 저희도 내보낼 때 JAR 파일로 내보내야 합니다.
아까처럼 또 testplugin을 우 클릭 > export를 눌러주세요.
이렇게 많은 파일이 있는데 Java를 더블클릭 > JAR file을 더블 클릭하세요.
이런 화면이 뜰 것입니다. 여기서 건들 것은 밑에 비어 있는 export destination입니다. 여기서 Browse를
열어줍니다.
그러면 이제 자신이 사용할 서버 버킷에서 plugins 폴더에 들어가셔서 저장하시면 됩니다.
만약 오류가 나신 분이라면 plugin.yml을 잘 쓰셨는지 확인을 하시고 구문 오류가 없는지 확인하시면 됩니다. 만약 그래도 오류가 발생하면 저한테 메일 남기시면 제가 아는 한에서 도움을 드리도록 하겠습니다.
그럼 이제 한번 플러그인이 정상적으로 적용되었는지 확인해보도록 하겠습니다. 자신의 서버 버킷 폴더에서 배치 파일을 여세요
그럼 [FirstPlugin] Loading FirstPlugin v1.0이라고 뜨고 pl이라고 명령어를 쳤을 때 아까 만든 플러그인이 적용된 것을 알 수 있습니다. 지금은 활성화를 했을 때 "플러그인이 활성화되었습니다."라는 문장이 나옵니다. 그러면 이제 서버를 닫았을 때 "플러그인이 비활성화되었습니다."라는 문장이 나오는지 확인 해보겠습니다.
아래에 보시면 아까 만든 문장이 잘 출력 되는지 확인해보았습니다.
오늘은 플러그인의 기초 활성화, 비활성화에 대해 배워 보았고 활성화했을 때와 비활성화했을 때의 문장까지 출력해 보는 시간을 가졌습니다. 다음 시간에는 커맨드 만들기 편으로 돌아오겠습니다~~!!
DDang_
2020.01.21사진이 보이지 않네요
JSD-ITHAN
2020.01.21아... 한번 확인 해보도록 하겠습니다..
JSD-ITHAN
2020.01.21이미지를 다시 업로드 했습니다.
초스터
2020.01.21항상 이런 강좌가 있었으면 했는데,
플러그인 제작 기초를 다뤄주시다니! 감사해요 :D
JSD-ITHAN
2020.01.21저야 말로 제 강좌를 봐주셔서 감사합니다:D
더 열심히 하겠습니다!
Redips
2020.03.13플러그인을 만들었는데 적용하면 에러나는데 해결 가능한가요?
JSD-ITHAN
2020.03.26바빠서 댓글을 빨리 못 달아서 죄송해요;;
스피곳 버전이랑 plugin.yml, 코드에 별 문제 없는지 체크 하시고 그래도 오류가 나면 제 메일로 프로젝트 폴더를 보내주세요. 만드신 플러그인 오류 찾는 방법은 서버 실행하실때 플러그인이 로드되는 것이 뜰텐데 잘 찾아보시면 문제가 보입니다. 근데 잘 적용되어 있는데 에러가 나면 저한테 메일로 보내주세요.
Redips
2020.03.26jdk버전이 잘못되어있었네요! 귀중한 시간잡아먹어 죄송합니다
JSD-ITHAN
2020.03.26아니에요~