Foxcraftupdates

OneBlock
  • A withdrawal gesture that does nothing has to say so
  • A listing row says how long is left
  • The browse row says who is selling
  • Pricing a listing is not fifty clicks
  • The row uses the palette and the layout it replaced
  • The chat prefix says Auction House, and is a message key
  • What clicking a row does is configuration too
  • The other screens' contents are configuration, not just their titles
  • Two hardcoded numbers become settings, and one becomes nothing
  • Two hardcoded numbers become settings, and one becomes nothing
  • Tell an owner when their listing expires into their collection bin
  • An unreadable legacy bundle must say why, and leave its bytes behind
  • Bedrock rows carry the item's own lore, so a minion is identifiable again
  • Guard /fa return against collected sales and settlement against stale bid amounts (#330, #334)
  • Persist player names so sellers and leaderboard rows survive the usercache (#365)
  • 🐛 FixFix command-usage replies, stale config docs, and an unfilled-deadline request race (#340, #342, #353, #354, #355)
  • 🐛 FixMoney-safety: guard bare settlement/refund hops and fix two stat counters (#331, #332, #336, #337, #356, #344, #345)
  • Resilience and observability: /fa status, a DB-outage latch, and economy self-heal (#362, #363, #367)
  • 🐛 FixFix detection false-positives from bin returns, lost cutover ladders, and importer data-loss (#338, #346, #339, #341, #347)
  • 🐛 FixFix seven GUI-correctness bugs: request-fulfil confirm, repaint guards, permission re-checks, dead search filter, Bedrock buy-type axis, transactions filter carry-forward (#333, #335, #348, #349, #350, #351, #352)
  • 🐛 Fixperf: notification, browse, and sweep hot-paths + a release-keying correctness fix (#343, #357, #358, #359, #360, #361)
  • Bound configured money magnitude before setScale (#290)
  • Make the MariaDB verification fail instead of skip when asked to run (#364)
  • Recover claims that committed but never delivered into the collection bin (#366)
  • Backfill imported seller names from the legacy owner_name (#328)
  • Decouple doubling auto-freeze from the alert with detection.doubling-auto-freeze-run (#299)
  • Withdraw your own listing with a plain click on the browse, both clients (#382)
  • ✨ NewAdd /ah price <id> <amount>: reprice a buy-it-now listing in place
  • Edit a listing's price from the withdrawal prompt, on both clients
  • Withdraw your own request with a plain click on the browse, both clients (#382)
  • Make the bid ladder configurable and decouple it from the sell picker
  • Click the auction broadcasts to open the listing they name (#389)
  • Money-safety: refund only on a proven pre-commit, and close two escrow-refund and two delivery gaps (#422–#426)
  • Storage & config robustness: outage-storm quieting, input caps/guards, seekable pending-count index (#391–#395, #409)
  • Commands, listeners, detection & importer: reachable bundle unpack, honest replies, on-tick permission checks, dedupe gate (#404–#408, #410, #411)
  • Hotpath: stop re-decoding payloads per click and re-reading blobs per repaint (#412, #413, #414)
  • Discovery: searchable lore/enchants, a Search button on both clients, watch counts on rows (#415, #417, #418)
  • Selling & notifications: /ah sell -all bulk listing, and tell the seller a bid landed (#416, #419)
  • Market intel & alert push: detection/conservation alerts to Discord, recent-sales pricing help (#420, #421)
  • ✨ NewNew-commit UX & correctness: bid-steps validation, editPrice restriction gate, gesture/hint fixes (#396–#403, #427, #428)
  • Set a socketTimeout default so a transient DB slowdown can't wedge the pool forever
  • Tell the seller their listing sold, and optionally auto-credit the proceeds (#440)
  • Self-heal a wedged connection pool instead of staying dead until restart
  • Upgrade MariaDB driver to 3.5.10 + pool keepalive (wedge root cause)
  • Give Bedrock players the menu cues Java players get
  • Make every refusal sound like one
  • Sound the cue when a request is withdrawn
  • One cue for one sale, however it sold
  • Name minions and spawners in /ah history instead of "weird numbers" thread ↗
  • 🐛 FixFix /ah search: ESCAPE '!' so the LIKE query parses on MariaDB (error 1064)
  • ✨ NewAdd chat emoji: parse :name: into resource-pack glyphs (Java + Bedrock)
  • ✨ NewAdd Minecraft 26.2 support (cherry-pick upstream)
  • 🐛 Fixfix: cancel teleport warmup particles when a warmup is aborted
  • feat(config): drop the SmartDataUnloader knob that never did anything (#657)
  • feat(field): turn crop discovery into a collection ladder that pays (#646)
  • ✨ Newfeat(leaderboard): rank several boards, add a resetting one, and tell a player their own rank (#652)
  • 🐛 Fixfix(market): stop selling rotating-exclusive items in the permanent shop
  • feat(tournament): make tournament types data-driven over the farmable registries (#647)
  • feat(tournament): let a tournament rank islands instead of players (#647)
  • feat(player): lifetime harvest statistics for the plugin's own content (#645)
  • 🐛 Fixfix(leaderboard): reload re-arm, rank clamp, refresh gate, off-main cache install, period debit (#670 #671 #679 #685 #687)
  • 🐛 Fixfix(tournament): registry-first Crops resolution, name leniency, island-reset row merge (#672 #673 #686)
  • 🐛 Fixfix(field,orders): discovery-ladder and orders polish (#674 #675 #676 #688 #689)
  • perf(growstation): incremental storage snapshots + dirty-gated autosave (#678)
  • perf: tick/event hotpaths — flow keys, trait memo, rain cache, settings snapshot, window memo (#680 #681 #682 #683 #684)
  • 🐛 Fixfix(listener): SafeYaml crop-placements, brewing-stand guards, disabled-world doc (#669 #677 #690)
  • perf(listener): chunk-gate the piston and physics handlers
  • feat(orders): rotation countdown, join notice and %timetillorders% placeholder
  • perf(field): skip the per-second tick for ripe standing crops
  • sellDecay C4a (write side): stamp foxfarming:hand_harvested on genuine player crop harvests
  • sellDecay C4a-v2: earn hand-harvest CREDIT instead of tagging produce
  • perf(listeners): gate interact handlers on the action before touching item meta (#495, #514)
  • 🐛 Fixfix(papi): survive a PlaceholderAPI reload and re-apply the root alias (#499, #505, #509)
  • 🚫 Removedperf(catch): remove the per-catch rod, region and world-gate re-reads (#496, #497, #498)
  • 🐛 Fixfix(economy): sanitize the special-fish multiplier and gate the eat payout (#510, #511)
  • 🐛 Fixfix(util): declare the codex opt-out, stat messages.yml, carry colour past head tags (#506, #507, #508)
  • 🐛 Fixfix(tournaments): isolate the winner firework and escape Discord markdown in names (#512, #515)
  • 🐛 Fixfix(totems): fold shared benefits over an active-totem index and share one capacity predicate (#500, #513)
  • 🐛 Fixfix(gui): gate the Stats tile, refresh the Augmenter balance, voice the creative refusals (#501, #502, #503, #504)
  • Augments read the rod being fished with, not the main hand
  • ✨ NewAdd 42 sulfur-caves fish + 5 rod skins, distribute rods via deliveries (#526)
  • Render the caught crab as an animated BetterModel (#526)
  • feat(totems): bank fish toward passive slots instead of an all-at-once buy thread ↗
  • 🐛 Fixfix(packet-entity): allocate entity ids via packetevents on 26.2
  • perf(chunkloader): scan the players near the loader's box, not the world's chunk table
  • perf(chunkloader): read the source container on one skipped hopper pass in four
  • perf(chunkloader): don't walk the source container into a hopper that is already full
  • 🐛 Fixfix(collector): match filters and the blocklist on item identity, not Material alone
  • 🐛 Fixfix(tasks): respect RestrictedCreative tracking in lumberjack and farmer
  • perf: probe hopper emptiness off the NMS handle, not CraftInventory
  • perf(chunkloader): ask the near-player guard once per chunk, not once per simulation
  • perf(chunkloader): decide a hopper's pass off the NMS handle, build no state for it
  • 🐛 Fixfix(tasks): stop block-breaking minions destroying the AOneBlock magic block & phase generators (#408)
  • Route seller-minion payouts through DailyShop's sell-decay curve
  • perf(chunkloader): skip sections that can't random-tick, as vanilla does
  • sellDecay: report the minion per-item split to DailyShop observe-only breakdown
  • sellDecay C3: charge minion sales per item type when perItem curve active
  • sellDecay C4a-v2: minion sales spend hand-harvest credit (channel-agnostic)
  • shopadmin: warn when registering FoxFarming produce with no identity tag
  • Diminishing returns on selling (sellDecay), off by default
  • 🐛 FixsellDecay legibility: visible haircut %, per-rotation notice, and shift/middle sell-all fix
  • sellDecay C1+C2: island-keying + observe-only per-item (both default-off), v1.16.0
  • sellDecay C3: per-item dual curve + global backstop (default-off), v1.17.0
  • sellDecay C4b: prestige-scaled per-item grace (default-off), v1.18.0
  • sellDecay C4a (DailyShop side): harvest-provenance read + accrual (default-off), v1.19.0
  • sellDecay C4a-v2: harvest-provenance CREDIT (replaces item tagging), v1.20.0
cloakfox