Tags
Creators
Details
1.1.12
Compatibility
Required content
Changes
GPExpansion v1.1.12
Fixes GPExpansion's PlaceholderAPI expansion silently shadowing the eCloud GriefPrevention expansion. The identifier moved from griefprevention to gpx.
Breaking Changes
- All GPX placeholders are renamed. Any scoreboard, tab, chat, or hologram config referencing the old
%griefprevention_*%names will render them raw until updated. See the migration table below.
Bug Fixes
PlaceholderAPI namespace collision
GPXPlaceholderExpansion registered under the identifier griefprevention, the same one used by the eCloud GriefPrevention expansion. PlaceholderAPI resolves one expansion per identifier, so whichever registered first won the namespace and the other was dropped.
When GPX won, every eCloud placeholder it did not itself implement stopped resolving and printed raw — %griefprevention_currentclaim_ownername%, %griefprevention_claims%, %griefprevention_claimblocks%, and the rest. The subset GPX did implement kept working, which is what made the failure look arbitrary: %griefprevention_currentclaim_claimname% resolved while %griefprevention_currentclaim_ownername% beside it did not.
The identifier is now gpx. Both expansions can be installed side by side, each owning its own namespace.
Migration
| Old | New |
|---|---|
%griefprevention_in_claim% |
%gpx_in_claim% |
%griefprevention_currentclaim_claimid% |
%gpx_currentclaim_claimid% |
%griefprevention_currentclaim_claimname% |
%gpx_currentclaim_claimname% |
%griefprevention_claim_flight% |
%gpx_claim_flight% |
%griefprevention_claim_flight_time% |
%gpx_claim_flight_time% |
Everything else under %griefprevention_*% — including currentclaim_ownername, claims, and claimblocks — belongs to the eCloud expansion and is not provided by GPX.
Server steps after updating
- Drop in the new jar and restart.
/papi ecloud download GriefPrevention/papi reload
Step 2 is not optional cleanup. While GPX held the identifier it satisfied lookups for it, so the eCloud expansion may never have been installed on the server at all — the collision hid that fact rather than causing a visible error.
Placeholders
Current full set, identifier gpx:
| Placeholder | Returns |
|---|---|
%gpx_in_claim% |
yes / no — whether the player is standing in a claim |
%gpx_currentclaim_claimid% |
Claim ID at the player's location |
%gpx_currentclaim_claimname% |
Custom claim name, empty if unset |
%gpx_claim_flight% |
yes / no — whether the player has claim flight time banked |
%gpx_claim_flight_time% |
Formatted remaining claim flight time |
The currentclaim_* placeholders resolve against the player's current location and return empty when the player is outside a claim or offline. claim_flight* works for offline players.
Notes
- No API, config, or permission changes. The expansion class name (
GPXPlaceholderExpansion) and registration path are unchanged; only the identifier it reports differs. publicApi.txtand the Placeholders wiki page were corrected. The wiki page had documented aclaim_prefix that no shipped build ever used.
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:7IRb19K2:M1Vjt2tP"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:7IRb19K2:M1Vjt2tP"
}

