File Details
claimmyland-1.20.1-2.5.1.jar
- R
- Apr 10, 2026
- 827.90 KB
- 71
- 1.20.1
- Forge
File Name
claimmyland-1.20.1-2.5.1.jar
Supported Versions
- 1.20.1
Curse Maven Snippet
Changelog for Claim My Land 1.20.1
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
> ⚠️ IMPORTANT — Breaking Change & Backup Warning > > v2.x is not save-compatible with v1.x. Parcel data saved by any v1 release will not load in v2. If you are upgrading an existing world, your claimed parcels will be lost. > > Back up your world before installing v2. Copy your entire world folder to a safe location before upgrading. Once you have loaded the world in v2, downgrading back to v1 is not supported.
> 💡 Recommended: Since this mod is heavily command-based, we recommend using 🔗 Chat Plus for a better command history and larger chat window.
[2.5.1] - 2026-04-09
🎉 Highlights
- Cold-start red borders fixed — parcel borders no longer render red for the owning player on a fresh server + client start when nested parcels exist inside a Nation.
- Overlapping parcel claim prevented — placement tools (CitizenTool, ZoningTool) now correctly block claiming a parcel that visually shows as conflicting with an existing sibling parcel. Previously the conflict preview was client-side only and the server allowed the claim through.
- Placement blocks preserved on failed Zone claim — Zone placement blocks are no longer removed when a Zone claim fails due to conflict. Players can reposition and retry without replacing the blocks.
🐛 Fixed
Committed parcel borders render red on cold server + client start —
onChunkWatchwas callingresolveConflictState()on already-committed parcels when sending border visibility to joining players.resolveConflictState()is designed for Foundation Stone placement preview only; when called on committed parcels with nested children (e.g. Zones and Citizens inside a Nation), it incorrectly returned conflict1because the child parcels overlap the parent's box without being the same parcel. Fix: passconflictState=0unconditionally for committed border stone visibility inonChunkWatch. Preview parcels (Foundation Stone not yet claimed) still callresolveConflictState()correctly since they are handled byFoundationStoneBlockEntityevents, notonChunkWatch. Likely also present in Forge 1.20.1 branch.Overlapping sibling parcel claim allowed via CitizenTool and ZoningTool —
claimWithinZone()inCitizenParcelandPlayerParcel, andhandleEmbeddedClaim()inZoneParcel, were missing a direct box overlap check against sibling parcels. Only buffer zone checks were performed, so a directly overlapping same-owner same-type sibling was never caught —ParcelConflictResolver.isConflict()returnsfalsefor same-owner same-type pairs, and the buffer check alone does not cover direct overlap. Fix: addedParcelHelper.checkDirectSiblingOverlap()and called it from all three claim paths before the buffer checks. The helper takes anexcludeZonesparameter —truefor Citizen/Player (zone is a valid parent, not a conflict),falsefor Zone (sibling zones inside a Nation must be checked against each other). Likely also present in Forge 1.20.1 branch.Zone placement blocks removed on failed claim —
ZoningTool.handleZoneCreation()calledclear()unconditionally aftertryCreateZoneParcel()regardless of whether the claim succeeded or failed. Fix:tryCreateZoneParcel()now returnsInteractionResult.CONSUMEon success andInteractionResult.SUCCESSon failure;handleZoneCreation()only callsclear()and removes item tag coords onCONSUME. Players whose Zone claim fails due to conflict now retain their placement blocks and receive an appropriate failure message.Citizen placement blocks removed on failed claim —
CitizenTool.tryCreateCitizenParcel()always returnedInteractionResult.SUCCESSregardless ofClaimResult, andhandleParcelCreation()cleared placement blocks and item tag coords unconditionally after the call. With the v2.5.1checkDirectSiblingOverlap()fix now surfacing real failure results fromclaimWithinZone(), this caused players to lose both Citizen placement blocks on a failed claim. Fix:tryCreateCitizenParcel()now returnsInteractionResult.CONSUMEon success andInteractionResult.SUCCESSon failure;handleParcelCreation()only callsclear()and removesCOORDS1/COORDS2onCONSUME. Mirrors the v2.5.1 ZoningTool fix. Likely also present in Forge 1.20.1 branch.
🔧 Technical Notes
onChunkWatchiteratesActiveBorderStoneRegistrywhich tracks Border Stones only — Foundation Stone preview parcels never appear here, so the unconditionalconflictState=0is safe for all parcels reached via this path.ParcelHelper.checkDirectSiblingOverlap()mirrors the direct overlap logic inParcel.handleClaim()for top-level parcels, closing the parity gap between top-level and embedded claim validation.excludeZones=trueis the safe default for the convenience overload — Citizen and Player parcels should never treat a containing Zone as a sibling conflict.ZoningTool.tryCreateZoneParcel()previously always returnedInteractionResult.SUCCESSregardless ofClaimResult— the distinction between success and failure now relies onCONSUMEvsSUCCESSso callers can guard cleanup correctly.
Requires GottschCore v2.6 or later.

