Release 1.25.0#515
Conversation
…initial load CraftEngineCustomBlock.fromMap() no longer delegates to fromId() (which calls CraftEngineHook.exists()). When a YAML entry explicitly declares type: craftengine the block type is already unambiguous, so the CraftEngineCustomBlock is created directly from the id field without requiring CraftEngine's block registry to be populated yet. The fromId() path (used by the short-form creator) keeps the exists() check so it can still distinguish CraftEngine IDs from vanilla material names. Fixes: invalid runtime error on startup when CraftEngine fires its reload event after AOneBlock has already attempted to load phases. Agent-Logs-Url: https://github.com/BentoBoxWorld/AOneBlock/sessions/7e16e2d1-e9ec-4551-b155-ebb10c178074 Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Fix false "Bad custom block" errors for CraftEngine blocks on startup
Adds a bee_nest custom block (3 bees, honey_level 0) to the Plenty phase block pool with weight 1, matching the existing HONEY_BLOCK and HONEYCOMB_BLOCK density. Closes the honey-farming gap players hit in Plenty: although the phase already drops honeycomb blocks, honey blocks, and honey bottles, there was no way to obtain a hive to farm them. Uses the block-data custom block path, which falls back to /setblock for NBT-bearing data so the nest spawns pre-populated with bees. Refs #512 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
When a magic-block roll produces a mob, handleEntitySpawn cancels the triggering BlockBreakEvent at EventPriority.HIGHEST. The client has already played the "block disappearing" animation by then and predicted the block as gone, but never receives a corrective block-update packet, so the magic block appears transparent until the chunk resyncs (e.g. on relog). Send a block change to the mining player immediately after the cancel so the client repaints the actual server-side block state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix: resync magic block to client after entity-spawn cancel
feat: drop populated bee nest in Plenty phase
Particle.DUST is the only particle type for which we can construct the required DustOptions data. Previously, any other particle type fell to particleData = null, and spawnParticle would throw IllegalArgumentException when the configured particle required non-void data (e.g. ITEM, BLOCK, ENTITY_EFFECT). Detect particles with non-void getDataType(), log a warning naming the configured particle, and return early instead of spawning. DUST and particles with Void data still work as before. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix: skip chest particles that require typed data instead of crashing
There was a problem hiding this comment.
Pull request overview
Release prep for 1.25.0, including a CraftEngine custom-block parsing adjustment, a client resync fix around cancelled breaks, and updated shipped phase data.
Changes:
- Adjust CraftEngine custom-block
fromMapparsing to not depend on CraftEngine’s registry being loaded yet, and add a unit test for the new behavior. - Resync the client block state after cancelling non-
EntitySpawnEvententity spawns to avoid “ghost broken block” visuals. - Add a bee nest custom-block entry to the “Plenty” phase and bump the Maven build version to 1.25.0.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/main/java/world/bentobox/aoneblock/oneblocks/customblock/CraftEngineCustomBlock.java | Changes map parsing behavior for CraftEngine custom blocks. |
| src/test/java/world/bentobox/aoneblock/oneblocks/customblock/CraftEngineCustomBlockTest.java | Adds coverage for updated fromMap behavior. |
| src/main/java/world/bentobox/aoneblock/listeners/BlockListener.java | Client block-state resync after cancelling certain events. |
| src/main/resources/phases/8500_plenty.yml | Adds a custom-blocks bee nest entry to the phase. |
| pom.xml | Bumps build version to 1.25.0. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@tastybento I can’t apply these changes because the pull request’s branch is the repository’s default branch, which I’m not allowed to push to directly. You can ask me to create a new pull request with the requested changes instead and I'll open a separate PR on a new branch. |
|
@tastybento I've opened a new pull request, #517, to work on those changes. Once the pull request is ready, I'll request review from you. |
…key) Agent-Logs-Url: https://github.com/BentoBoxWorld/AOneBlock/sessions/f42227f2-922c-49bc-9ac2-a3a093110e4f Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
fix: validate CraftEngine block ID format in fromMap at config-load time
|



No description provided.