Foxcraftupdates

OneBlockSurvival
  • Keep database connections working after the plugin jar is renamed
  • ✨ NewGive every sale attempt and sell create its own id, so the ambiguous-commit probes prove this attempt and nothing else
  • Close the remaining money-channel gaps: cancel and boost probes, proceeds through Payout, a durable recovery record, and the split price cap
  • 🚫 RemovedRun migrations outside the pool's 30s socketTimeout, gate /fa return on the delivered stamp behind --force, retire the redundant material index, and close six more storage/ops-periphery findings
  • ✨ NewBedrock form parity: stop taps spending or stranding, guard the unstable seams, and add the typed inputs and affordances the client was missing
  • Thread market context into every pricing screen, close the browse family's dead ends and empty states, and bound the auto-refresh repaint
  • Land the money-channel completions on main (cancel/boost probes, proceeds via Payout, atomic recovery record, split cap)
  • 🐛 FixFix remaining refund, claim recovery, bundle and menu issues
  • 🐛 Fixfix(refill): skip the bag refill when the block place was cancelled
  • 🐛 Fixfix(listeners): offhand double-fire amount check, non-player close cast, orphan craft rows
  • 🐛 Fixfix(filter): entry-demands matching closes the blacklist rename/enchant bypass; precompute entry shapes
  • 🐛 Fixfix(nesting): close the drag, bundle-carrier and hopper-push bypasses of putBackpacksIntoShulkers
  • 🐛 Fixfix(perms): gate sneak-click wear on FancyBags.wear; declare explicit permission defaults
  • 🐛 Fixfix(commands): merge give-from-uuid into restore's hardened path
  • perf: iterate getTrackedBy() in the worn visibility pass; cache the slots-limit filler pane
  • feat(commands): one table drives gates, tab-complete, /fb help and the declared nodes
  • feat(messages): configurable strings, action-bar refusals, configurable sounds
  • 🐛 Fixfix(db): retry the pool build with backoff, defer storage init, rate-limit unavailable warnings
  • chore: cleanup grab-bag from the 2026-08-30 review
  • ✨ NewAdd six original field crops with complete resource-pack models
  • Address September 18 farming review: orders, rewards, safety and menus
  • Catch-path hardening: contained spawns, isolated crab commands, hot-path caches (#536, #537, #543, #545, #548, #550, #562)
  • Tournaments: persist wins/records on the spot, range-check SpecificTimes (#538, #541)
  • Totems: halve the particle pulse, off-main registry render, no-op save skip (#547, #549)
  • Bingo: capped catcher resolution, pre-matched map palette, Bedrock flash knob, teleport guard (#552, #553, #558, #565)
  • Validation & persistence knobs: uncatchable-gate tripwire, Bedrock cue override, autosave sweep (#542, #557, #563, #567, #568, #572)
  • Command & health surfaces: suppressed-grant guard, single-parse validate, Floodgate stats, Bedrock events, Discord health (#540, #544, #551, #555, #556, #561, #571)
  • 🐛 FixDeliveries & menus: crash-skew shrink, catch-path cost, arrival ping, Bedrock detail, interaction polish (#539, #546, #554, #559, #560, #564, #566, #569, #570)
  • 🐛 FixFix remaining seller, container, and task issues
  • Restore CI dependencies and run all regression suites
  • 🐛 FixFix minion data safety, simulation parity and hot paths
  • Complete Java and Bedrock menu safety, accessibility and localization
  • Feat/notify foxkingdoms converter link
  • 🐛 Fixfix(lumberjack): replant saplings on every #minecraft:dirt block, not just grass/dirt/podzol
  • ✨ Newfeat(nms): add Paper 26.3 (ALPHA) support
Parkour
  • 🐛 Fixfix: preserve player saves and segment statistics under concurrency
  • 🐛 Fixfix: improve movement detection and gameplay performance
  • 🐛 Fixfix: protect menu navigation and improve playlist and duel menus
  • 🐛 Fixfix: make duel rewards durable and add player effect preferences
  • 🐛 Fixfix(duel): a queued player stays queued through the ghost race; a match pulls them out and returns them to where they were (#1058)
  • 🐛 Fixfix(timetrial): the start plate can't restart a trial until the player left it; a ghost race is a race — a fall before checkpoint 1 keeps the run and the ghost going (#1059)
  • feat(duel): settle details in duel history, no-contest window, queue countdown sounds (#1035 #1030 #1031)
  • feat(duel): queue UX - idempotent join/leave, status bar, fairer matching, clickable announcements
  • feat(duel): race a ghost when the duel queue is empty (#1032)
  • feat(duel): Elo skill rating, repeat-play rewards and a play_duel trigger (#1034)
  • feat(duel): live race HUD and a finish grace for the loser (#1033)
  • 🐛 Fixfix(play): refuse a start before exiting the current run — a duelist can't forfeit by starting another map (#1042)
  • 🐛 Fixfix(duel): settle a mid-race disconnect as a disconnect — right line for the opponent, no prompts or restore for the player who left (#1044)
  • 🐛 Fixfix(duel): a queue match whose map was unpublished or deleted in the match-found window tells both players and requeues them (#1045)
  • 🐛 Fixfix(duel): deleting a map mid-duel cancels its duels instead of settling them as a forfeit (#1043)
  • 🐛 Fixfix(spectate): /fp spectate asks the forfeit confirmation before exiting a duelist's run (#1051)
  • 🐛 Fixfix(build): a save that leaves a map unpublishable cancels its duels before ejecting the runners (#1052)
  • 🐛 Fixfix(duel): throttle the queue win reward per pair and per day so instant matching can't be farmed with an alt (#1046)
  • 🐛 Fixfix(duel): one reward gate for every duel reward — streak and first-win payouts obey the pair cooldown and daily cap too (#1056)
Survival
  • 🐛 Fixfix: resolve the permission-group bonus while queueing a save, not on the storage writer (#299)
  • 🐛 Fixfix: stop the flat-file → database migration losing data four ways (#302, #303)
  • 🐛 Fixfix: never compute %griefprevention_*% placeholders off the main thread (#301)
  • 🐛 Fixfix: a sold subdivision belongs to its buyer on every path (#382, #408, #410, #341)
  • 🐛 Fixfix: keep claim-block balances honest when storage is slow, failed or absent (#385, #326, #343, #325)
  • perf: take blocking reads and unbounded work off the main-thread hot paths (#403, #404, #409, #414, #415, #421, #422)
  • 🐛 Fixfix: Bedrock trust forms obey the same gates as the chest GUIs (#306-#310, #312, #313, #315, #316, #318)
  • 🐛 Fixfix: close the 26.x and residual protection gaps in the block, entity and interact handlers (#411, #412, #413, #417, #419, #423, #425, #433)
  • 🐛 Fixfix: admin deletes, confirmations, starter-claim expiry and the command surface (#358, #383, #384, #386–#396)
  • 🐛 Fixfix: make the claim marketplace price-safe, self-cleaning and legible on both platforms (#340, #342, #344–#353, #406)
  • 🐛 Fixfix: storage integrity — quarantine dead player files, atomic config writes, DB parent links and the small write-path leaks (#327–#338, #431)
  • 🐛 Fixfix: player-facing messages — terminology, missing detail lines, persisted /claimnotify and explicit admin transfer (#354–#356, #360, #361, #363, #367, #369, #371, #377, #381)
  • feat: a Bedrock form for the permission editor, tiered trust prompt, sorted trustees and the menu residuals (#311, #314, #317, #319, #320, #322–#324, #366, #380)
  • 🐛 Fixfix: help index, journey hints and a quieter, correct border notifier (#357, #359, #362, #368, #370, #372, #375, #376, #378, #424, #438)
  • perf: hot-path leftovers, chat residuals, the cloud PvP half and two small write-path lows (#321, #339, #414, #416, #418, #422, #426, #427, #432, #439, #443, #446)
  • 🐛 Fixfix: threading residuals — break the Fox/PlayerData lock cycle, guard every async→main hop, publish claim lists atomically (#398–#402, #407, #428–#430, #445)
  • 🐛 Fixfix: preserve overdrawn claims and remove join-time balance stalls
cloakfoxfweef