Kingdoms
- Give each achievement its own advancement icon and branch the tree
- Announce achievements in the vanilla advancement style
- Ignore statistics of players that never joined the server
OneBlock
- Right-click withdraws a bid-less listing, instead of nagging (#450 tail)
- ⚡ PerformancePerf improvements related to crates
cloakfox
fweefOneBlock
- ⬆️ ImprovementImproved collection bin info message
- 🐛 FixMake bare :D, <3 and pasted emoji resolve to pack emoji
- 🐛 FixRelay chat emoji to Discord as native Unicode or :name:
- 🐛 FixRender emoji glyphs in their own colours (stop chat colour tinting them)
- ✨ NewShow both participants' inline heads on private messages
- 🐛 FixDraw bingo card cells with the actual fish sprites (off-hand map)
- ✨ NewAdd challenge mobs for uncontested koth holds
- ✨ NewMake the claim announcement clickable: preview the exact trophy
- ⚖️ TweakIncreased total items in /shop rotation on weekdays and weekends
- ⚡ PerformanceVarious 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)
- 🐛 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
cloakfoxOneBlock
- perf: look up crate locations by field, not by formatted string
- Persistence: serialize + coalesce data.yml saves (#91)
- 🚫 RemovedHolograms: 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)
- 🐛 FixCosmic/War/Casino open mechanics (8 issues) — incl. critical cosmic crash
- Quad/Mobile/QuickCrate/FireCracker/respin mechanics (9 issues)
- Crate interaction / open gating / location safety (6 issues)
- PlaceholderAPI expansion (#93 #118; partial #52)
- 🐛 FixShipped 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
- 🐛 Fixfix: refuse unenumerated entity paths that clear a tracked block (#78, part of #79)
- 🐛 Fixfix: hold block changes until tracked blocks finish loading (#15)
- 🐛 Fixfix: suppress protected-block drops before other plugins act on the break (#80)
- 🐛 Fixfix: natural-lifecycle removals — leaf decay dupe, burn/fade stale rows, falling-block swallow (#84, #85, #86)
- 🐛 Fixfix: XP separation acts on the real level bar, not the totalExperience counter (#87)
- 🐛 Fixfix: creation/drops bypass permissions honored, vanilla-only creature geometry (#90, #91)
- 🐛 Fixfix: 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)
- 🐛 Fixfix: storage scalability — dedicated inventory connection, chunked batches, WE backpressure (#95)
- 🐛 Fixfix: drop duplicated load-pending mark that broke master's build
- 🐛 Fixfix: 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
- ✨ NewAdd a packet factory for the 26.x game versions
- Resync upstream 2026 08
- 🐛 FixFix Towny plot-type gating and matcherplus item equality
- 🐛 FixFix menu pagination, keeper permission gates, chat-input capture and GUI main-thread scans
- 🐛 FixFix reversed-trade bug, tax-account loss, inventory-cache clobber and shop-load data integrity
- 🐛 FixFix sign template hijacking, locale handling and render-path waste
- 🐛 FixHot-path optimizations: gate the debug logger, kill the matcher clone storm, fix inShop leak
- 🐛 FixFix addons killing core tasks, dyesigns permissions, limit resets and web-map marker lifecycle
- 🐛 FixFix reload-orphaned display entities, traveller invisibility and interaction-listener cancellation
- Harden shop lookup-table eviction and extra-key removal
- Spawn display entities in their final visibility state; bound the despawn watcher
- 🐛 FixFix dyesigns administrator access, BlueMap marker-set churn and migrator logging
- Reach 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
- 🐛 FixFix single-shop /qs benefit remove threading, spurious dirty and false success
- Detect 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
- ✨ NewAdd /wwarp reload for config.yml and locale.yml
- Teleport cooldowns, /wwarp back, and world warp rules
- Bypass and discount permission nodes for costs, cooldowns and limits
- ✨ NewSearch ranking, new sort modes, remembered preferences, online filter
- Menu 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
- ✨ NewSign core: create-veto ordering, parked worlds, INACTIVE rows, landing safety
- ⚡ PerformancePerformance: owner index, placeholder caches, lazy costs, cached /wwarp top; locale + prefs fixes
- 🐛 FixCommands & polish: number parsing, ROOT-locale filters, audit gaps, picker fixes, first-arg completion
- Follow-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
- 🐛 Fixfix(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
- 🐛 Fixfix: survive a non-numeric patch segment in the server version string
- 🐛 Fixfix: stop shipping vendored classes under their upstream package names
cloakfoxParkour
- feat(showcase): looping first-person replay showcase for streaming
- feat(showcase): put other runners on the map behind the showcased run
- feat(showcase): give the stream the runner's own hands
- feat(showcase): give the stream the runner's own hands
- 🐛 Fixfix(modes): re-check game state across five async seams
- perf(db): index the hot read paths, sample replays without RAND(), log the ids errors discard
- 🐛 Fixfix(persistence): order offline economy writes after the quit-save and stop dropping grants
- ⚖️ Tweakperf(protocol): stop paying for packets and ray traces nothing changed or nobody sees
- 🐛 Fixfix(threading): keep async chat, netty tab-complete and PAPI threads off live main-thread state
- 🐛 Fixfix(showcase): honor external teleports in every state and cancel abandoned world-load arrivals
- 🐛 Fixfix(bedrock): make every right/shift-click menu action reachable by tap
- 🐛 Fixfix(config): honor the keys the config actually ships, and reload what reload missed
- 🐛 Fixfix(ops): stable difficulty persistence, bounded shutdown drain, and loud failure paths
- perf(text): render once, splice the dynamic part, and stop copying replay ticks
- feat(stats): surface the map's first finisher, drop the dead machinery around it
- 🐛 Fixfix(lang): localize /fp stats, FormattingUtils tokens and the clickable chat buttons
- 🐛 Fixfix(buildmode): harden party-build menu actions against concurrent edits, plus three review byproducts
- feat(showcase): ride the phantom in puppet mode and mirror sprint FOV
- 🐛 Fixfix(showcase): stop off-body cosmetics flashing the POV camera; rotation-preserving body sync for the first-person hand
- feat(showcase): reconstruct the run's sounds for the stream
- feat(showcase): hand run-sway, offhand map-info card, checkpoint particles, footstep volume
- feat(showcase): PAPI placeholders for stream overlays
- 🐛 Fixfix(duel): always show a duelist their opponent, whatever their "show players" preference
- 🐛 Fixfix(showcase): stop writing the viewer's own rotation, which cost the first-person hand
- feat(showcase): hold the map-info card for 10s (split out of #766)
- 🐛 Fixfix(portals): pass only the teleport flags the server accepts
- 🐛 Fixfix(showcase): give back only the hide the showcase took, and notice a refused body sync
- 🐛 Fixfix(join): treat a login inside a parkour as the parkour enter it is
- 🐛 Fixfix(settings): say what a preference click actually did
- 🐛 Fixfix(visibility): release the hides that were placed, not the ones re-derived
- 🐛 Fixfix(showcase): warn when the operator cannot be drawn a first-person hand
- feat(showcase): restore the reconstructed hand sway
- feat(showcase): reconstruct ladder/climbing step sounds for the stream
- 🐛 Fixfix(showcase): stop silencing sneak-walk footsteps
- 🐛 Fixfix(cmd): command feedback, arg validation, and wipe/delete correctness (#786–#797)
- 🐛 Fixfix(utils): effect-loop safety, invisibility cleanup, custom-item containment, locale-safe formatting, biome perf (#832–#841)
- 🐛 Fixfix(replay/nms): redeliver mount variants, wire mount preview, tolerant phantom glow, spectator-scope (#798,#799,#822,#824–#826)
- 🐛 Fixfix(data): schema-scoped safety nets, atomic YAML saves, error sentinels, tolerant enums, configurable pool (#803–#808)
- 🐛 Fixfix(social): xp-boost recovery, stable map-of-the-day, playlist feedback, reserved subdomains, chain-tick perf (#820,#827–#831)
- 🐛 Fixfix(core): placeholder last-known-good, ban-wipe session lock, persistent cosmetic unequip (#800–#802)
- 🐛 Fixfix(menu): malformed-action guard, off-main teleport, dialog recovery, Bedrock forms, N+1 (#809–#811,#813,#814)
- 🐛 Fixfix(modes): run-resume race gate, volatile run state, browse-session guard, elimination+particle perf (#815–#819,#821)
cloakfoxOneBlock
- 🐛 FixFix NoSuchMethodError on servers older than the compile target
- Sjoelen: discs stay on the lane, collide, and chain through gates
- Don't mangle hex written inside MiniMessage tags
Survival
- Harden biome cache & generation path (#35, #36, #37, #40, #41, #43, #45)
- ✨ NewUnify teleport finishing, refund failed teleports, add /wtp reload (#38, #47, #48)
- ⚡ PerformanceOptimize event hotpaths; route sign biomes, portals & GUI (#39, #42, #44, #46, #49, #50)
cloakfoxOneBlock
- feat: cap hanging entities (item frames, paintings) per chunk
- perf: bound how long a jobless villager is kept active to claim a job
cloakfoxOneBlock
- 🐛 FixBump RoseGarden to 1.5.7 to fix version parsing on MC 26.2
- Hide particles for players watching a ServerTours tour
cloakfoxOneBlock
- Harden the pre-existing config entries so a typo cannot take the plugin offline
- 🐛 FixWrite the two config keys no migration patch ever adds
Survival
- 🐛 FixFix database backend failing when VERSION() carries a vendor suffix
cloakfoxOneBlock
- 🐛 Fixfix: v26_2_R1 entity-ID acquisition for final MC 26.2
- 🐛 Fixfix: v26_2_R1 IllegalAccessError on Mob.goalSelector (prod spawner breakage on 26.2)
- 🐛 Fixfix: chicken-jockey death recursion crashes the server (StackOverflowError)
- 🐛 Fixfix: shared damage kills the live jockey pair once per virtual stack member
cloakfoxOneBlock
- Tolerate non-numeric tokens when parsing the Bukkit version string
- 🚫 RemovedMC 26.2: native adventure converter fails class-init — BinaryTagHolder.of removed in adventure 5
- 🐛 FixFix MC 26.2 locking all ender chests (NMS availability probe)
- ✨ NewAdd MC 26.2 support via dedicated 26_2_R1 NMS module
- ✨ NewAdd MC 26.2 support: version range, banner, and Sulfur Cube head
- ✨ NewAdd Paper 26.2 support
- ✨ NewAdd MC 26.2 support module; fix 26.x routing and enable-failure NPE
- 🐛 FixFix MCVersion NPE on MC 26.2 and add unknown-version fallback
cloakfox