한글 닉네임
계정 이름 대신 직접 정한 한글 이름이 채팅과 탭 목록, 머리 위 이름표에 보입니다.
게임 서버 안에서 웹사이트를 엽니다. 서버 현황과 랭킹, 프로필, 웹 상점까지 별도의 웹 서버 없이 제공합니다.
Minecraft 1.21.1 · Fabric · Java 21. 결제는 문의를 통해 진행합니다.



화면이 웹 브라우저이므로, 접속하는 인원은 아무것도 설치하지 않습니다. 휴대폰에서도 그대로 열립니다.
/웹 한 번이면 로그인됩니다.이 모드는 함께 설치된 모드가 남긴 데이터를 읽어 사이트를 채웁니다.
없으면 그 칸이 안 보일 뿐, 오류가 나지 않습니다.
| 함께 설치하면 | 사이트에 생기는 것 |
|---|---|
| 뱃지 케이스 | 배지 랭킹 · 프로필의 지방별 배지 진행도 |
| 칭호 | 프로필 맨 위의 착용 칭호 · 보유 목록 |
| 출석 | 내 정보의 이번 달 출석 달력 요약 (본인만) |
| 우편함 | 내 정보의 받을 우편 목록 (본인만) · 웹 상점 배송 |
| 슬롯머신 | 가이드의 누적 잭팟 · 기계별 배당표 |
아무것도 없어도 서버 현황 · 접속자 · 플레이어 찾기 · 프로필은 그대로 동작합니다.
웹에서 결제하면 물건이 게임 우편함으로 갑니다. 접속 중일 필요가 없습니다.
orders.log 에 한 줄씩 기록됩니다.웹 상점은 우편함 모드가 함께 설치되어 있어야 열립니다. 물건을 보낼 곳이 없으면 판매를 시작하지 않습니다. (그 편이 안전합니다)
상품 목록(config/pang_web_shop.json)이 비어 있으면 상점 메뉴가 나오지 않습니다.
/웹 · /web로그인 링크와 6자리 코드를 받습니다 (본인에게만 보입니다)/웹로그아웃내 웹 로그인을 전부 끊습니다 (휴대폰을 잃었을 때)/지갑내 잔고 확인/지갑 주기 <대상> <액수>OP 잔고 지급/웹관리 상태OP 켜짐 여부·포트·세션 수·등록된 칸/웹관리 리로드OP 설정·상품 목록을 다시 읽고 포트를 다시 엽니다/웹관리 코드 <플레이어>OP 대신 코드 발급 (명령을 친 사람에게만 보입니다)/웹관리 로그아웃 <플레이어>OP 남의 웹 로그인 전부 끊기 (도용 신고용)이 모드는 암호화되지 않은 HTTP 를 엽니다. 그래서 기본값이 127.0.0.1(내 컴퓨터에서만 보임) 입니다.
인터넷에 공개하려면 앞단에 HTTPS 를 씌워 주세요. 가장 간단한 방법은 [Caddy](https://caddyserver.com/) 입니다. 인증서를 자동으로 발급합니다.
# Caddyfile
example.com {
reverse_proxy 127.0.0.1:8765
}
nginx 를 쓰신다면
server {
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8765;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
그리고 config/pang_web.json 의 publicUrl 에 https://example.com 을 적어 주세요. (로그인 링크가 이 주소로 만들어집니다)
bind 를 0.0.0.0 으로 바꾸면 암호화되지 않은 채로 인터넷에 열립니다. 로그인 쿠키가 그대로 오가므로 권장하지 않습니다. (서버 로그에도 경고가 남습니다)
그 밖에 기본으로 적용되어 있는 것
서버를 한 번 실행하면 설정 파일이 자동으로 생성됩니다.
config/pang_web.json: 웹사이트 설정
enabled 웹사이트 사용 여부 bind 접속을 받을 주소 기본 127.0.0.1 (위 보안 항목 참고) port 포트 (기본 8765) 서버를 여러 대 돌린다면 서로 다르게 publicUrl 공개 주소 (https://example.com): 로그인 링크가 이것으로 만들어집니다 serverName 사이트에 표시할 서버 이름 serverAddress 화면에 보여 줄 게임 접속 주소 (비우면 안 나옵니다) tagline 첫 화면의 소개 문구 footerNote 맨 아래 한 줄 launcherUrl "받기" 단추의 주소 (https 만 가능 · 비우면 단추가 없습니다) launcherName 그 단추의 이름 theme 화면 색 (#rrggbb) accent · accent2 · good · bad · gold · card · line … imageHosts 머리 그림·포켓몬 그림을 가져올 주소 목록 siteDir 화면 파일을 담은 폴더 (비우면 모드 안의 기본 화면) iconDir 아이템 그림 폴더 (없으면 글자 한 자로 대신 그립니다) langFile 한글 이름 사전 (없어도 동작합니다) newsUrl RSS 2.0 공지 주소 (비우면 소식 칸이 안 나옵니다) newsCacheMinutes 소식을 다시 가져오는 간격 sessionDays 로그인 유지 기간 (일) loginCodeMinutes 로그인 코드가 살아 있는 시간 (분) launcherLogin 런처 자동 로그인 API 사용 여부 rankingSize 랭킹에 보여 줄 인원 searchResults 플레이어 검색 결과 수 cacheSeconds 화면별 캐시 시간 길수록 게임 서버가 편합니다 requestsPer10s 한 주소에서 10초에 허용할 요청 수 threads / queue 동시 처리 수 · 대기열 상한 shopEnabled 웹 상점 판매 여부 (끄면 목록만 보입니다) shopFile 상품 목록 파일 이름 shopMaxQty 한 번에 살 수 있는 최대 개수 shopWaitSeconds 주문 처리를 기다리는 시간 shopBuysPerMinute 한 사람이 1분에 살 수 있는 횟수 sources 어떤 모드의 데이터를 읽을지 (badge · title · attendance · mailbox · slot)
config/pang_web_shop.json: 웹 상점 상품
{
"label": "웹 상점",
"categories": [
{ "name": "소모품", "items": [
{ "id": "minecraft:emerald", "price": 100, "daily": 5,
"stack": 64, "name": "", "icon": "", "lore": ["설명 줄"] }
]}
]
}
name과 icon 을 비우면 아이템의 이름·그림을 그대로 씁니다.daily가 0 이면 하루 구매 제한이 없습니다.이 서버에 없는 아이템은 목록에서 자동으로 빠지고 경고만 남습니다.
config/pang_wallet.json: 화폐 이름
name 화면에 표시할 화폐 이름 (기본: 코인)
설정을 고친 뒤에는 /웹관리 리로드 를 입력해 주세요. (로그인한 사람은 그대로 유지됩니다)
mods 폴더에 제공받은 .jar 파일을 넣습니다.[Web] 웹사이트를 열었습니다 — http://127.0.0.1:8765 가 뜨면 성공입니다.http://127.0.0.1:8765 로 확인합니다./웹 을 입력해 로그인해 봅니다.접속하는 인원은 아무것도 설치하지 않습니다.
config/pang_web.json웹사이트 설정 (월드를 바꿔도 유지됩니다)config/pang_web_shop.json웹 상점 상품config/pang_wallet.json화폐 이름world/pang_web/sessions.json로그인 세션 (해시만 저장)world/pang_web/shop_limits.json오늘 구매 개수world/pang_web/orders.log주문 기록world/pang_wallet/balances.json플레이어 잔고모든 파일은 저장 실패에 대비해 .bak 백업을 함께 만듭니다.
다른 모드의 데이터 파일은 읽기만 하고 절대 고치지 않습니다.
| 모드 | 무엇이 좋아지나 |
|---|---|
| CobbleDollars | 돈을 그 모드의 잔고로 씁니다. 다른 곳에서 번 돈을 여기서 그대로 씁니다 |
설치만 하면 자동으로 이어집니다. 설정할 것이 없습니다. 없으면 이 모드가 자기 잔고(world/pang_wallet/balances.json)를 씁니다. 그것만으로도 문제없이 돌아갑니다.
저희 pang_ 모드를 여러 개 쓰신다면 돈은 하나로 이어집니다. 상점에서 쓴 돈, 슬롯에서 딴 돈, 은행에 넣은 돈이 같은 지갑입니다.