PANG MODS
← 모드 목록
SERVER WEBSITEPANG MODS
1 / 4

SERVER WEBSITE

웹사이트

가격 문의

게임 서버 안에서 웹사이트를 엽니다. 서버 현황과 랭킹, 프로필, 웹 상점까지 별도의 웹 서버 없이 제공합니다.

Fabric API만 필요웹 브라우저
의존성 (1)
필수Fabric API
설치 방식
화면이 웹 브라우저이므로 접속하는 인원은 아무것도 설치하지 않습니다.
제공 파일 (2)
모드 파일pang_web.jar
설명서명령어 · 설정 · 적용 방법
구매 문의처를 준비하고 있습니다

Minecraft 1.21.1 · Fabric · Java 21. 결제는 문의를 통해 진행합니다.

상품 설명
  • 서버 현황, 랭킹, 플레이어 프로필, 가이드, 웹 상점을 제공합니다.
  • 별도의 웹 서버나 데이터베이스가 필요 없습니다.
  • 회원가입 없이 게임에서 /웹 명령어 한 번으로 로그인합니다.
  • 함께 설치된 모드의 데이터를 읽어 사이트의 칸이 저절로 늘어납니다.

실제 화면

사이트 첫 화면입니다. 서버 현황과 접속자, 소식을 보여 줍니다.
사이트 첫 화면입니다. 서버 현황과 접속자, 소식을 보여 줍니다.
가이드 화면입니다. 함께 설치한 슬롯머신의 배당표가 저절로 실립니다.
가이드 화면입니다. 함께 설치한 슬롯머신의 배당표가 저절로 실립니다.
휴대폰 폭에서는 화면이 접힙니다.
휴대폰 폭에서는 화면이 접힙니다.

설명서

이 모드의 특징: 서버에만 넣으면 됩니다

화면이 웹 브라우저이므로, 접속하는 인원은 아무것도 설치하지 않습니다. 휴대폰에서도 그대로 열립니다.

  • 웹 서버를 따로 세울 필요가 없습니다. 게임 서버가 직접 사이트를 내보냅니다.
  • 데이터베이스가 필요 없습니다. 게임 데이터를 그대로 읽습니다.
  • 회원가입도 비밀번호도 없습니다. 게임에서 /웹 한 번이면 로그인됩니다.
  • 외부 서비스를 쓰지 않습니다. 모든 것이 서버 안에서 돌아갑니다.
다른 모드를 넣으면 저절로 칸이 늘어납니다

이 모드는 함께 설치된 모드가 남긴 데이터를 읽어 사이트를 채웁니다.

없으면 그 칸이 안 보일 뿐, 오류가 나지 않습니다.

함께 설치하면사이트에 생기는 것
뱃지 케이스배지 랭킹 · 프로필의 지방별 배지 진행도
칭호프로필 맨 위의 착용 칭호 · 보유 목록
출석내 정보의 이번 달 출석 달력 요약 (본인만)
우편함내 정보의 받을 우편 목록 (본인만) · 웹 상점 배송
슬롯머신가이드의 누적 잭팟 · 기계별 배당표

아무것도 없어도 서버 현황 · 접속자 · 플레이어 찾기 · 프로필은 그대로 동작합니다.

웹 상점: 게임을 끄고도 살 수 있습니다

웹에서 결제하면 물건이 게임 우편함으로 갑니다. 접속 중일 필요가 없습니다.

  • 분류·상품·가격·하루 구매 제한을 설정 파일에서 직접 정합니다.
  • 결제를 먼저 하고 배송에 실패하면 자동으로 환불합니다.
  • 같은 주문을 두 번 눌러도 한 번만 결제됩니다.
  • 모든 주문이 orders.log 에 한 줄씩 기록됩니다.

웹 상점은 우편함 모드가 함께 설치되어 있어야 열립니다. 물건을 보낼 곳이 없으면 판매를 시작하지 않습니다. (그 편이 안전합니다)

상품 목록(config/pang_web_shop.json)이 비어 있으면 상점 메뉴가 나오지 않습니다.

주요 명령어
/웹 · /web로그인 링크와 6자리 코드를 받습니다 (본인에게만 보입니다)
/웹로그아웃내 웹 로그인을 전부 끊습니다 (휴대폰을 잃었을 때)
/지갑내 잔고 확인
/지갑 주기 <대상> <액수>OP 잔고 지급
/웹관리 상태OP 켜짐 여부·포트·세션 수·등록된 칸
/웹관리 리로드OP 설정·상품 목록을 다시 읽고 포트를 다시 엽니다
/웹관리 코드 <플레이어>OP 대신 코드 발급 (명령을 친 사람에게만 보입니다)
/웹관리 로그아웃 <플레이어>OP 남의 웹 로그인 전부 끊기 (도용 신고용)
주요 기능
  • 서버 현황: 접속자 목록·TPS·최대 인원. 30초마다 갱신됩니다.
  • 랭킹: 함께 설치된 모드가 제공하는 순위표.
  • 플레이어 찾기 · 프로필: 이 서버에 접속한 적 있는 사람만 나옵니다.
  • 내 정보: 잔고·우편·출석 등 본인에게만 보이는 칸.
  • 가이드: 사람과 무관한 안내 (슬롯 배당표 등).
  • 소식: RSS 주소를 넣으면 공지가 사이트에도 뜹니다.
  • 색·이름·소개 문구를 직접 정할 수 있습니다.
  • 휴대폰 화면에 맞춰 접힙니다.
보안: 읽기 전에 설정해 주세요

이 모드는 암호화되지 않은 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 으로 바꾸면 암호화되지 않은 채로 인터넷에 열립니다. 로그인 쿠키가 그대로 오가므로 권장하지 않습니다. (서버 로그에도 경고가 남습니다)

그 밖에 기본으로 적용되어 있는 것

  • 비밀번호를 받지 않습니다. 새어 나갈 비밀번호도 없습니다.
  • 로그인 코드·링크는 한 번 쓰면 끝이고 10분 뒤 사라집니다.
  • 세션 파일에는 토큰이 아니라 암호화 해시만 저장됩니다.
  • 다른 사이트에서 보낸 요청은 거절합니다 (CSRF).
  • 스크립트 주입을 막는 보안 정책이 켜져 있습니다 (CSP).
  • 요청 횟수와 동시 처리 수에 상한이 있어 게임 서버가 느려지지 않습니다.
설정 방법

서버를 한 번 실행하면 설정 파일이 자동으로 생성됩니다.

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               화면에 표시할 화폐 이름 (기본: 코인)

설정을 고친 뒤에는 /웹관리 리로드 를 입력해 주세요. (로그인한 사람은 그대로 유지됩니다)

적용 방법
  1. 서버의 mods 폴더에 제공받은 .jar 파일을 넣습니다.
  2. 서버를 실행합니다. 로그에 [Web] 웹사이트를 열었습니다 — http://127.0.0.1:8765 가 뜨면 성공입니다.
  3. 서버가 있는 컴퓨터의 브라우저에서 http://127.0.0.1:8765 로 확인합니다.
  4. 인터넷에 공개하려면 위 보안 항목을 따라 HTTPS 앞단을 세웁니다.
  5. 게임에서 /웹 을 입력해 로그인해 봅니다.

접속하는 인원은 아무것도 설치하지 않습니다.

데이터 저장 위치
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_ 모드를 여러 개 쓰신다면 돈은 하나로 이어집니다. 상점에서 쓴 돈, 슬롯에서 딴 돈, 은행에 넣은 돈이 같은 지갑입니다.

주의사항
  • 지원 버전과 다른 Minecraft 버전에서는 정상 작동하지 않을 수 있습니다.
  • 기본값은 외부에서 접속할 수 없습니다. 공개하려면 HTTPS 앞단을 반드시 세워 주세요.
  • 같은 컴퓨터에서 서버를 여러 대 돌린다면 포트를 서로 다르게 지정해 주세요. (겹치면 나중에 켠 서버의 웹사이트만 열리지 않고, 게임 서버는 정상 동작합니다)
  • 포트를 여는 것이므로 방화벽 설정이 필요할 수 있습니다.
  • 구매한 파일의 무단 배포 및 재판매를 금지합니다.
  • 서버에서 함께 플레이하는 인원에게만 설치 목적으로 파일을 공유할 수 있습니다.
  • 공유받은 인원은 해당 서버 이용 목적 외에 파일을 사용하거나 재배포할 수 없습니다.
  • 구매 시 안내된 이용 약관에 동의한 것으로 간주됩니다.

커뮤니티의 다른 모드

전체 보기 →