econ: sell shop + bounty engine + player commands + FTB Ranks 13-tier #67
Reference in New Issue
Block a user
Delete Branch "feature/v0.33.0-economy-foundation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Foundation economy stack — fully command-driven, layered later by the custom UI mod.
What ships tonight:
ftbranks add)Villager trade rebalance: blocked tonight. KubeJS 2101.7.2 ships no villagerTrades event. Either rolled into the custom mod or solved via a third-party mod (deferred).
Custom mod UI: deferred to a session where user can iterate visually. The KubeJS substrate built tonight is exactly the backend the mod will sit on top of.
Verified: all scripts load with 0 errors, server boots clean.
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>