File Details
GriefPrevention3D v18.2.1
- R
- Jul 1, 2026
- 907.58 KB
- 4
- 26.2+45
File Name
GriefPrevention3D.jar
Supported Versions
- 26.2
- 26.1.2
- 26.1.1
- 26.1
- 1.21.5-Snapshot
- 1.21.11
- 1.21.10
- 1.21.9
- 1.21.8
- 1.21.7
- 1.21.6
- 1.21.5
- 1.21.4
- 1.21.3
- 1.21.2
- 1.21.1
- 1.21
- 1.20.3-Snapshot
- 1.20.5-Snapshot
- 1.20.6
- 1.20.5
- 1.20.4
- 1.20.3
- 1.20.2
- 1.20.1
- 1.20
- 1.19.4
- 1.19.3
- 1.19.2
- 1.19.1
- 1.19
- 1.18.2
- 1.18.1
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
- 1.11
- 1.10
- 1.9
- 1.8.3
- 1.8.1
- 1.8
v18.2.1: fix duplicate claims in /claimlist causing negative claim blocks
GriefPrevention3D v18.2.1
Wiki: GriefPrevention3D Wiki
Fixes
/claimlist no longer shows duplicate claims; claim blocks no longer go negative
Fixed a bug where a player's claims could appear duplicated in /claimlist and their available claim blocks would drift negative. The issue affected players after logout or server restart (whenever their PlayerData was freshly created).
Root cause: DataStore.addClaim() added the claim to the global this.claims list first, then called ownerData.getClaims(). When the player's PlayerData was newly created (claims vector == null), getClaims() lazy-initialized by scanning this.claims — finding the same claim — then the caller added it a second time. Each duplicate caused getRemainingClaimBlocks() to subtract the claim's area twice, and /claimlist showed the claim twice.
The same bug existed in changeClaimOwner() (claim transfer).
Fix: Guard both .add() calls with a contains() check so a claim is never double-added to the owner's vector after lazy init already picked it up.
DataStore.java:addClaim()andchangeClaimOwner()now check!ownerClaims.contains(claim)before adding.