티스토리 뷰
원본 영상 - TechnoVision의 스피곳 플러그인 강좌 #2
2022.08.14 - [코딩/Java] - Java로 마인크래프트 플러그인 개발 세팅하기
Java로 마인크래프트 플러그인 개발 세팅하기
원본 영상 - TechnoVision의 스피곳 플러그인 강좌 1. 준비물 · 자바 JDK 8 - https://www.oracle.com/java/technologies/downloads/#java8 · 인텔리제이 / 이클립스 등등 자바 에디터 인텔리제이 - https://www..
devgarlic.tistory.com
해당 글에서 이어지는 내용입니다 :D
1. 패키지를 만들어보자
패키지란? - 우리가 폴더를 만들어 비슷한 유형의 파일을 모아두듯이, 자바도 비슷한 클래스를 패키지로 묶는다.
우리는 플러그인을 만들 것이고, 이 안에 들어가는 클래스들은 비슷한 유형을 띄기에 우리도 패키지로 이를 관리해보자.
지난 시간에 만든 인텔리제이 프로젝트를 열어보면, 디렉토리가 이런 식으로 되어 있는 것을 볼 수 있을 것이다.여기서 저 파란색 src 폴더, 저기가 우리의 코드가 저장되는 디렉토리이다.우클릭을 하고 새 패키지의 이름을 지어주도록 하자.
패키지의 이름은 보통 사이트 도메인의 이름으로 정하는 것이 보통인데,
정 없다면 com.name.projectname 형식으로 짓는 것이 옳다고 한다.
2. 새 클래스를 생성해보자
패키지를 클릭하고 New -> Java Class를 생성해주자.
처음 만들어낼 클래스는 플러그인의 시작과 끝을 관리하는 OnEnable() 과 OnDisable()이 들어갈 것이기에,
클래스의 이름을 프로젝트와 동일하게 지어주도록 하자.
코드 몇 줄을 좀 더 추가해보자.
package com.galakrond.leagueweapons;
import org.bukkit.plugin.java.JavaPlugin;
public class LeagueWeapons extends JavaPlugin{
@Override
public void onEnable() { }
@Override
public void onDisable() { }
}
복붙은 하지 말자, 코드를 이해하기 위해서는 빽빽이처럼 직접 작성해보는 것도 중요하다.
import를 추가해 JavaPlugin을 불러오고, API를 사용할 수 있도록 준비한다.
우리가 만든 이 클래스 파일이 JavaPlugin을 상속시키도록 extends를 붙여준다.
@Override 는 상속된 클래스의 메소드를 상속받는다. 우리는 JavaPlugin을 상속받았기에 저 두 메소드를 사용한다.
onEnable() / onDisable()은 각각 플러그인의 시작 / 종료 때 실행되는 메서드이다.
@Override에 관해 더 자세하게 알고 싶다면 여기로 -> https://velog.io/@polynomeer/JAVA의-오버라이딩Override
JAVA의 오버라이딩(Override)
Override는 '기각하다', '무시하다'의 뜻을 담고있다. 즉, '기존의 것을 무시하고 덮어쓰다.'의 의미를 가진다. 자바에서 메소드 오버라이딩이란, 상속의 관계에 있는 클래스 간에 하위 클래스가 상
velog.io
3. 나는 이런 플러그인이다 - plugin.yml
다음은 패키지 밖에다가 plugin.yml을 만들어보자.
즉 src 폴더 바로 밑에다가 New -> file -> plugin.yml을 누르면 된다.
이런 식으로 준비가 완료되었다면 내용을 적어보도록 하자.
그 전에 plugin.yml이 무슨 역할을 하는지 알아보자면,
plugin.yml은 플러그인의 기초적인 정보에 대해서 알려주는 파일이다.
플러그인의 이름, 버전, 설명 등등의 내용이 들어가며, 이 파일이 없으면 플러그인이 서버 내에서 동작하지 않는다.
name : 이름
version : 해당 플러그인의 버전
author : 제작자의 이름
main : 아까 우리가 만들어뒀던 onEnable() / onDisable()이 들어간 코드의 위치
api-version : 지원하는 API 버전, 1.14 내지는 자신의 API 버전을 작성하는 것이 낫다.
원문을 빌려와보면,
API - version
사용할 API 버전입니다.
1.13, 1.14, 1.15, 1.16, 1.17, 1.18 및 1.19가 사용 가능한 버전입니다.
이것은 플러그인이 특정 서버 버전을 염두에 두고 코드화되어 있으며,
이전 버전과의 호환성 조치를 적용해서는 안 된다는 것을 서버에 알립니다.
따라서 이전 구성, 데이터 등을 읽을 수 있도록 코드를 프로그래밍했는지도 확인해야 합니다.
각 서버 버전은 호환성을 달성하는 방법을 결정할 수 있으며, 다른 버전에서는 플러그인을 사용할 수 없게 막습니다.
1.14 릴리스에서 api-version 1.13은 여전히 허용되지만, 이후 버전에서는 이 버전에 따라 지원이 중단될 수 있습니다.
라고 쓰여져 있다.
이 외에도 plugin.yml에는 작성할 수 있는 내용이 더 있는데, 해당 링크를 참조하자.
https://www.spigotmc.org/wiki/plugin-yml/
4. 콘솔 나와! 시작 메시지를 띄워보자
다시 메인 클래스로 돌아와서 해당 코드를 입력해주자 -
package com.galakrond.leagueweapons;
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;
public class LeagueWeapons extends JavaPlugin{
@Override
public void onEnable() {
getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "[LeagueWeapon]: Hello World!");
}
@Override
public void onDisable() {
getServer().getConsoleSender().sendMessage(ChatColor.RED +"[LeagueWeapon]: Goodbye World!");
}
}
대강 추가된 라인을 설명하자면
서버 가져오기.콘솔 메시지 처리기 가져오기. 메시지 전송 ( 색상.색상명 + "string" );
이상으로 이번 글은 마치고, 다음번 글은
서버를 직접 구동시키고 접속해보고, 명령어를 만들어보도록 하겠다.
유용한 내용이었다면 댓글과 하트를 달아주세요, 제게 큰 힘이 됩니다 :D
'코딩 > Java_Minecraft' 카테고리의 다른 글
Java와 Gradle을 이용한 마인크래프트 플러그인 개발 세팅하기 (0) | 2022.08.15 |
---|---|
Java로 마인크래프트 플러그인 개발 세팅하기 (0) | 2022.08.14 |
- Total
- Today
- Yesterday
- 논리
- 16진수
- 진수
- 유니티
- 진법
- 2진수
- 보수
- 자바스크립트
- 2D
- javascript
- 확장자
- js
- 존버
- 8진수
- 디지털논리회로
- 특성고
- 픽셀
- 스크립트
- 게임개발
- 자스
- 컴퓨터시스템
- 고1사회
- 사회현상보고서
- C#
- 화소
- Unity
- 특성화고
- 조립PC
- 컴시
- 입문
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |