All Kingdoms Mob Mashers OneBlock Parkour Survival OneBlock
🐛 Fix Fix announcement bar lifecycle: stranded bars, orphaned boss bars, UUID keying, cleanup🐛 Fix Modernise to Paper 26.2 + Adventure, and fix the render hot pathsValidate config values and declare exclude permissions Condition operators, per-player scope, and announcement targeting Command UX: list, info, show, stop, help and tab completion Review pass over #19-#22: private previews, rotation accounting, loader consistency Route every detection alert to the staff channel, not just the red ones (#542) 🐛 Fix fix: code review cleanup🐛 Fix fix: don't call CompoundTag.remove, which does not exist on 26.x🐛 Fix fix: repair enchantments in the format Minecraft actually uses🐛 Fix fix: repair the enchantments of items stored inside other itemsSnapshot-based, thread-confined save pipeline for the chest cache Event handlers: stale cache after reload, off-hand double fire, own-inventory swaps, holder snapshots Commands: null-group return, chest-lock gates, modern material names Load path: per-group importers, row off-by-one, NBT validation, importer threading Storage: serialize database access, write chest files atomically Item-filter costs and remaining cleanup items 🐛 Fix Fix races and edge cases found by independent review of PRs #32-#37Store the items waiting to be handed to a chest's owner 🐛 Fix fix(selldecay): maturity gate on hand-harvest credit + per-instance credit bridge rebinding🐛 Fix fix: reload completeness, live join-notice resolve, single-stage idle flag🐛 Fix fix(recipe): stop vanilla recipes consuming FoxFarming items (crafting table + Crafter)perf: incremental leaderboard scan, chunk-gated liquid flow, gated market clock, commit-stamped version feat(skilltree): confirm the reset, give Bedrock a real form, group the Elysium costs 🐛 Fix feat(bedrock): native forms for the three chest-only info menus, plus two config-parity fixesfeat(shop): make the farm shop's feedback and its price visible feat(codex): Bedrock forms for field crops, a visible discovery reward, lifetime harvest counts feat: make the farm's progression legible — hub tiles, generated command list, guide topics, harvest feedback feat: un-invert the confirmation friction, and make personal orders actually personal 🐛 Fix fix(bedrock): stop double-rendering entity-backed crops where GeyserModelEngine mirrors them⚖️ Tweak feat(selldecay): surface the hand-harvest credit balancefeat(api): publish orders, Elysium, growstation and skill-tree events (api 1.4.0) 🐛 Fix fix(skilltree): seed the FormMax message key #751 introducedGate the 42 sulfur-caves fish on the phase biome, not a phantom world 🚫 Removed Make debug.disable-debuglogger disable the whole debug logger; audit of #195Read the storage snapshot once per iteration; drop two Gson serialisations from hot paths perf: cache outbound protocol resolver's handler context per channel (#5) Toolchain + CI + unit tests (Gradle 9.7.1, packetevents 2.13.0, GitHub Actions, JUnit) Track region music through WorldGuard's session system; drop WGRegionEvents (#23, #18, #19, #22) Toast + resource-pack awareness: grant-then-revoke, suppress for pack-less Java clients, re-emit only when needed (#21, #20, #25, #33, #36) Playback UX: leave-grace period, last-track memory, per-player volume, vanilla-music stop (#24, #35, #27, #37) Player controls + region-flag audit: /nowplaying, /frm off|on via FoxSettings, /frm regions (#26, #39) Hygiene: config-key drift warning, string lengths, micro-optimisations, proxy hardening, docs drift (#29, #34, #32, #38) sellDecay: expose one seller's unspent hand-harvest credit TransactionLog: batch CSV appends per drain (#137) Sell from the off-hand: include slot 40 in sellable count and removal, drained last (#132) Perf: cache per-Trade derivations; lazy, clone-free menu rendering (#125, #126) ConfirmMenu: clamp amount to live caps (parity with the Bedrock slider); one modifier scan per render (#127, #131) sellDecay ops: resolver TTL caches + reload re-arm + BentoBox softdepend + /shopadmin status section (#128, #129, #130) Bedrock-aware list-menu lore; one combined sell-all line; open-sound parity (#133) Widen bundled pool past every day-group request; warn and preview-flag saturation (#134) PlaceholderAPI: sell-decay multiplier / pressure / grace-left / harvest-credit placeholders (#135) shopadmin list: pagination + display names + search; register: optional id:<name> (#136) 🐛 Fix fix(editmode): point marker direction, preview leakage and stand idsPlacement safety: physics after confirmation, own-half containers, inventory-holder drops, top-down destroy, BentoBox hook (#19 #20 #21 #25 #26 #28 #38) 🐛 Fix Charging & command correctness: selection-world gating, one affordability rule, DEFAULT use on first placement, give fixes, quiet NBT-API (#22 #23 #24 #27 #41 #42)🐛 Fix Hotpaths: batched per-tick charging, lazy region, resolve-once hooks, cheaper selection box, wand pre-filter (#29 #30 #31 #32 #33)Player UX: real limits, forgiving materials + tab completion, /pwe pos1|pos2|sel|clear, feedback + progress, confirm + undo, hex colours (#34 #35 #36 #37 #39 #43 #44) cloakfoxOneBlock
Make market_key compare byte-exact so recent-sales grouping respects case (V34) Gate Bedrock form senders on the player, not on whether Floodgate is installed 🐛 Fix fix(stats): answer "unknown", not zero, when a player's data isn't loaded cloakfoxOneBlock
🐛 Fix fix(stats): add a monotone %wwarp_explored% for timed leaderboards cloakfoxOneBlock
Let a player turn off region and combat music (foxregionmusic.nomusic) cloakfoxOneBlock
Group recent-sales figures by product, not just material (#536) 🐛 Fix fix(commands): count a bag on the cursor or in an open screen as heldStamp the shared foxmarket:key product tag on backpacks Stamp the shared foxmarket:key product tag on fish and rod skins Stamp the shared foxmarket:key product tag on minion eggs 🐛 Fix Fixed hostile mobs not dealing damage in pvp areasellDecay C4c: let prestige scale the global backstop grace too (opt-in) 🐛 Fix fix: return a sentinel for missing-{type} vehicle data instead of throwingStamp the shared foxmarket:key product tag on vouchers cloakfoxOneBlock
✨ New Add /emoji picker GUI so players can browse and use chat emoji🐛 Fix fix: don't let an unreadable vehicle record abort chunk loading cloakfoxOneBlock
Name a minion listing by its type and tier, not "Minion Egg" ✨ New Wire up 91 new Pepe + Meme chat emoji (emoji.yml)🐛 Fix fix: don't overwrite survival armor when respawning into a disabled worldList each bingo cell's catchers on the card view perf: swap the query cache on invalidation instead of clear()-walking it cloakfox fweefOneBlock
Right-click withdraws a bid-less listing, instead of nagging (#450 tail) ⚡ Performance Perf improvements related to crates cloakfoxOneBlock
⬆️ Improvement Improved collection bin info message🐛 Fix Make bare :D, <3 and pasted emoji resolve to pack emoji🐛 Fix Relay chat emoji to Discord as native Unicode or :name:🐛 Fix Render emoji glyphs in their own colours (stop chat colour tinting them)✨ New Show both participants' inline heads on private messages🐛 Fix Draw bingo card cells with the actual fish sprites (off-hand map)✨ New Add challenge mobs for uncontested koth holds✨ New Make the claim announcement clickable: preview the exact trophy⚖️ Tweak Increased total items in /shop rotation on weekdays and weekends⚡ Performance Various perf improvements cloakfoxOneBlock
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) 🐛 Fix Fix command-usage replies, stale config docs, and an unfilled-deadline request race (#340, #342, #353, #354, #355)🐛 Fix Money-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) 🐛 Fix Fix detection false-positives from bin returns, lost cutover ladders, and importer data-loss (#338, #346, #339, #341, #347)🐛 Fix Fix 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)🐛 Fix perf: 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) ✨ New Add /ah price <id> <amount>: reprice a buy-it-now listing in placeEdit 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) ✨ New New-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 ↗ 🐛 Fix Fix /ah search: ESCAPE '!' so the LIKE query parses on MariaDB (error 1064)✨ New Add chat emoji: parse :name: into resource-pack glyphs (Java + Bedrock)✨ New Add Minecraft 26.2 support (cherry-pick upstream)🐛 Fix fix: cancel teleport warmup particles when a warmup is abortedfeat(config): drop the SmartDataUnloader knob that never did anything (#657) feat(field): turn crop discovery into a collection ladder that pays (#646) ✨ New feat(leaderboard): rank several boards, add a resetting one, and tell a player their own rank (#652)🐛 Fix fix(market): stop selling rotating-exclusive items in the permanent shopfeat(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) 🐛 Fix fix(leaderboard): reload re-arm, rank clamp, refresh gate, off-main cache install, period debit (#670 #671 #679 #685 #687)🐛 Fix fix(tournament): registry-first Crops resolution, name leniency, island-reset row merge (#672 #673 #686)🐛 Fix fix(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) 🐛 Fix fix(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) 🐛 Fix fix(papi): survive a PlaceholderAPI reload and re-apply the root alias (#499, #505, #509)🚫 Removed perf(catch): remove the per-catch rod, region and world-gate re-reads (#496, #497, #498)🐛 Fix fix(economy): sanitize the special-fish multiplier and gate the eat payout (#510, #511)🐛 Fix fix(util): declare the codex opt-out, stat messages.yml, carry colour past head tags (#506, #507, #508)🐛 Fix fix(tournaments): isolate the winner firework and escape Discord markdown in names (#512, #515)🐛 Fix fix(totems): fold shared benefits over an active-totem index and share one capacity predicate (#500, #513)🐛 Fix fix(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 ✨ New Add 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 ↗ 🐛 Fix fix(packet-entity): allocate entity ids via packetevents on 26.2perf(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 🐛 Fix fix(collector): match filters and the blocklist on item identity, not Material alone🐛 Fix fix(tasks): respect RestrictedCreative tracking in lumberjack and farmerperf: 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 🐛 Fix fix(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 🐛 Fix sellDecay legibility: visible haircut %, per-rotation notice, and shift/middle sell-all fixsellDecay 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 cloakfoxOneBlock
perf: look up crate locations by field, not by formatted string Persistence: serialize + coalesce data.yml saves (#91) 🚫 Removed Holograms: remove Decent/Fancy/CMI providers (#116 #117 #68 #103)Keys & UserManager API correctness (11 issues) Commands: validation, feedback, tab-completion, transfer, teleport (10 issues) Prize-roll odds & core objects (9 issues) 🐛 Fix Cosmic/War/Casino open mechanics (8 issues) — incl. critical cosmic crashQuad/Mobile/QuickCrate/FireCracker/respin mechanics (9 issues) Crate interaction / open gating / location safety (6 issues) PlaceholderAPI expansion (#93 #118; partial #52) 🐛 Fix Shipped config/resource + message fixes (6 issues)Config/crate migrators (8 issues) Build & CI hardening + first test suite (6 issues) Item rendering / menu display / animation perf (8 issues) data.yml thread-safety + PAPI hardening (#91, #52) Answer mcMMO's simulated breaks instead of acting on them 🐛 Fix fix: refuse unenumerated entity paths that clear a tracked block (#78, part of #79)🐛 Fix fix: hold block changes until tracked blocks finish loading (#15)🐛 Fix fix: suppress protected-block drops before other plugins act on the break (#80)🐛 Fix fix: natural-lifecycle removals — leaf decay dupe, burn/fade stale rows, falling-block swallow (#84, #85, #86)🐛 Fix fix: XP separation acts on the real level bar, not the totalExperience counter (#87)🐛 Fix fix: creation/drops bypass permissions honored, vanilla-only creature geometry (#90, #91)🐛 Fix fix: housekeeping bundle, spawn-egg auto-block, virtual-GUI exemption (#92, #93, #94)perf: hopper holder snapshots, hot-path guard ordering, cached moving limits (#96, #97) 🐛 Fix fix: storage scalability — dedicated inventory connection, chunked batches, WE backpressure (#95)🐛 Fix fix: drop duplicated load-pending mark that broke master's build🐛 Fix fix: port vanilla's build-pattern matcher; reload inventories for online players (#107)perf: cheapen the two hottest guards on BlockPhysicsEvent perf(physics): check isTracked before reading the block's material perf(grid): mix the spatial-hash cell key and store islands in the cells feat: inline player heads in streak-end broadcast ✨ New Add a packet factory for the 26.x game versionsResync upstream 2026 08 🐛 Fix Fix Towny plot-type gating and matcherplus item equality🐛 Fix Fix menu pagination, keeper permission gates, chat-input capture and GUI main-thread scans🐛 Fix Fix reversed-trade bug, tax-account loss, inventory-cache clobber and shop-load data integrity🐛 Fix Fix sign template hijacking, locale handling and render-path waste🐛 Fix Hot-path optimizations: gate the debug logger, kill the matcher clone storm, fix inShop leak🐛 Fix Fix addons killing core tasks, dyesigns permissions, limit resets and web-map marker lifecycle🐛 Fix Fix reload-orphaned display entities, traveller invisibility and interaction-listener cancellationHarden shop lookup-table eviction and extra-key removal Spawn display entities in their final visibility state; bound the despawn watcher 🐛 Fix Fix dyesigns administrator access, BlueMap marker-set churn and migrator loggingReach evicted players in the staff picker; move GUI chat input to the modern event Make the player-finder dedup atomic; drop the unguarded debug stack walk 🐛 Fix Fix single-shop /qs benefit remove threading, spurious dirty and false successDetect unloaded worlds in map addons with isWorldLoaded() Pass both benefit event values to listeners; log ShopLoader extra-key collisions Keep addon-registered shop permissions alive across /qs reload Make DisplayManager removal value-conditional; fire the put event after the mutation Scope single-shop and menu-opening command work to the right Folia scheduler Use Location#isWorldLoaded() for world guards instead of getWorld() null tests Share per-player sign renders instead of re-rendering once per viewer Scope shop-transfer and keeper-menu work to the right Folia scheduler Hoist the shop-side clone in ContainerShop.matches; cache the parsed symbol link Draw the staff picker's candidates from the player profile table, off the render thread; remind while a chat prompt listens Console support, /wwarp help, and a permission node per subcommand Staff moderation commands for warps Optional teleport warmup that cancels on move or damage ✨ New Add /wwarp reload for config.yml and locale.ymlTeleport cooldowns, /wwarp back, and world warp rules Bypass and discount permission nodes for costs, cooldowns and limits ✨ New Search ranking, new sort modes, remembered preferences, online filterMenu search button with anvil/chat input, and a back button on results Featured slot lifecycle: per-slot pricing, extension, auto-renew, expiry warnings Owner analytics, offline visit summary, per-warp toggles Staff featured control and warp-creation sanctions Soft Vault/PlaceholderAPI dependencies and optional per-teleport cost /wwarp top leaderboards and an expanded PlaceholderAPI expansion Waiting queue for a full featured row Move remaining player-visible strings into configuration Warp names and descriptions Server-defined warp categories with a menu filter Warp ratings: visit-gated thumbs with Wilson scoring Public API, read-only warp views, and cancellable events Land-provider integration: creation ownership and entry rules Modernise the locale system: MiniMessage, languages, prefix, per-message off switch Post-merge review pass: auto-renew refund, rename rollback, visit-log migration, queue holds, API future GUI framework: handle-identity registration, no-op heartbeat removal, latent defects Async discipline: events, Vault and PAPI off async threads; featured-queue gates ✨ New Sign core: create-veto ordering, parked worlds, INACTIVE rows, landing safety⚡ Performance Performance: owner index, placeholder caches, lazy costs, cached /wwarp top; locale + prefs fixes🐛 Fix Commands & polish: number parsing, ROOT-locale filters, audit gaps, picker fixes, first-arg completionFollow-ups: locale AUTO misdetection, unrefunded featured-queue holds, dead picker config Config: probe the admin's own file, not the packaged defaults perf: gate the BlockPhysicsEvent handler on the chunk index 🐛 Fix fix(search): anvil search-bar item duplication (open results off the click event)perf(signs): primitive keys for the sign position and chunk indexes Don't reward blocks RestrictedCreative flagged as creative-placed perf(blocks): track transient block marks so the piston failsafe stops asking Bukkit cloakfox fweefOneBlock
🐛 Fix fix: survive a non-numeric patch segment in the server version string🐛 Fix fix: stop shipping vendored classes under their upstream package names cloakfox