Avoid compile errors on older Bukkit APIs that don't expose ShulkerBox#getLootTable / setLootTable while preserving the runtime loot-table cleanup behavior.
Description
Replace the direct ShulkerBox usage in TileLootTableListener with a generic BlockState check and Lootable usage so code compiles against older API versions.
Remove the import org.bukkit.block.ShulkerBox; and instead obtain the BlockState from BlockStateMeta and test instanceof Lootable for item dispense handling.
Keep the existing server-version runtime guard (checkForLootable) and the generic fixLootTable(Block) path unchanged so behavior is preserved on versions that support loot tables.
Testing
Ran ./gradlew clean build eclipse --warning-mode all before the change and observed the cannot find symbol compile errors for getLootTable / setLootTable in TileLootTableListener, which this change addresses. (original failure reproduced)
After the change attempted ./gradlew clean build eclipse --warning-mode all in this environment but a full build could not complete due to environment issues: Gradle/Kotlin rejected Java 25.0.1 until switching to Java 17, and dependency resolution then failed with HTTP 403 responses from remote Maven repositories, so an end-to-end build could not be verified here. (source-level compile issue fixed locally in the modified file)
### Motivation
- Avoid compile errors on older Bukkit APIs that don't expose `ShulkerBox#getLootTable` / `setLootTable` while preserving the runtime loot-table cleanup behavior.
### Description
- Replace the direct `ShulkerBox` usage in `TileLootTableListener` with a generic `BlockState` check and `Lootable` usage so code compiles against older API versions.
- Remove the `import org.bukkit.block.ShulkerBox;` and instead obtain the `BlockState` from `BlockStateMeta` and test `instanceof Lootable` for item dispense handling.
- Keep the existing server-version runtime guard (`checkForLootable`) and the generic `fixLootTable(Block)` path unchanged so behavior is preserved on versions that support loot tables.
### Testing
- Ran `./gradlew clean build eclipse --warning-mode all` before the change and observed the `cannot find symbol` compile errors for `getLootTable` / `setLootTable` in `TileLootTableListener`, which this change addresses. (original failure reproduced)
- After the change attempted `./gradlew clean build eclipse --warning-mode all` in this environment but a full build could not complete due to environment issues: Gradle/Kotlin rejected Java `25.0.1` until switching to Java 17, and dependency resolution then failed with HTTP 403 responses from remote Maven repositories, so an end-to-end build could not be verified here. (source-level compile issue fixed locally in the modified file)
------
[Codex Task](https://chatgpt.com/codex/tasks/task_e_69ba91ca25dc832f90ab7b2ff8cfbbda)
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
ShulkerBox#getLootTable/setLootTablewhile preserving the runtime loot-table cleanup behavior.Description
ShulkerBoxusage inTileLootTableListenerwith a genericBlockStatecheck andLootableusage so code compiles against older API versions.import org.bukkit.block.ShulkerBox;and instead obtain theBlockStatefromBlockStateMetaand testinstanceof Lootablefor item dispense handling.checkForLootable) and the genericfixLootTable(Block)path unchanged so behavior is preserved on versions that support loot tables.Testing
./gradlew clean build eclipse --warning-mode allbefore the change and observed thecannot find symbolcompile errors forgetLootTable/setLootTableinTileLootTableListener, which this change addresses. (original failure reproduced)./gradlew clean build eclipse --warning-mode allin this environment but a full build could not complete due to environment issues: Gradle/Kotlin rejected Java25.0.1until switching to Java 17, and dependency resolution then failed with HTTP 403 responses from remote Maven repositories, so an end-to-end build could not be verified here. (source-level compile issue fixed locally in the modified file)Codex Task