잡다한 개발/마크플러그인

마크 가챠 2편

오잎 클로버 2021. 11. 20. 14:00
728x90

지난 번에 모든 세팅을 하였습니다.

 

이번에는 예정대로 메인 클래스와 플러그인 작동 및 종료 로그를 보내도록 하겠습니다.

 

먼저 아마 저번에 세팅했던 플러그인 이름이 메인 클래스로 이미 되어 있을 겁니다.

public final class 메인 클래스명 extends JavaPlugin {

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

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

메인 클래스에 멤버 변수를 선언하여, 간단하게 로그를 보낼 수 있도록 합니다.

더보기

(※멤버변수란? 클래스 내부에 존재하는 변수로서 클래스 변수 혹은 인스턴스 변수로 구분 지을 수 있는 변수 입니다.

예를 들어 

public class Main {

    public static void main(String[] args) {
        Test test;
    }
}

class Test {
    int value = 15;
}

여기서 Test 클래스의 멤버 변수는 value입니다.

value는 클래스 변수입니다.

public class Main {

    public static void main(String[] args) {
        Test test = new Test(15);
        System.out.println(test.value);
    }
}

class Test {
    int value;
    
    public Test(int value) {
        this.value = value;
    }
}

위 처럼 할 경우, 인스턴스화를 거치기때문에 value는 멤버 변수이자, 인스턴스 변수입니다.

(사실, 클래스 변수나 인스턴스 변수 보다는 멤버 변수라는 것만 아셔도 됩니다.)

 

마크 로그는 콘솔 로그를 사용하므로 

JavaPlugin에 있는 ConsoleCommandSender 를 멤버 변수로 선언하여 로그 메시지를 전송할 수 있도록 합니다.

ConsoleCommandSender consoleSender = Bukkit.getConsoleSender();

이후, onEnable 메소드에서 

주석으로

// Plugin startup logic

라고 있는 것으로 보아, 플러그인의 시작 코드임을 알 수 있다.

이 영역에서 시작 로그를 콘솔로 보낼 것이다.

 

위 Spigot overview에서 있듯이 consoleSender::sendMessage 메소드를 사용하여, 

원하는 문자열 로그를 보낼 수 있다고 한다.

저는 "[ activate plugin ]"라고 보내고 싶기때문에

consoleSender.sendMessage("[ activate plugin ]");

라고 적었습니다.

 

onDisable 메소드도 있는 데,

이는 플러그인이 종료될 때 발생하는 메소드이므로

콘솔에 플러그인 종료 로그를 설정하면 된다.

위와 마찬가지로 sendMessage 메소드를 사용하여 종료 로그를 설정합니다.

 

이가 전부 설정되었다면

Maven, Gradle 둘 다 아니신 분은 직접 수동으로 jar 파일로 압축하시면 됩니다.

수동으로하는 방법은 

File -> Project Structure -> Artifacts에서 '+' -> JAR -> EMPTY 를 하시고

이름 알아서 설정하시고 APPLY 

(output directory로 원하는 디렉토리로 보내는 것도 가능합니다.)
그 이후, Build -> build artifacts에서 빌드하시면 됩니다.

 

Gradle는

Run -> Run -> Edit Configuration -> '+' -> Gradle 선택 -> 실행할 프로젝트 선택 -> Arguments -> clean build

라고 수동으로 추가하셔도 되고, 그냥 

에 있는 초록색 버튼 중 세모(?) 버튼을 누르면 작동합니다.

 

Maven 역시 수동은 Gradle과 마찬가지입니다.

 

이후, 해당 jar 파일이 생성된 디렉토리로 이동하여

마크 서버 파일에 있는 

plugins로 옮겨줍니다.

이후, 배치 파일을 실행하여, 제대로 작동하는 지 여부를 확인합니다.

오류가 있는 지 확인하는 방법은 간단합니다.

 

콘솔창에 [Server thread/ERROR] 이라는 로그가 있다면 에러가 난 것입니다.

또는 작성한 로그가 제대로 나오지않아도 에러가 발생한 것입니다.

오류가 없다면 onEnable에 작성한 로그 메시지가 제대로 출력될 것입니다.

이상입니다.

'잡다한 개발 > 마크플러그인' 카테고리의 다른 글

마크 가챠 4편  (0) 2021.11.25
마크 가챠 3편  (0) 2021.11.23
마크 가챠 1편  (0) 2021.11.20
마크 가챠 0편  (0) 2021.11.19
마크 플러그인 만들기 (#3)  (0) 2021.09.01