무료M-Core

설정 · 데이터베이스 · 다국어 · 명령어 · GUI · 지역 · 스코어보드 · 홀로그램을 하나의 플러그인으로 묶은 개발용 코어. 서버에 jar 하나만 넣으면 됩니다.

0 다운로드 0 팔로워
1.0.0 정식 2026. 11. 10.

ModernCore (M-Core) 1.0.0 변경 사항
릴리스 날짜: 2026-11-10
대상: Paper 1.21.x · Folia / Java 21 / Kotlin 2.1

====================================================================
요약
====================================================================
첫 공개 릴리스입니다. 플러그인 개발에 필요한 열네 가지 기능을 한 플러그인에 담았고,
Folia 와 일반 Paper 에서 같은 코드가 그대로 돌아갑니다.

====================================================================
새로 추가된 기능
====================================================================

[코어 · 플러그인 기반]

  • ModernPlugin 기반 클래스. 상속만 하면 core 로 모든 기능에 접근합니다.
  • 플러그인이 비활성화될 때 명령어 · GUI · DB 커넥션 풀 · 모듈 · 코루틴 · 홀로그램 ·

스코어보드를 자동으로 정리합니다.

  • ModernCore.of(plugin) 으로 ModernPlugin 을 상속하지 않은 플러그인도 사용 가능.
  • Kotlin 런타임과 코루틴을 코어가 제공하므로 플러그인마다 중복 번들하지 않습니다.
  • /moderncore (mcore, mc-core): 코어 상태 · 플러그인 목록 · 모듈 목록 · 리로드.

[설정]

  • 여러 yml 파일을 이름으로 불러오고 한 번에 리로드.
  • 타입 지정 읽기(ConfigNode · ConfigValue · Codecs)와 기본값 처리.

[데이터베이스]

  • MySQL · MariaDB · PostgreSQL · SQLite 지원, HikariCP 커넥션 풀.
  • 테이블 빌더, Row 매핑, 키-값 저장소(KeyValueStore).
  • config.yml 의 database 섹션을 그대로 읽는 connectFromConfig().
  • JDBC 드라이버는 서버가 시작할 때 자동으로 내려받습니다(SQLite · MySQL 기본 포함).
  • HikariCP 는 재배치(relocate)해서 다른 플러그인의 사본과 충돌하지 않습니다.

[EveryDB]

  • everydb.kr REST 클라이언트(테이블 · 스키마 · 조건 조회 · 내보내기).
  • 플러그인 자신의 설정을 먼저 보고, 없으면 ModernCore 설정을 사용합니다.

키를 코어에 한 번만 넣어 두면 모든 플러그인이 공유합니다.

  • 네트워크 오류 · 5xx · 429 에 대한 재시도 횟수 설정.

[다국어]

  • 한국어 · 영어 · 일본어 기본 지원, 플레이어별 언어를 서버 전체에서 공유합니다.
  • /lang (language, 언어) 로 en / jp / ko / auto 선택. auto 는 클라이언트 언어를 따릅니다.
  • 메시지는 plugins/<플러그인>/lang/messages_*.yml 로 자동 생성되어 관리자가 직접 수정 가능.
  • 언어 변경 시 PlayerLanguageChangeEvent 발생 — 플러그인이 화면을 즉시 다시 그릴 수 있습니다.

[명령어]

  • plugin.yml 에 적지 않고 코드로 등록하는 명령어 DSL.
  • 하위 명령어, 인자 타입(플레이어 · 정수 · 문자열 · 열거형 등), 선택 인자,

권한, 탭 완성, 도움말 자동 생성.

  • executesAsync 로 비동기 실행. 플러그인이 꺼지면 등록이 자동 해제됩니다.

[모듈]

  • 기능을 ModernModule 단위로 나누고, 의존 관계를 적으면 활성화 순서를 자동 정렬합니다.
  • 비활성화는 활성화의 역순으로 진행합니다.

[색상]

  • 2색 · 3색 그라데이션, 무지개, <gradient:#aaa:#bbb> 태그, 레거시 & 코드 혼용.
  • 보간 방식 선택(RGB 선형 등).

[GUI · 인벤토리]

  • 일반 GUI(ChestGui)와 페이지 GUI(PaginatedGui), 아이템 빌더, 테두리 · 채움 유틸.
  • 플러그인이 비활성화되면 열려 있던 GUI 가 모두 닫힙니다.
  • 화면 기록(GuiHistory)을 코어가 관리해 '뒤로 가기' 버튼이 항상 직전 화면으로 돌아갑니다.
  • 페이지 GUI 를 다시 열 때 보던 페이지를 그대로 복원할 수 있습니다

(언어 변경 등으로 GUI 를 다시 열어야 할 때 쓰입니다).

[GUI 레이아웃(yml)]

  • GUI 의 제목 · 줄 수 · 배경 · 칸 배치 · 버튼 · 클릭 동작 · 설명 문구를

plugins/<플러그인>/gui/ 폴더의 yml 로 분리합니다.

  • 관리자가 파일을 고치고 리로드하면 인게임 GUI 가 바로 바뀝니다.

[지역]

  • 직육면체 · 구 · 다각형 지역, 우선순위 지원.
  • 플래그: PVP, BUILD, BREAK, INTERACT, DAMAGE, MOB_SPAWNING, EXPLOSION, ITEM_DROP,

ENTRY, EXIT, GREETING, FAREWELL.

  • 코어가 플래그를 직접 적용하고 출입 시 RegionEnterEvent / RegionLeaveEvent 를 발생시킵니다.
  • regions.yml 에 자동 저장되고 서버 시작 시 복원됩니다.
  • mservice.core.region.bypass 권한으로 모든 보호를 무시할 수 있습니다.

[스코어보드]

  • 제목 · 줄을 람다로 주면 주기적으로 갱신되는 사이드바.
  • 제목만 따로 갱신할 수 있어 제목 애니메이션에 쓸 수 있습니다.
  • Folia 는 스코어보드 API 를 지원하지 않으므로, Folia 에서는 사이드바 패킷을

플레이어에게 직접 보냅니다. 일반 Paper 에서는 Bukkit 스코어보드 API 를 사용합니다.

  • 플레이어가 나가면 자동 정리되고, 플러그인이 꺼지면 서버 기본 스코어보드로 돌아갑니다.

[홀로그램]

  • 텍스트 디스플레이 기반. 줄 간격 · 정렬 · 배경색 · 투명도 · 그림자 · 크기 ·

시야 거리 · 밝기 · 줄 너비 설정.

  • 플레이어마다 다른 내용 표시와 클릭 처리.
  • 플레이어가 접속하면 전체 공개 홀로그램을 다시 보여 주어, 접속 직후 글자가

보이지 않는 현상이 없습니다.

  • 플러그인이 꺼지면 엔티티를 제거하고, 서버가 비정상 종료된 뒤 남은 엔티티도

다음 시작 때 자동으로 치웁니다.

[패킷 · NMS]

  • 패킷 송신과 가로채기(PacketListener), 버전별 클래스 매핑 처리.
  • 서버 전역에서 매니저 하나를 공유합니다.

[스케줄러 · Folia]

  • Folia 와 일반 Paper 를 같은 코드로 지원합니다.
  • 엔티티용(ensureEntity) · 위치용(ensureAt) · 전역용 · 비동기 예약을 구분해 제공하므로

Folia 의 스레드 규칙을 지키기 쉽습니다.

  • 반복 작업(timer)과 취소(ModernTask.cancel), 안전한 텔레포트 헬퍼.

[유틸]

  • JSON 직렬화, 리플렉션 헬퍼, 접두사가 붙는 로거.

====================================================================
설치 · 사용 시 참고
====================================================================

  • 플러그인 이름은 M-Core 입니다. 데이터 폴더는 plugins/M-Core/ 이고,

다른 플러그인은 plugin.yml 에 depend: [M-Core] 라고 적습니다.

  • 권한: mservice.core.admin (기본 OP), mservice.core.region.bypass (기본 OP).
  • 문서: https://docs.mservice.kr/core

====================================================================
품질
====================================================================

  • 단위 테스트 50개 통과 (GUI 기록 · 페이지 복원 · 홀로그램 표시 · 설정 · 명령어 인자 등).