JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser .
perf: three hot-guard trims from the Sep 23 oneblock profile
test: pin boundary-check order, returns delivery pass and island-sweep decisions (#125)
🐛 Fix
fix(messages): missing keys use bundled text; stamp commit in version
🐛 Fix
fix(ledger): share one store base; guard pending-returns.yml
✨ New
test(snapshot): extract rollover state machine; add unit tests and CI
🐛 Fix
fix(trophies): keep trophies out of recipes and trades; stack to 1
🐛 Fix
fix(trophies): let held trophies use blocks; trim two hot paths
feat(events): event trophies via grant; tell players when granted
feat(claim-menu): keep menu open, Claim all, Bedrock details and Back
feat(trophies): /trophy alias, a usage lore line and a first-claim tip
🐛 Fix
fix(trophies): never drop a returned trophy; keep it owed until it fits
🐛 Fix
fix(podium): crown only real scores, mark ties, read all-time top-N
feat(announcements): trophy deadlines, join nudges, rollover digest
feat(hub): /trophies hub; /trophies last lists last period only
🐛 Fix
fix(trophies): return trophies from reset or deleted BentoBox islands
feat(snapshot): final capture before each reset, confirm right after
feat(moderation): eligibility rules, disqualify/requalify, safe revoke
🐛 Fix
fix: review residuals — DST previous period, capture read, exact tie warning, tie-out rows, name refresh (#125)
test: RewardConfig, RotationSchedule and reconcile-gate coverage; ajLB stub on the test classpath (#124)
perf: world-config lookup by reference, session read before computeIfAbsent
feat(api): cosmetic work visuals for automation working a field crop (api 1.7.0)
⚖️ Tweak
perf(fieldcrops): raise SHARD_COUNT 64 -> 256, scale the reshard wait
🐛 Fix
fix(skilltree): convert PyroFarming Skill Archives and free stale archive slots (#815)
thread
🐛 Fix
fix(shop): stop paying the price on the item for sell ids nothing defines (#816)
Persist seasonal event armings and hunt state across restarts (#587)
Bingo: an expired round counts as the round a back-to-back winner sits out
thread
Biomes & pools: port the live biome rename, opt-in legacy aliases, dead gates and Nether-only fish out of the draws (#615, #631)
Bingo: safer defaults, join notice + deadline, back-to-back disclosure, Bedrock where-to-catch, /fish bingo status (#597, #621, #622, #623, #625)
Baits & HUD: combo/bait/booster placeholders, removebait confirm, Bedrock shop lore, bait mapping doc (#619, #673, #683, #684)
Augments & rod skins: Bedrock recipe pages, cauldron ownership + Bedrock tap, salvage sink, re-skin owned rods (#594, #611, #612, #657, #659, #661)
Tournaments: own-standing placeholders, Bedrock %center%, reachable RANDOM_CATCH targets, quiet empty rounds, offline winners, /ft help (#624, #626, #656, #658, #660, #679)
Catch pipeline: bait-use switch, crouched reel, hot-path copies, combo switch, tsunami lore, Star Fall spawn, biome-at-hook (#596, #613, #614, #616, #617, #618, #620)
Deliveries: contained reward, join reminder, hand-in detail, fish-bag hand-in, Bedrock transit, removedelivery numbers, opt-in knobs (#600, #602, #633, #634, #635, #636, #637, #638, #639, #675, #685)
Economy: bulk sell/gut, sale preview, Fish of the Day visibility, scales net, locale-safe tokens (#602, #632, #640, #641, #642, #643)
Reload & config: pre-flighted reload, full validate coverage, health diagnostics, operator docs (#601, #644, #645, #646, #647, #648, #650, #652, #654)
Shellstice: refuse the orb spend while the event is not running (#589)
Fish of the Day: pick only fish everyone can catch (#585)
Totems: break room check, claim probe, ghost anchors, admin tooling, Bedrock detail, deposit order (#595, #603, #604, #605, #606, #607, #608, #609, #610, #655)
#428 follow-ups (#425 group): adventureLinkage flags only ClickEvent.Action switches, totalCap wording, idle-lines lore
Perf quick wins: snapshot-free editor holder lookups (#374), boss bar name dirty-check (#376)
Round-end rewards: capture-end on round end, raw username tokens, offline SCORE rewards, end-reward to the member on the point, CaptureEnd pairing (#362, #363, #364, #371, #372)
Contest modes and zone feedback: payload owner release, no zombie reinforcements, %progress_owner%/%state%, in-zone action bars (#365, #366, #389, #380)
Team rewards, AFK/flying/vehicle eligibility, SCORE team handover (#383, #397, #398)
Teams, leaderboards & DB: BentoBox island keys + display names, warm win caches/boards, DB auto-reconnect & write retry, pool defaults, placeholder docs
Config & schedules: refuse saves over hand edits, reload validation, schedule list/preview/fire, weighted/shuffled/pre-drawn draws, restart awareness (#367 #368 #373 #399 #400 #401 #396)
Broadcast scope + player controls: broadcast-distances, /koth toggle, sound category, leading-edge swap-settle, player /koth status + join notice + /koth warp (#377 #378 #381 #384 #385)
thread
Player info: /koth next, objectives and reward previews, typable list names, labelled clocks, idle holograms (#379 #382 #386 #390 #391 #392)
🐛 Fix
Bedrock & editor fixes: Floodgate-aware Bedrock detection, Bedrock-safe palette, CONFIRM/completion/givestarter fixes, legacy-chat prompt capture (#387, #388, #402, #369)
Build on the 26.2 API (JDK 25 toolchain), current JDBC libraries + JDK HttpClient webhooks, git version stamp (#406 #407 #408)
Bedrock /koth form menu (Floodgate/Cumulus, optional) + clear the Bedrock cache at join (#386, #418, #420)
Rewards follow-ups: pending-rewards file safety, own-token offline holds, [now]/[once] reward markers, honest fallback warnings (#420)
Player surface follow-ups: combat tag, warp and join notice, toggle, setwarp flag, %warp_hint%, next/list, objectives, placeholder text (#420)
#420 follow-ups: zone modes, BentoBox team keys, win cache races, database notes
🐛 Fix
#420 follow-ups: editor controls for idle lines and the rewards display, shadowJar/linkage build fixes, webhook text limits
Scheduler follow-ups (#420): console schedule editing, draw memory across restarts, resume interrupted rounds, #415/#417 review notes
#428 rewards follow-ups: pending-rewards header tokens, markers in front of TOP:, no empty reward lines, honest rewrite warning, copy seam
#428 follow-ups for #424: migration retry wording, foxkoth_meta probe, overlap-slot claims, doc corrections
🚫 Removed
#428 scheduler follow-ups: draw-memory persistence, resume countdown, schedule verbs, resume/disable wording
Player surface follow-ups from the #423 review: /koth toggle order, rewards-display warning and top-level scalars, %warp_hint% threading, docs (#428)
🚫 Removed
Bedrock forms follow-ups: pin the adapter's callers, text fallbacks, quiet disable race, pinned Floodgate API (#428)
feat: /lootin purge for data files whose container is gone
🐛 Fix
fix: make container storage durable and race-free
🐛 Fix
fix: loot generation fills, reads and clears the same slots
🐛 Fix
fix: protect loot containers from break dupes, hoppers and merges
🐛 Fix
fix: track elytra frames on every load and keep the packet thread off Bukkit
🐛 Fix
fix: config fallbacks, /lootin info and test, and dead code cleanup
🐛 Fix
fix: storage follow-ups: unreadable files, shutdown writes and Folia races
🐛 Fix
fix: one open event before any change, and a capture that survives hoppers
🐛 Fix
fix: keep golems out, and settle breaks only once they happen
🐛 Fix
fix: optional PacketEvents, and elytra tracking that survives reloads
🐛 Fix
fix: Spigot 1.20.3+, Folia GUI saves at disable, and dead code
🐛 Fix
fix: copies get their own data, and destroyed data is kept for restores
perf(chunkloader): copy the destination grid only for the furnace and crafter gates
feat(fishing): require water near a fishing minion and tell the owner when it has none (#465)
feat(farmer): keep swinging at FoxFarming crops between work ticks
🐛 Fix
fix(menu): no "connect chest" button on chunk loaders (#468)
🐛 Fix
fix(packet): only send a team REMOVE to a client that holds the team (#469)
🐛 Fix
fix(collector,slayer): work the square the range flames show, not a sphere (#470)
Address the wave dungeon review leftovers (#3)
✨ New
Add co-op wave dungeon mode to arenas
🚫 Removed
Elysium notes: /withdraw elysium via FoxFarmingAPI, shipped disabled (#95)
Protect vouchers from vanilla mechanics and accidental block redeems; cheaper interact path (#74 #75 #82 #93)
🐛 Fix
Fix /voucher give lookup and feedback; run Tebex voucher commands only after payment; correct /xpbottle %amount% (#76 #77 #78 #81)
Report config.yml gaps instead of rewriting it; accept flat sound entries; migrate lang.yml defaults; upgrade runbook (#80 #79)
Single-transaction redeem, batched note/bottle mints, indexes, recipient/source columns (#83 #84)
/withdraw and /xpbottle: amount shorthand, all/max, informative bare commands, aliases, /vouchers help (#86 #87 #88 #94)
Specific error messages with refs, the live lang keys, redeem messages, richer requirements (#90 #91 #96)
Bedrock: confirm form names the voucher; forms for bare /withdraw and /xpbottle; redeem tip (#92)
Configurable cash note / XP bottle templates; custom-model-data, item-model, glint and flags (#90 #98 #86 #93)
Admin tools (/voucher inspect, lookup, revoke, restore, history, stats, validate), load-time config validation, /vouchers check (#97 #99 #84 #93)
Queue overflow instead of dropping it; /vouchers claim; join notices; deliver to the live session (#89)
Sneak to bulk-redeem; /withdraw merge and /xpbottle merge; confirm-menu-default and per-voucher bulk: false (#85)
feat(search): find warps by what their QuickShop shops sell (#214)
🐛 Fix
fix(search): keep CHAT-mode search answers out of legacy chat plugins (#177)
🐛 Fix
fix(stats): durable explored credits, empty-until-loaded placeholder, lock-index unloaded-world throw (#179 #180 #181)
perf: load warp destinations asynchronously; never sync-load neighbours for safety checks (#184, #187)
🐛 Fix
fix: main/sub swap side effects — ratings/categories in memory, owner-level bump cooldown, ban and whitelist (#194 #195 #196)
perf: exact lookup first in the physics handler; gate the lock guards by locked-sign reach (#185, #186)
Owner lookup: no Mojang calls, Bedrock/nickname/prefix matching, suggestions, /pw aliases
🐛 Fix
fix(featured): carry paid slots through moves, no charges for locked warps, feed the queue, honour free prices
🐛 Fix
fix: leaderboard sort race, cooldowns across relog, vanished visitors, self-favourites (#182 #197 #198 #199)
perf: menu item template churn and placeholder/PAPI cache leftovers (#188, #189)
feat: mark, sink and explain locked warps; skip them in random (#209)
🐛 Fix
fix(ux): literal commands in click messages, reasons in dead-end errors, help/label consistency (#204 #210 #211)
chore(logs): one-line boot hints, /wwarp admin purge-inactive, configurable Hikari lifetimes (#217)
✨ New
Warp creation UX: lenient [welcome], create/delete how-to, keep warp on header edit, visible descriptions, unsafe-warp notices
Bedrock forms (Floodgate), My warp hub, confirm before paid actions (#200 #201 #202 #203)
Menu: configurable favourite clicks, page indicator, fuller grid (#208, #215)
feat(search): Paper dialog search prompt for Java players (#201 Java half)
feat(bedrock): commands form for /pwarp help, settings form for /pwarp toggle (#211)
🐛 Fix
fix(label): typed label kept by buttons and single-reader clicks, broadcasts on the default label; no hard-coded labels in messages (#241)
🐛 Fix
fix(purge-inactive): report every row at shutdown, no stack trace on a stop, accurate boot summary (#239)
🐛 Fix
fix(teleport): re-check bans and locks after the async destination load (#240)
🐛 Fix
fix(featured): refund flags need admin.featured; no dead-end featured offers; release stranded slots with a refund (#237 #238 #244)
🐛 Fix
fix: owner lock follows the main role; management and creation UX leftovers (#236 #243)
🐛 Fix
fix(bedrock): forms follow-ups — parity, confirm price pinning, refusal notices, status consolidation (#242)
🐛 Fix
fix(search): item search follow-ups — exact names above sellers, trusted names, coverage, freshness, /pwarp shop fallback (#245)
🐛 Fix
fix(menu): fill menu placeholders in one pass so player-typed values stay literal (#254)
feat(duel): watch past duels back — both runs, racing again
🐛 Fix
fix(menu): Bedrock form buttons re-check the session; an unbuildable form falls back to the chest (#1224, #1226)
🐛 Fix
fix(menu): paginated rows go where the layout says, not wherever firstEmpty() points (#1222)
🐛 Fix
fix(menu): open() says whether it opened; MenuHandler.tryOpen replaces the copied guards (#1221)
🐛 Fix
fix(menu): a biome picker older than /fp reload says so when its pick is withdrawn (#1225)
test(build): drive the biome picker end to end; tidy its leftovers (#1223, #1227)
🐛 Fix
fix(duel): replay browser reads map/order from the DB; map "delete replays" purges archived duel runs; shared spectate teardown (#1235, #1240, #1260, #1245)
🐛 Fix
fix(shop)/feat(cosmetics): charge only the shown price after /fp reload; tags re-read limits; earned-only cosmetics (#1258, #1257, #1217, #1216, #990)
🐛 Fix
fix(menu): missing or broken menus.yml sections use the jar's; menus checked once at load; one bundled-file cache and one warn-once hook (#1255, #1243, #1228, #1218, #1248)
🐛 Fix
fix(play/newcomer): dismounting a minecart keeps the run; browse picks while spectating start; starter playlist skips a bad map (#1252, #1241, #1259, #1231)
🐛 Fix
fix(menu): every menu form refuses a dead session; leaving build mode answers the form on screen (#1234, #1237, #1244, #1249, #1254)
🐛 Fix
fix(menu): chest clicks handled a tick after InventoryClickEvent; paginated load failures, empty server pages, placement policy, rowSlots, Replacer race (#1247, #1251, #1250, #1256, #1246, #1253)
Merge upstream 12.0 and keep the public API for FoxKingdoms
🐛 Fix
fix: claim-command UX - overdrawn shrink, abandon prompts, resize detail, paged /claimslist (#459, #460, #465, #466, #468, #470, #477, #494, #495, #496)
🐛 Fix
test: fix two intermittent test failures (IgnoreLoaderThread mock race, weakly-held mock worlds)
🐛 Fix
fix: claim protection vs copper golems, raids, bone-mealed trees, brushing and arrow buttons (#458, #473, #474, #475, #476)
🐛 Fix
fix: grant-only trust inherits and honours public; stick and denial-hint fixes (#461, #462, #481, #482, #492)
🐛 Fix
fix: save the name directory, index giant claims per cell, trim hot-path costs (#455, #464, #478, #479, #484, #485, #486, #487, #488)
🐛 Fix
fix: marketplace offer integrity, plot-sale keep-out, post-settlement transfer event and /giveclaim (#454, #463, #472, #483)
🐛 Fix
fix: trust names, keywords, all-claims confirm and trust-menu follow-ups (#456, #457, #467, #469, #471, #480, #489, #490, #491, #493)
🐛 Fix
fix(users): run player-record continuations on the player's thread
🐛 Fix
fix(chat): bump MineDown to 1.7.6 so messages parse on Adventure 5
🐛 Fix
fix(members): resolve targets from the team roster; rank-check kicks
🐛 Fix
fix(gui): confirm destructive GUI actions and ask for the team name
🐛 Fix
fix(teleport): GUI + cross-server home/warp routing, warmup cooldown
🐛 Fix
fix(sync): harden broker messaging and pin connection-bound settings
🐛 Fix
fix(hooks): correct PAPI values and LP team-name; index team names
🐛 Fix
fix(invites): invite lifecycle, /team accept, join fees, owner limits
🐛 Fix
fix(economy): create fee gate, shutdown-safe payouts, money format, bank
feat(naming): word filter, normalised name checks, rename fee+cooldown
🐛 Fix
fix(teams): guard disband, drop stale chat toggles, check /tc mutes
🐛 Fix
fix(team-list): page lazily, add search, stop the head lookup 429 storm
🐛 Fix
fix(combat): block potion friendly fire, add ally accept, fix teamview
🐛 Fix
fix(messages): MineDown-escape player text, literal names, &#RRGGBB
🐛 Fix
fix(storage): flush only changed teams, queue kill deltas, guard replays
feat(commands): generated /team help, forgiving input, no @Values dumps
🐛 Fix
fix(echest): replay chest saves, close revoked views, tidy backups
🐛 Fix
feat(admin): inactive-team cleanup; fix /ta team, API checks, last_login
✨ New
feat(teams): add join requests, /team who, stats, roles, chat toggle
feat(gui): Floodgate forms for Bedrock players in the team menus
🐛 Fix
fix(storage): report failed deletes, retry loads, evict missing rows
🐛 Fix
fix(messages): correct default texts and misleading command replies
🐛 Fix
fix(teams): save setting changes by CAS, tell members, add API events
Perf/26.3 rtp search
Landing safety: judge feet/head by collision, not "is air" (#89)
Never overwrite an unparseable config.yml; back up before updates (#123)
FoxKingdoms hook reads the in-memory claim registry; drop Towny (#94, #95)
Round 4 (1/7): LF line endings, one Java 21 jar for all servers, commit-stamped version, tests + CI (#120 #121 #122)
Round 4 (2/7): portals fire on the block entered, portal use permission, safe Portals.yml, portals in unloaded worlds (#98 #101 #102 #103)
Round 4 (3/7): one teleport pipeline for every entry point; economy, /wild <player>, outcome stats (#78 #79 #80 #81 #82 #83 #99 #107 #110 #112 #114 #119 #126 #127 #128)
🚫 Removed
Round 4 (4/7): config and lifecycle safety: unknown-key warnings, no-region warning, safe config updates, debug interceptor, disable cleanup (#115 #117 #118, parts of #125 #133)
Round 4 (5/7): messages: lang file migration, complete translations, MiniMessage/hex, player help, Bedrock form info, sign/icon checks (#104 #105 #106 #108 #109 #111 #113 #116)
Round 4 (6/7): claim hooks: area queries, one guarded filter per hook, FactionsUUID 4, uncovered-plugin warning (#96 #97 #100)
Round 4 (7/7): location generation and biome index: packed index, world border, landing biome, world lifecycle, ceilings, validation (#84 #85 #86 #87 #88 #90 #91 #92 #93 #125 #133)
Follow-ups (1/6): portals: list malformed entries, riders trigger portals, reload keeps unsaved portals (#145 #149)
Follow-ups (2/6): teleport pipeline: dead or leaving targets, refusal hints, teleport errors, clearer /wild replies (#148 #149)
Follow-ups (3/6): messages: prefix colour carries over, blanked lines send nothing, lang migration edge cases (#148 #149)
Follow-ups (4/6): claim hooks: Residence 5.0.2.1+ per-chunk lookup, FabledKingdoms empty lands, KingdomsX verified, "try again later" when checks go unanswered (#144 #149)
✨ New
Follow-ups (5/6): lifecycle: one safe file writer (fsync, own temp file, permissions, dangling links), interceptor restore, clean refusal of a same-instance re-enable (#148 #149)
Follow-ups (6/6): biome index: /wtp reindex, coarse index for huge regions, configurable border margin, moving border, hyphenated datapack biomes (#141 #142 #143 #148 #149)