조건을 달성하면 자동으로 해금되는 마인크래프트 칭호 플러그인.
기존 태그 플러그인이 "권한을 주면 목록에서 골라 다는" 구조라면, Epithet 은 뭘 하면 뭘 얻는지가 보이는 도감을 중심으로 돌아간다. 미보유 칭호도 조건과 진행도를 그대로 보여주기 때문에 접속할 이유가 생긴다.
- Minecraft 1.21.4
- 서버 Paper (또는 Paper 계열 포크)
- Java 21
해금 조건은 마인크래프트 내장 통계를 읽는다. 별도 카운터를 쌓지 않기 때문에, 운영한 지 한참 된 서버에 지금 설치해도 기존 플레이어들이 이미 달성해 둔 칭호를 그대로 받는다. 플러그인을 지웠다 다시 깔아도, 서버를 옮겨도 진행도가 남는다.
첫 접속에 한해 연출을 생략하고 조용히 지급하므로, 100시간짜리 고인물이 접속하자마자 팝업 15개를 맞는 일은 없다.
/칭호 로 열리는 GUI. 미보유 칭호도 숨기지 않는다.
[전설] 용사냥꾼
등급 전설
엔더 드래곤을 쓰러뜨렸다.
하늘이 무너진 날.
해금 조건
✖ 엔더 드래곤 1마리 처치
0 / 1
■■■■□□□□□□□□□□□□□□□□ 0%
장착 효과
• 힘 I
• 최대 체력 +4
조건을 더 채워야 합니다
- 전체 / 보유 / 미보유 필터
- 페이지네이션
- 블록·몹·포션 이름은 클라이언트 언어 설정에 맞춰 자동 번역된다
hidden: true인 칭호는 해금 전까지???로 가려진다
칭호마다 포션 효과와 능력치 보정을 줄 수 있다. effects.enabled: false 로 끄면
순수 장식용이 된다.
무한 지속 포션과 능력치 보정은 플레이어 데이터에 저장되기 때문에, 서버가 비정상 종료되면 칭호를 벗어도 효과가 남는다. Epithet 은 접속할 때마다 "칭호가 건드릴 수 있는 효과" 전체를 기준으로 청소하므로 유령 버프가 누적되지 않는다.
채팅 / 머리 위 이름표 / TAB 목록 세 곳에 동시 반영된다. 각각 따로 끌 수 있다.
전용 채팅 플러그인을 쓴다면 채팅만 끄고 %epithet_title% 을 그쪽 포맷에 넣으면 된다.
마인크래프트 계정 이름은 영문·숫자·밑줄뿐이라 한국어 이름을 쓸 수 없다. 그래서
계정과 별개로 표시용 이름을 둔다. FOX 로 접속해도 채팅과 TAB 에는 김아무개 로
나온다.
/닉네임 <이름> 내 별명을 정한다
/닉네임 off 계정 이름으로 되돌린다
계정 이름을 대체하지는 않는다. 명령어 대상 지정 · 밴 · 권한은 전부 계정 이름
그대로다. 별명 뒤에 숨는 사람이 없어야 하기 때문이다. 포맷에서 <player> 는
별명, <name> 은 언제나 계정 이름이다.
길이 · 쓸 수 있는 글자 · 금지어는 config.yml 의 nick 에서 정한다. 길이는
보이는 글자로 센다 — 서식 태그까지 세면 색을 쓴 사람만 짧은 이름을 강요받는다.
색과 서식은 epithet.nick.color 가 있어야 쓸 수 있다.
⚠ 머리 위 이름표는 이것만으로 안 바뀐다. 스코어보드 팀은 이름 앞뒤로 글자를 덧붙이는 것만 되고, 이름 자체는 클라이언트가 계정 이름으로 그린다. 팀으로 이름을 지우는 방법은 이름표를 통째로 숨기는 것뿐이라 칭호까지 같이 사라진다. 머리 위까지 바꾸려면 이름표를 직접 그리는 플러그인(CustomNameplates 등)의 이름표 글자에
%epithet_nameplate%를 넣는다. 채팅과 TAB 은 이 플러그인이 직접 그리므로 그대로 바뀐다.
등급별 색상, 화면 중앙 타이틀, 사운드. 설정한 등급 이상을 획득하면 서버 전체 공지.
- Releases 에서
Epithet-x.x.x.jar를 받아plugins/에 넣는다 - 서버 재시작
plugins/Epithet/titles.yml을 취향대로 고친 뒤/칭호 admin reload
| 명령어 | 설명 | 권한 |
|---|---|---|
/칭호 |
도감 열기 | epithet.use |
/칭호 off |
장착 해제 | epithet.use |
/칭호 list |
보유 칭호 채팅 목록 | epithet.use |
/칭호 equip <id> |
칭호 장착 | epithet.use |
/칭호 admin give <플레이어> <id> |
지급 | epithet.admin |
/칭호 admin take <플레이어> <id> |
회수 | epithet.admin |
/칭호 admin reload |
설정 다시 읽기 | epithet.admin |
/닉네임 <이름> |
별명 정하기 | epithet.nick |
/닉네임 off |
계정 이름으로 되돌리기 | epithet.nick |
/닉네임 admin set <플레이어> <이름> |
남의 별명 정하기 | epithet.admin |
/닉네임 admin clear <플레이어> |
남의 별명 지우기 | epithet.admin |
/title, /tag 로도 쓸 수 있다. Paper 의 Brigadier API 로 등록되어 인자 자동완성이
붙는다 — /칭호 equip 은 본인이 보유한 칭호만, 관리자 명령은 전체를 제안한다.
| 권한 | 기본값 |
|---|---|
epithet.use |
전체 허용 |
epithet.admin |
OP |
titles.yml. 표시 문자열은 전부 MiniMessage 문법.
titles:
dragon_slayer:
display: "<gradient:#ffd93d:#ff6b3d>[용사냥꾼]</gradient>"
lore:
- "<gray>엔더 드래곤을 쓰러뜨렸다."
rarity: LEGENDARY # COMMON UNCOMMON RARE EPIC LEGENDARY MYTHIC
icon: DRAGON_HEAD
unlocks: # 나열된 조건을 "전부" 만족해야 해금
- { type: MOB_KILLS, target: ENDER_DRAGON, amount: 1 }
effects:
- { type: strength, amplifier: 0 }
attributes:
max_health: 4.0| type | 설명 | target |
|---|---|---|
PLAYTIME_HOURS |
플레이 시간(시간) | — |
MOB_KILLS |
몹 처치 수 | 생략 시 전체, 지정 시 해당 몹만 |
PLAYER_KILLS |
플레이어 처치 수 | — |
BLOCK_MINE |
블록 채굴 수 | 블록 이름 (필수) |
ITEM_CRAFT |
아이템 제작 수 | 아이템 이름 (필수) |
ITEM_USE |
아이템 사용 수 | 아이템 이름 (필수) |
FISH_CAUGHT |
낚은 물고기 수 | — |
DEATHS |
사망 횟수 | — |
MAX_DEATHS |
사망 횟수가 amount 이하 | — |
WALK_KM |
걸은 거리(km) | — |
DAMAGE_DEALT |
누적 피해량(체력 포인트) | — |
ADVANCEMENT |
업적 달성 | 업적 키 (story/mine_diamond) |
PERMISSION |
권한 보유 | 권한 노드 |
MANUAL |
관리자 지급 전용 | — |
MAX_DEATHS 를 다른 조건과 조합하면 "50시간 동안 한 번도 죽지 않기" 같은
되돌릴 수 없는 도전 과제를 만들 수 있다.
설치되어 있으면 자동으로 연동된다.
| 플레이스홀더 | 값 |
|---|---|
%epithet_title% |
색이 적용된 칭호 |
%epithet_title_plain% |
색 없는 텍스트 |
%epithet_title_raw% |
MiniMessage 원문 |
%epithet_rarity% |
등급 이름 |
%epithet_rarity_id% |
등급 ID (LEGENDARY) |
%epithet_unlocked% |
보유 개수 |
%epithet_total% |
전체 개수 |
%epithet_percent% |
도감 완성도 (%) |
%epithet_nick% |
별명. 안 정했으면 계정 이름 |
%epithet_nick_plain% |
색 없는 별명 |
%epithet_nick_raw% |
별명 원문. 안 정했으면 빈 문자열 |
%epithet_name% |
계정 이름 (별명과 무관) |
%epithet_nameplate% |
칭호 + 별명. 이름표 플러그인에 그대로 넣는 용도 |
plugins/Epithet/players/<uuid>.yml 에 한 명씩. 저장할 내용이 "해금 목록 + 장착 중인
칭호 + 별명" 뿐이라 데이터베이스를 끌어올 이유가 없다. 파일 입출력은 전부 비동기로 처리되고
메인 스레드는 메모리 캐시만 만진다.
./gradlew build산출물은 build/libs/Epithet-1.0.0.jar.
MIT