Skip to content

설정 스키마

설정 스키마

SeoulTown은 세 개의 주요 YAML을 사용합니다.

파일용도
plugins/SeoulTown/config.yml기본 설정, 권한 노드, 보상 적용 방식
plugins/SeoulTown/jobs.yml직원/청 판정용 LuckPerms 권한
plugins/SeoulTown/levels.yml성장 단계, 조건, 비용, 보상

config.yml

settings:
max-level: 10
charge-source: TOWN_BANK
apply-claim-bonus: true
messages:
prefix: "[SeoulTown]"
permissions:
admin: seoultown.admin
status: seoultown.status
upgrade: seoultown.upgrade
필드설명
settings.max-level운영상 최대 성장 단계입니다. 현재 기획은 10입니다.
settings.charge-source비용 차감 기준입니다. 현재 구현은 TOWN_BANK 기준입니다.
settings.apply-claim-bonus레벨업 시 Towny 청크 한도가 부족하면 bonus block으로 보정할지 정합니다.
permissions.adminvalidate/reload 등 관리 권한입니다.
permissions.status성장 단계 조회 권한입니다.
permissions.upgrade성장 단계 상승 명령 권한입니다.

jobs.yml

jobs:
agriculture:
display: "농업청"
permission: "seoul.job.agriculture"
metal:
display: "금속산업청"
permission: "seoul.job.metal"

levels.ymlrequirements.jobs는 이 job id를 참조합니다.

직원 판정은 LuckPerms 권한을 기준으로 합니다. 예를 들어 어떤 주민에게 seoul.job.agriculture 권한이 있으면 농업청 직원으로 계산됩니다.

levels.yml

levels:
1:
name: "새싹"
cost: 10000
requirements:
residents: 3
jobs:
agriculture: 1
rewards:
max-residents: 7
max-claims: 36
unlock-blocks: [wooden_generator]
필드설명
name성장 단계 표시 이름입니다.
cost레벨업 시 마을 은행에서 차감할 골드입니다.
requirements.residents필요한 마을원 수입니다.
requirements.jobs필요한 직원 수입니다. key는 jobs.yml의 job id입니다.
rewards.max-residents이 단계에서 의도한 마을 구성원 한도입니다. 현재는 표시/기준 데이터이며 초대 차단은 별도 구현 대상입니다.
rewards.max-claims이 단계에서 의도한 청크 한도입니다. 부족분은 Towny bonus block으로 보정합니다.
rewards.unlock-blocks이 단계에서 해금할 기능 블록 ID입니다. SeoulEnergy의 blockId와 맞춰야 합니다.

운영 주의

unlock-blocks는 SeoulEnergy의 blocks.<blockId>와 연결됩니다.

예를 들어 SeoulTown에서 wooden_generator를 해금하고 SeoulEnergy에서 wooden_generator.required-town-level: 1을 설정하면, 해당 마을이 Lv.1 이상일 때 설치가 허용됩니다.