hotfix/sub-panel-sizing
3 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ae183f27de |
pack: v0.39.0 — Counting House refactor + remove Create: Encased
Major economy / spawn-design pivot. ## Removed: Create: Encased The mod's `chorium_ingot` → `creative_casing` chain unlocked 60+ infinite-output creative-tier blocks via fully renewable inputs (rose quartz + chorus fruit + lava). Single creative_mechanical_drill in a player base would have produced enough diamonds to trivialize the civic ladder. Removing the mod was simpler than KubeJS recipe overrides since none of the mod's other content (wood-variant encased shafts, coloured casings) was load-bearing for our pack. Parallel audit of 14 other Create-family mods confirmed none have similar exploits — only Create: Encased was the breaker. ## Counting House refactor What used to be "Bazaar" became "Counting House" — a wealth exchange, not a general shop. Conceptual model: - Players accumulate diamonds / netherite / ancient debris through adventure and mining (the wealth-store axis) - Counting House converts these to spurs, credited directly to the player's Numismatics bank account - Iron / gold / coal / lapis / redstone are no longer here — those belong on player-run Numismatics Vendor blocks at market prices SellCatalogue cut from 9 items to 4 (diamond, diamond_block, netherite_ingot, ancient_debris). Diminishing-returns floor tightened 50% -> 30%. ## Numismatics integration NumismaticsBridge (reflection — no hard dep) wires up: - ensureAccount on PlayerLoggedInEvent (every player gets a personal account on first login) - balanceOf / deposit / deduct for bank operations - SpurBalance.totalSpurs = inventory coins + own bank balance, no card lookups required - HUD overlay now shows three lines: tier / cash on hand / bank balance — total wealth visible regardless of cards ## /bns commands migrated to Java `/bns sell` and `/bns wallet` are now Java-handled (CountingHouseCommands.java). Bank credit happens atomically with inventory pull. KubeJS `02_sell_shop.js` retired (.retired suffix preserved in the repo as documentation). ## Hub status-only Removed the Civic Tier / Bazaar / Bounty / Plot routing buttons. Transactional screens are now only reachable via NPC dialogue (`/bns open <screen>` from an Easy NPC COMMAND action). The hub shows tier + cash + bank + total + slot caps; footer reads "Visit spawn NPCs for trades, bounties, plots, tier upgrades." This locks the spawn-as-civic-centre design: players have to travel. ## bnstoolkit jar 0.5.1 -> 0.6.0 (network version 0.4 -> 0.5; TierStateUpdatePacket now carries cashOnHand + bankBalance separately). ## Pack manifest 102 -> 104 mods after Encased removal. Manifest republished on glados (publish-pack.py) before restart so the wrapper's sync sees the right target state. Without that step, the sync was reverting our changes. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
ffff3bc78d |
econ: sell shop + bounty engine + player commands + FTB Ranks 13-tier
Foundation economy stack — fully command-driven, ready for the custom
UI mod to layer on top later. Built tonight as a single feature batch.
KubeJS scripts:
pack/overrides/kubejs/server_scripts/economy/
00_tier_system.js — 13-tier ladder + admin commands
02_sell_shop.js — /bns sell, 9 items, DR + tier-fee
03_bounty_engine.js — /bns bounty, 20 bounties, state machine
04_player_commands.js — /bns help, /bns me, /bns tier upgrade
plots.js: updated to support multi-plot ownership based on tier slots
- plotsOwnedBy() returns list, slot cap from TIER_PLOT_SLOTS table
- /bns plot release now requires plot id (multiple plots possible)
- /bns plot mine added
FTB Ranks server config:
pack/overrides/world/serverconfig/ftbranks/ranks.snbt
13 ranks with ftbchunks.max_claimed_chunks scaling per tier:
Peasant 9 -> Sovereign 1500 (chunks)
Peasant 1 -> Sovereign 200 (force-loaded)
Name format colour codes match the design doc.
Player command surface (everything callable from chat or Telegram bridge):
/bns help full command listing
/bns me tier, balance, plots, bounties
/bns tier upgrade pay spurs, advance to next tier
/bns plot list|info|buy|release|mine
/bns sell list|<item> [count]
/bns bounty list|active|accept|cancel|turnin|completed
/bns admin tier get|set|list (op level 2)
/bns admin info|waystone-*|reset-welcome (pre-existing)
Tier upgrade flow:
1. Player runs /bns tier upgrade
2. KubeJS takes spurs from inventory
3. KubeJS sets player.persistentData.bnsTier += 1
4. KubeJS runs `ftbranks add <player> <rank>` so FTB Ranks applies
the permission nodes (chunk allowance auto-flips)
Cross-file scope: KubeJS 2101 runs all server_scripts in shared Rhino
global scope. Constants (TIER_CONFIG, COIN_VALUES, bnsTier object,
shared functions like giveCoins/countCoins/takeCoins) are declared
once in their owning file and referenced from siblings. Don't redeclare.
Blocked tonight (deferred):
- Villager trade rebalance: KubeJS 2101.7.2 doesn't ship a
villagerTrades event. ServerEvents only exposes command/loaded/
recipes/registry/tags/tick/unloaded. Verified by grepping the
KubeJS jar's ServerEvents class. No KubeJS-villager-trade addon
on Modrinth for NeoForge 1.21.1. Either build into the custom
mod or add a third-party trade-overrides mod (research pending).
- Custom mod UI screens: no Java toolchain on host, and these
need visual iteration with the user anyway.
Verified live: server boots clean, all 4 economy scripts log loaded,
port 25565 binds, no EcmaError or EvaluatorException in KubeJS log.
FTB Ranks reload via rcon confirms "Ranks reloaded from disk!"
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
||
|
|
b4cd66036b |
econ: tier system foundation (00_tier_system.js)
KubeJS module that owns the 13-tier civic ladder per economy doc §4a. Authoritative source for TIER_CONFIG (per-tier perks: cost, wilderness chunks, plot slots, daily bounty slots, shop fee discount, chat colour, join broadcast). Player tier stored as int in player.persistentData.bnsTier; default 1 (Peasant), set on first login. Admin commands (op level 2): /bns admin tier get <player> /bns admin tier set <player> <1-13> /bns admin tier list Module-local pattern (KubeJS Rhino runs scripts in strict mode -- no globalThis, no bare-assignment globals). Other economy scripts will duplicate TIER_CONFIG and use player.persistentData.bnsTier directly to read tier rather than trying to import. See feedback-kubejs-rhino- gotchas memory. FTB Ranks will mirror this once the bnstoolkit mod ships -- ranks will carry the FTB Chunks permission nodes. For now the NBT is the single source of truth and admin promotes manually with /bns admin tier set. Verified: server boots clean, KubeJS loads with 0 errors. First-join hook initialises new players to tier 1. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |