개인 자료란 (JE)

  서버 커뮤니티

Profile 난아무것도몰라요 대표칭호 없음
Profile

플러그인 제작

마인크래프트 플러그인 만들기 1강 - 기본세팅 과 활성화/비활성화

2020.09.14 조회 수 2354 추천 수 1

안녕하세요! 이번 처음 강좌를 쓰게된 난 아무것도 몰라요라고 합니다(실제로 아무것도 모르진 않습니다)


오늘은 IntelliJ기본 세팅과 활성화/비활성화에 대하여 알아보겠습니다.

사실 이런 기본적인 강좌는 많이보셨을거라 생각합니다.

인터넷에도 널려있고 현제 이 한디포에도 많은 강좌가 있죠.

하지만 플긴을 만들기 위하여 기본부터 알아야 한다고 생각하기에 이번 강좌를 시작하겠습니다.


일단 https://www.jetbrains.com/ko-kr/idea/ 여기에 들어가셔서 intelliJ인스톨러를 다운받고

인스톨러를 켜서 인텔리제이를 다운받아주세요(무료 : 커뮤니티버젼, 유료 : 얼티메이트 버젼)


그뒤 인텔리제이를 켜주시면 aed5b727a52732d1ae821caba9df1cea.png

이런 화면이 나옵니다 그럼 여기서 오른쪽 아래에 있는 Configure을 눌러주세요. 그럼 여러가지가 옵션이 나올텐데 거기서 Plugins를 클릭해 주세요.  그뒤 MarketPlace에 들어가셔서
d03a733732f4bd02306ec07e81fa319c.png

이 플러그인을 검색/다운받아 주세요(현제 전 이미 다운받아진 상태입니다)

그뒤 Create New Project를 눌러서 f51e9975fe13625b9fff14be0605678c.png

이렇게 새 프로젝트를 만드는 창을 켜주세요

저희는 스피곳 플러그인을 만들거기 때문에 Spigot Plugin을 체크해주세요


2c373deb69a4d579c9f8365c85d6927b.png

여기서 GroupId는 대충 폴더경로 정도로 생각해 주시면 되고

ArtifactId는 대충 플러그인 이름정도로 생각하시면 됩니다

Version은 이 플러그인의 버젼을 의미합니다

맨 오른쪽에 Maven이라고 적혀있는 곳이 있는데 이거의 경우 Gradle로 바꿀 수 있지만 후에 작업을 위해서 Maven으로 선택해 줍시다(Gradle은 좀더 이쁘다고 하지만 저는 후에 할 작업을 Gradle로는 어떻게 하는지 몰르기에... 크흠)

 그다음에 Next를 누릅니다


23390e904bce0a7542fbd556bb958d2d.png

(*이 붙은건 필수 입니다)

※주의 : 플러그인 이름에 한글을 쓰실경우 오류와 첫 대면을 하실 수 있습니다※
Plugin Name* : 이 플러그인의 이름

Main Class Name* : 이 플러그인의 메인클래스

Minecraft Version* : 플러그인 버전... 현제 1.16.1 이상은 지원을 안하는것 같으나 언제나 바꿔줄 수 있다

Description : 플러그인 설명

Authors : 이 플러그인의 작성자

Website : 말그대로....

Log Prefix : 콘솔로그를 작성할 때 보이는 이름? 같은것 입니다

Depend/Soft Depend는 후에 다뤄보도록 하죠...

Next를 누릅니다


d0daa73b14f13f7f0df16c492be22d24.png

Project name(프로젝트 이름) : 이 프로젝트의 이름 플러그인의 이름과는 별개다

Project location(프로젝트 위치) : 이 프로젝트가 저장될 위치이다

그다음에 마지막에 Finish를 눌러서 생성을 마칩니다


그러면 쫘란 하면서 메인클래스가 생성되었을 거에요


package org.tutorial.tutorial;

import org.bukkit.plugin.java.JavaPlugin;

public final class Tutorial extends JavaPlugin {

    @Override
    public void onEnable() {
        // Plugin startup logic
    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
}

그럼 여기에 실행시 콘솔에 메시지를 출력하는 구문을 넣어봅시다 

System.out.println("플러그인이 활성화 되었습니다");

이 코드를  onEnable안에 넣어봅시다

여기서 onEnable은 플러그인이 로드될때 작동할 것들 입니다.

System.out.println("플러그인이 비활성화 되었습니다");

이번엔 이 코드를 onDisable안에 넣어봅시다.

여기서 onDisable은 플러그인이 언로드될때 작동할 것들 입니다.


이렇게 하고 이 플러그인을 실행해 보면  

40a5f394548d14cd71dfa85f89397588.png

위 사진과 같이 잘 실행됩니다.


그럼 이번엔 이 플러그인의 정보를 출력해 보겠습니다.

정보를 출력하는 방법은 그냥 일일이 작성하는 방법이 있지만, 너무 귀찮기에 PDF를 이용해서 값을 가져옵시다.

PluginDescriptionFile pdf = this.getDescription(); //또는 getDescription();

이게 그  PDF입니다 플러그인의 설명을 가져오죠.

이 코드를 필드에 작성해 봅시다.


 잠시 용어정리!

필드란 클래스의 영역을 의미하는 단어입니다.


bab9adabd025f23d3738e7b04d14b1b5.PNG

이 사진에 있는 검은색 네모박스 부분이 필드입니다.

대충 클래스 안/매소드 밖 정도로 이해하시면 됩니다.


그럼 이제 플러그인의 설명 파일(plugin.yml)을 읽어왔으니 사용을 해볼까요

System.out.println("버젼 : " + pdf.getVersion());

이 코드를 onEnable안에 추가해 봅시다. 

그리고 실행해 보면...

1fc29e4bc30f934ffb172ffcc505d204.png

이렇게 잘 실행이 됩니다! 


그럼 이제 Logger을 사용해 봅시다

저렇게 System.out.println(Object o) 를 사용할 수 도 있지만 그렇게 되면 이름을 적어놓지 않는이상 어떤플러그인이 실행됬는지 알기가 어렵죠... 

그럴땐 Logger을 사용하면 됩니다. 지금 바로 사용해 봅시다.

Logger log = this.getLogger(); //또는 getLogger();

이 코드를 메인클래스의 필드에 적어봅시다

log.info("플러그인이 활성화 되었습니다(버젼 : " + pdf.getVersion() + ")");

필드에 적으셨으면 onEnable의 코드를 모두 지우고 이 코드를 한번 넣어봅시다.

그리고 실행해 보면...

38a7cd8912c36c86eb7b174c37adfc75.png

이런식으로 메시지 앞에 [Tutorial]이 붙었습니다!

이것의 경우 Load Prefix로 바꿀 수 있습니다.

(onDisable의 경우 onEnable과 비슷하기에 생략하겠습니다)


후... 드디어 1편 강좌를 완성하는군요(이틀째 쓰는중 ㅎㅎ)

다음 강좌는  CommandExecutor와 TabCompleter입니다.

그럼 안녕히.....

1개의 댓글

gdfrgdfdfg
2020.09.14

이제 마인크래프트를 시작해쓰는데 플러그인에서 막혔는데 좋은설명 감사합니다 ㅎㅎ

뉴스 및 창작물
/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 2

노트블럭전문가

2024-11-27

0

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ?

팀뉴일리시

2024-11-23

4

/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