Repoint PlaceholderAPI and bump ProtocolLib to resolvable versions - #4
Conversation
Dependency resolution failed for two artifacts that have been removed from their repositories since the project was last touched in 2024, blocking the build before any Kotlin compiled. PlaceholderAPI: the pinned repository URL now redirects to repo.helpch.at/releases, and 2.11.2 is no longer published there. Point at the redirect target and move to 2.11.7, the lowest version still available, to keep API drift as small as possible. ProtocolLib: 5.0.0-SNAPSHOT has been purged; the repository now serves only 5.3.0 and 5.4.0-SNAPSHOT. Pin the 5.3.0 release rather than a snapshot so the build stops depending on a mutable version. Closes #3 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Self-review rubric:
On the CI FAIL — this is the progress the PR was aiming for.
The build now gets all the way to the compiler and every module except ProtocolLib 5.3.0 exposes two 7-argument I did not fix it in this PR, deliberately. It is a pre-existing defect that upstream already tracks as RP-Kit#666, the project owner has stated a scope decision on it ("gut the nameplate functionality"), and there is an open upstream PR implementing that. Choosing between removing the feature and disambiguating the call is a product decision with runtime implications on a code path that cannot be exercised without a live Minecraft server. Mirrored to #5 with both options recorded and neither selected. Recommendation: merge this to bank the resolution fix — it is independently correct and unblocks every other module — then take #5 once the nameplate question is decided. |
Summary
The build could not resolve two dependencies, failing before any Kotlin compiled. Both were pinned when the project was last touched in 2024 and have since been removed from their repositories — this is external bit-rot, nothing in this repo changed.
PlaceholderAPI — needed two changes, not one:
repo.extendedclip.com/content/repositories/placeholderapi/now301s torepo.helpch.at/releases. Repointed to the redirect target.2.11.2is not published at that new location either (404), so the version had to move as well. Chose 2.11.7 — the lowest version still available — to keep API drift minimal rather than jumping to the current 2.12.3.ProtocolLib —
5.0.0-SNAPSHOThas been purged;maven-metadata.xmlnow lists only5.3.0and5.4.0-SNAPSHOT. Pinned 5.3.0, the current release, rather than another snapshot so the build no longer depends on a mutable version.All four target artifacts were confirmed resolvable by direct probe (
.pomand.jar,200) before making the change.Scope
10 files, 11 insertions, 11 deletions — one line each, plus the repo URL.
This sits exactly at the ~10-file soft ceiling and is a deliberate, stated exception: the change is dependency-coupled and cannot be split. PlaceholderAPI is declared in 9 modules and resolution fails on all of them; fixing a subset leaves the build red, and fixing PlaceholderAPI without ProtocolLib (or vice versa) also leaves it red. The two must land together to move the build past resolution at all.
Anchor verdict
UNVERIFIED locally — there is no JDK 17 on the development device, and Gradle 7.6 fails on both JDK 21 (
Unsupported class file major version 65) and JDK 11, so./gradlewcannot produce a signal there by any route. CI is the anchor, and its run on this PR is the real verdict. I'll report it here.Known risk
These are not cosmetic bumps. PlaceholderAPI 2.11.2 → 2.11.7 and ProtocolLib 5.0.0-SNAPSHOT → 5.3.0 may carry API changes that break compilation in the modules that use them — that work was invisible until resolution succeeded and the compiler could actually run. If CI now fails at the compile step rather than at resolution, that is progress, not regression, and the remaining breakage will be fixed here or filed separately depending on its size.
Test plan
me.clip:placeholderapi:2.11.7.pomand.jarreturn200atrepo.helpch.at/releasescom.comphenix.protocol:ProtocolLib:5.3.0.pomand.jarreturn200atrepo.dmulloy2.net2.11.2,5.0.0-SNAPSHOT, orextendedclipreference remains in anybuild.gradlerepo.propertiesuntouchedcompileKotlin, 119 tasks executed, 70 of 71 modules compile (run 31342495454)Do-not-auto-merge
Modifies
build.gradleand**/build.gradle, both on the do-not-auto-merge list — dependency changes across a 71-module tree. Left for human review.Closes #3