개인 자료란 (JE)

  서버 커뮤니티

Profile JSD-ITHAN 대표칭호 없음
Profile

강좌 자바 에디션(JE) 플러그인 개발

[1강] 마인크래프트 플러그인 개발하기 - 활성화 비활성화

2020.01.21 조회 수 4975 추천 수 3
분야 플러그인 
게임버전 모든버전 

안녕하세요! 오늘은 마인크래프트 플러그인 개발하기 강좌를 할 것입니다.  

오늘은 활성화 비활성화에 대해 배워 볼것입니다.

오늘은 이클립스 프로그램을 사용 할것입니다.

먼저 새 프로젝트를 하나 만들어 줍니다.


71e890c999f6e3310e465d5a2a437d57.png


그러면 이런 화면이 생길 것입니다. 여러분들이 서버를 만들었다고 가정을 한 뒤 강의를 시작하겠습니다. 

de94fd4a7f94b75ca4bd02fa8d8d20aa.png

이렇게 testplugin이라 써져 있는 것을 더블 클릭하면 src라는 폴더가 하나 있을 것입니다. 이거를 우 클릭해서

New > package를 눌러 줍니다.

cdcd7b11d02394f58ccc54b16b9c4942.png


New Java Package가 하나 생길 건데 Name으로는 마음대로 지으셔도 됩니다.

하지만 중요한 것이 하나 있습니다!! 바로 대문자로 쓰면 안 되고 소문자로 쓰셔야 합니다.

저는 test로 이름을 짓겠습니다. 그리고 Finish를 눌러 주세요.

package를 설명하자면 바탕화면의 폴더와 같습니다.

바탕화면에 파일을 정리하기 위해 폴더를 생성합니다.

이런 개념이라고 생각하시면 됩니다.

e737d2581a298c92c00b288c6c20caa4.png


이제 test 패키지가 생겼습니다. 폴더를 생성하면 안에 파일이 있어야겠죠?

만들어준 test 패키지를 우 클릭해서 New > class를 눌러줍니다.

2a30c92d75fbd147bc261a99c535af34.png


보통 여기 이름에는 Main이라고 많이 합니다. 이제 Name에다가 Main이라고 쓰고 Finish를 써줍니다.

3dc1189f25c1342ad0872c3ee59c8f5c.png


Main.java 파일이 생성되었습니다.  이제 여기에 코드를 적어주시면 됩니다.

1

2

3

4

5

6

7

package test;

 

import org.bukkit.plugin.java.JavaPlugin;

 

public class Main extends JavaPlugin{

 

}

Colored by Color Scripter


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() {

        

    }

 

}

 

Colored by Color Scripter


자 아래 구문을 추가해줬습니다. 밑에 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("플러그인이 활성화 되었습니다.");

    }

 

}

 

Colored by Color Scripter



아래에 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("플러그인이 비활성화 되었습니다.");

    }

}

 

Colored by Color Scripter


이번에는 onDisable이라는 것을 알려 드리겠습니다. 이것은 플러그인이 비활성화되었을 때를 말합니다.

플러그인이 비활성화되었을 때 "플러그인이 비활성화되었습니다."라는 문장을 출력하라는 뜻입니다.

이제 첫 플러그인이 완성되었습니다. 하지만 여기서 끝이 아니라 파일을 하나 더 생성해 줘야 합니다.

아까 패키지를 만들 때처럼 testplugin 우 클릭 > New > File 을 눌러주세요.

86ddbc2b66c247f6ddc80f9700796935.png



이제 여기엔 이 플러그인에 대한 설명을 써야 합니다. 파일 이름은 무조건으로 plugin.yml로 생성해 주어야 합니다.

071cf810acff55ec7f5ccfaab4a0bce2.png


생성을 해 주었다면 이렇게 빈 화면이 나올 것입니다. 이제 여기에는 무조건 들어가야 할 내용이 있습니다.

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를 눌러주세요.

8dc8b8942b6c616170f8b6e05b024d40.png


이렇게 많은 파일이 있는데 Java를 더블클릭 > JAR file을 더블 클릭하세요.

02a544722a8d9f84b4dfaa2a03200e44.png


이런 화면이 뜰 것입니다. 여기서 건들 것은 밑에 비어 있는 export destination입니다. 여기서 Browse를

열어줍니다.

25f043f8b87b783a17606e4be9539069.png



그러면 이제 자신이 사용할 서버 버킷에서 plugins 폴더에 들어가셔서 저장하시면 됩니다.


4208a48448872bb7ec66ee330c57d745.png


plugins 폴더 안에 저장하셔야 합니다.


그런 다음 finish를 누르시면 됩니다.

만약 오류가 나신 분이라면 plugin.yml을 잘 쓰셨는지 확인을 하시고 구문 오류가 없는지 확인하시면 됩니다. 만약 그래도 오류가 발생하면 저한테 메일 남기시면 제가 아는 한에서 도움을 드리도록 하겠습니다.

그럼 이제 한번 플러그인이 정상적으로 적용되었는지 확인해보도록 하겠습니다. 자신의 서버 버킷 폴더에서 배치 파일을 여세요



48a196e2bbdf48d594f6176dc1a64d35.png


그럼 [FirstPlugin] Loading FirstPlugin v1.0이라고 뜨고 pl이라고 명령어를 쳤을 때 아까 만든 플러그인이 적용된 것을 알 수 있습니다. 지금은 활성화를 했을 때 "플러그인이 활성화되었습니다."라는 문장이 나옵니다. 그러면 이제 서버를 닫았을 때 "플러그인이 비활성화되었습니다."라는 문장이 나오는지 확인 해보겠습니다.


f22336629ab7dc87d2b311bbb1a60d6f.png


아래에 보시면 아까 만든 문장이 잘 출력 되는지 확인해보았습니다.

오늘은 플러그인의 기초 활성화, 비활성화에 대해 배워 보았고 활성화했을 때와 비활성화했을 때의 문장까지 출력해 보는 시간을 가졌습니다. 다음 시간에는 커맨드 만들기 편으로 돌아오겠습니다~~!!






9개의 댓글

DDang_
2020.01.21

사진이 보이지 않네요

JSD-ITHAN
2020.01.21
@DDang_

아... 한번 확인 해보도록 하겠습니다..

JSD-ITHAN
2020.01.21
@DDang_

이미지를 다시 업로드 했습니다.

초스터
2020.01.21

항상 이런 강좌가 있었으면 했는데,

플러그인 제작 기초를 다뤄주시다니! 감사해요 :D

JSD-ITHAN
2020.01.21
@초스터

저야 말로 제 강좌를 봐주셔서 감사합니다:D

더 열심히 하겠습니다!

Redips
2020.03.13

플러그인을 만들었는데 적용하면 에러나는데 해결 가능한가요?

JSD-ITHAN
2020.03.26
@Redips

바빠서 댓글을 빨리 못 달아서 죄송해요;;

스피곳 버전이랑 plugin.yml, 코드에 별 문제 없는지 체크 하시고 그래도 오류가 나면 제 메일로 프로젝트 폴더를 보내주세요. 만드신 플러그인 오류 찾는 방법은 서버 실행하실때 플러그인이 로드되는 것이 뜰텐데 잘 찾아보시면 문제가 보입니다. 근데 잘 적용되어 있는데 에러가 나면 저한테 메일로 보내주세요.

Redips
2020.03.26
@JSD-ITHAN

jdk버전이 잘못되어있었네요! 귀중한 시간잡아먹어 죄송합니다

JSD-ITHAN
2020.03.26
@Redips

아니에요~

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

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2

/files/thumbnails/246/898/003/262x150.crop.jpg?20241008102328

레드스톤

단다단 - 오토노케(オトノケ) | 마인크래프트 노트블럭 커버

노트블럭전문가

2024-10-08

1