Ensure custom player-head metadata (display name, lore and persistent data) is recorded with CoreProtect so rollbacks/restores preserve bounty head information.
Add a guarded runtime integration so the plugin can use CoreProtect API v11+ when available without failing when it is absent.
Description
Added the PlayPro repository and net.coreprotect:coreprotect:23.1 as a compile-only dependency in build.gradle.kts to compile against CoreProtect v11 (maven.playpro.com).
Introduced CoreProtectHook (com.tcoded.playerbountiesplus.hook.logging.CoreProtectHook) that safely discovers CoreProtect, verifies APIVersion() >= 11, and exposes guarded wrapper methods like logPlacement and logRemoval.
Initialized the core-protect hook in PlayerBountiesOG and passed it into BountyHeadListener, logging a warning when CoreProtect is unavailable.
Updated BountyHeadListener to call logPlacement(user, skullBlockState) after placing a skull and logRemoval(user, snapshotBlockState) when breaking a skull so CoreProtect records the skull BlockState (preserving custom meta/lore).
Testing
Ran ./gradlew -version which completed successfully and printed the Gradle/JVM info.
Ran ./gradlew compileJava --stacktrace which failed before compilation due to the environment using Java 25.0.1 causing a Kotlin DSL bootstrap parsing error (IllegalArgumentException: 25.0.1), so project compilation could not be validated in this environment.
### Motivation
- Ensure custom player-head metadata (display name, lore and persistent data) is recorded with CoreProtect so rollbacks/restores preserve bounty head information.
- Add a guarded runtime integration so the plugin can use CoreProtect API v11+ when available without failing when it is absent.
### Description
- Added the PlayPro repository and `net.coreprotect:coreprotect:23.1` as a compile-only dependency in `build.gradle.kts` to compile against CoreProtect v11 (`maven.playpro.com`).
- Introduced `CoreProtectHook` (`com.tcoded.playerbountiesplus.hook.logging.CoreProtectHook`) that safely discovers CoreProtect, verifies `APIVersion() >= 11`, and exposes guarded wrapper methods like `logPlacement` and `logRemoval`.
- Initialized the core-protect hook in `PlayerBountiesOG` and passed it into `BountyHeadListener`, logging a warning when CoreProtect is unavailable.
- Updated `BountyHeadListener` to call `logPlacement(user, skullBlockState)` after placing a skull and `logRemoval(user, snapshotBlockState)` when breaking a skull so CoreProtect records the skull `BlockState` (preserving custom meta/lore).
### Testing
- Ran `./gradlew -version` which completed successfully and printed the Gradle/JVM info.
- Ran `./gradlew compileJava --stacktrace` which failed before compilation due to the environment using Java `25.0.1` causing a Kotlin DSL bootstrap parsing error (`IllegalArgumentException: 25.0.1`), so project compilation could not be validated in this environment.
------
[Codex Task](https://chatgpt.com/codex/tasks/task_e_69aec62fa720832f90ac47cf01ef8d8f)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Motivation
Description
net.coreprotect:coreprotect:23.1as a compile-only dependency inbuild.gradle.ktsto compile against CoreProtect v11 (maven.playpro.com).CoreProtectHook(com.tcoded.playerbountiesplus.hook.logging.CoreProtectHook) that safely discovers CoreProtect, verifiesAPIVersion() >= 11, and exposes guarded wrapper methods likelogPlacementandlogRemoval.PlayerBountiesOGand passed it intoBountyHeadListener, logging a warning when CoreProtect is unavailable.BountyHeadListenerto calllogPlacement(user, skullBlockState)after placing a skull andlogRemoval(user, snapshotBlockState)when breaking a skull so CoreProtect records the skullBlockState(preserving custom meta/lore).Testing
./gradlew -versionwhich completed successfully and printed the Gradle/JVM info../gradlew compileJava --stacktracewhich failed before compilation due to the environment using Java25.0.1causing a Kotlin DSL bootstrap parsing error (IllegalArgumentException: 25.0.1), so project compilation could not be validated in this environment.Codex Task