모드 커뮤니티

이 게시판에 글을 승인 없이 바로 작성하시려면 인증 개발자 권한이 필요합니다. 언제든지 지원해주세요(바로가기).

플러그인

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

JSD-ITHAN 2020.01.21 조회 수 421 추천 수 2

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

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

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

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


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개의 댓글

Redips
27 일 전

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

JSD-ITHAN
15 일 전
@Redips

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

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

Redips
14 일 전
@JSD-ITHAN

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

JSD-ITHAN
14 일 전
@Redips

아니에요~

초스터
2020.01.21

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

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

JSD-ITHAN
2020.01.21
@초스터

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

더 열심히 하겠습니다!

DDang_
2020.01.21

사진이 보이지 않네요

JSD-ITHAN
2020.01.21
@DDang_

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

JSD-ITHAN
2020.01.21
@DDang_

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

조회 수 제목 글쓴이
390 한디포 이용 규칙 15 초스터
626 한디포 이용 가이드! 처음 온 분은 읽어둡시다! 15 초스터
9124 한마포 AD 소개 (유료 광고 서비스) 57 U 프리루트
385 [플러그인] [마시자] 마인크래프트로 시작하는 Java 0강 - JDK 설치 / IntelliJ IDEA 설치 / Paper API 가져... 30 Kobins
421 [플러그인] [1강] 마인크래프트 플러그인 개발하기 - 활성화 비활성화 9 JSD-ITHAN
211 [프로그래밍 일반] [4강:Ping Pong!] 파이썬으로 디스코드봇 민들어보기 5 라고솔로가말했습니다
630 [플러그인] [2강]마인크래프트 플러그인 개발하기 - 긴 커맨드 12 JSD-ITHAN
47 [기타] [네모팁] 자주 사용하는 Git 명렁어 6 네모
34 [프로그래밍 일반] Python 강좌 3강 - 자료형이란 무엇일까? (1) sleepylapis
169 [플러그인] [마시자] 마인크래프트로 시작하는 Java 시리즈 2 Kobins
91 [프로그래밍 일반] Python 강좌 0강 - Python은 무엇일까요? 5 sleepylapis
126 [프로그래밍 일반] Python 강좌 2강 - 메세지 출력해보기 10 sleepylapis
67 [프로그래밍 일반] Python 강좌 1강 - Python을 설치해보아요! 3 sleepylapis
209 [스크립트] 명령어 막기 스크립트. 21 윈트초코
45 [데이터팩] 초큐의 데이터팩 초급 강좌! [1편 - 데이터팩 베이스 만들기] 윈트초코
96 [스크립트] `엔티티를 우클릭했을때` 이벤트 2 윈트초코
69 [플러그인] Spigradle - 더이상 plugin.yml 을 수동으로 만들지 마세요! EntryPoint
153 [플러그인] [5강]마인크래프트 플러그인 개발하기 - (ChatColor) 채팅 색깔 바꾸기 4 JSD-ITHAN

 

개발자 최신글
https://www.koreaminecraft.net/files/thumbnails/955/552/001/262x150.crop.jpg

구인

1.12.2 RPG서버 개발팀.건축팀 모집합니다/Esther.KR

Esther.KR

2020-04-10

0

사진이 없습니다.

구인

건축가, 스크립터를 구합니다! ※건축가를 더 빨리 구합니다!!!※

마크러버

2020-04-09

0