Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Release/version bump to 1.23.0, updating addon metadata and refining UI/logging/test behavior to support recent feature work (action bar color support, Nexo integration, locale updates, and code quality improvements).
Changes:
- Bump project version to 1.23.0 and update addon API metadata.
- Refactor
PhasesPanelandOneBlocksManager#getProbs()to reduce complexity and improve maintainability. - Update tests to align with Adventure
Titleusage and add additional safety assertions.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/test/java/world/bentobox/aoneblock/TestWorldSettings.java | Add explicit no-op comment in stubbed method. |
| src/test/java/world/bentobox/aoneblock/listeners/StartSafetyListenerTest.java | Add explicit no-op comments in stubbed methods. |
| src/test/java/world/bentobox/aoneblock/listeners/CheckPhaseTest.java | Update assertions to verify Adventure Title usage. |
| src/test/java/world/bentobox/aoneblock/listeners/BlockListenerTest2.java | Tighten tests with assertDoesNotThrow; minor visibility tweak. |
| src/main/resources/addon.yml | Update declared BentoBox api-version. |
| src/main/java/world/bentobox/aoneblock/panels/PhasesPanel.java | Refactor phase button creation into helper methods; simplify formatting logic. |
| src/main/java/world/bentobox/aoneblock/oneblocks/OneBlocksManager.java | Refactor probability logging into smaller helper methods. |
| src/main/java/world/bentobox/aoneblock/listeners/CheckPhase.java | Switch to Adventure titles and component-based requirement messages. |
| pom.xml | Bump build version to 1.23.0. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@tastybento I've opened a new pull request, #485, to work on those changes. Once the pull request is ready, I'll request review from you. |
|
@tastybento I've opened a new pull request, #486, to work on those changes. Once the pull request is ready, I'll request review from you. |
…custom translate() with LegacyComponentSerializer Agent-Logs-Url: https://github.com/BentoBoxWorld/AOneBlock/sessions/3ae91a34-99b8-44ae-bdce-bc776883a2f9 Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
…port Agent-Logs-Url: https://github.com/BentoBoxWorld/AOneBlock/sessions/8ff2ce9e-417f-45e9-92d3-d6649871f7c7 Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Bump BentoBox dependency to 3.13.0 for MiniMessage support
… LegacyComponentSerializer) Agent-Logs-Url: https://github.com/BentoBoxWorld/AOneBlock/sessions/e8854ea2-7b56-497a-ac76-533846ce7957 Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
…t.sendMessage() Agent-Logs-Url: https://github.com/BentoBoxWorld/AOneBlock/sessions/b792d2e9-3944-46fa-9f8e-2339f94967e8 Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove custom translate() helper from CheckPhase — let BentoBox handle MiniMessage natively
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@copilot apply changes based on the comments in this thread Put them all in to a PR to this one as they are all essentially similar checks. |
|
@tastybento I've opened a new pull request, #487, to work on those changes. Once the pull request is ready, I'll request review from you. |
Agent-Logs-Url: https://github.com/BentoBoxWorld/AOneBlock/sessions/e4ba8fa5-e639-4f8e-ae85-ae03b1d9c5ff Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Agent-Logs-Url: https://github.com/BentoBoxWorld/AOneBlock/sessions/e4ba8fa5-e639-4f8e-ae85-ae03b1d9c5ff Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Strengthen Title assertions in CheckPhaseTest with ArgumentCaptor
Adds two new phase YAML entry types so admins can summon mobs with richer customization than the existing `mob` entry: - `mob-data`: summons an entity via vanilla `/summon` NBT/component syntax, e.g. glowing breezes with a scale attribute. After summon, MakeSpace runs one tick later so oversized hitboxes clear the surrounding blocks automatically. Closes #488. - `mythic-mob`: spawns a MythicMob via BentoBox's MythicMobsHook with no direct MythicMobs dependency. Uses the new Consumer<Entity> overload on the hook so MakeSpace can run after the hook's 40-tick spawn delay. Falls back to the 2-arg signature via reflection for compatibility with BentoBox 3.13.0 until a newer release is cut. Closes #303. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The mob-data custom block glued NBT to the entity id, producing
`summon breeze{...} x y z`, which vanilla's command parser rejects with
"Unhandled exception". Split the data string at the first `{` or `[` so
the command becomes `summon <entity> <x> <y> <z> [nbt]`, matching the
vanilla grammar. Extracted into a package-private buildSummonCommand
helper with unit tests locking in the ordering for `{...}`, `[...]`,
and bare-entity inputs.
Also add an optional sibling `custom-blocks:` list in OneBlocksManager
so admins can keep their existing map-form `blocks:` section untouched
while registering custom entries like mob-data or mythic-mob — removes
the need to convert every vanilla block to list form just to add one
custom spawn. Both sections feed the same weighted pool.
Update the README examples and MobDataCustomBlock javadoc to use 1.21+
attribute syntax (`minecraft:scale`, not `minecraft:generic.scale`),
add a note about the 1.21 attribute-prefix rename, and enrich the
error log with a version-compat breadcrumb.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Expose the existing BlockDataCustomBlock under a second key `block` so phase-file authors placing NBT-heavy blocks (preconfigured spawners, etc.) aren't forced to use the misleading `block-data` name. Both types route to the same handler; `block-data` stays the recommended key for simple block states while `block` signals intent when the data string contains NBT or a setblock mode flag. No behavioural change — BlockDataCustomBlock.execute already falls through to `/setblock <x> <y> <z> <data>` when Bukkit.createBlockData can't parse the string, which is exactly what NBT payloads need. Documented both forms in the README with a working spawner+breeze example (single-quoted to avoid YAML delimiter clashes) and added two routing tests in BlockCustomBlockTest to lock in the alias. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a commented-out `custom-blocks:` sibling section to the Plains phase showing all three custom entry types (block, mob-data, mythic-mob) with working, single-quoted data strings. Using the first-phase file as the on-disk reference template matches how other optional sections (start-commands, requirements, etc.) are documented in this file. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Placing a spawner via /setblock with only SpawnData leaves the timing fields at their uninitialised defaults — specifically Delay:-1, which means "inactive, never tick". The example spawner appeared correctly but never spawned anything. Update the README and 0_plains.yml block example to set Delay, MinSpawnDelay, MaxSpawnDelay, SpawnCount, SpawnRange, MaxNearbyEntities, and RequiredPlayerRange explicitly so the spawner actually ticks. Add a README "Spawner gotcha" callout explaining why the timing fields are necessary, and an inline comment in the phase YAML pointing at the same trap. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…c-mob Add mob-data and mythic-mob custom block types
Updated descriptions and hints in Russian localization file for better clarity and formatting.
Refactor Russian localization in ru.yml
Two independent delays made block-placed spawners and mythic-mob bosses feel sluggish, appearing ~1-2 seconds after the magic block broke. Remove both: 1. MythicMobCustomBlock now prefers the 4-arg spawnMythicMob(record, loc, Consumer, long) overload from BentoBox 3.15.0+ with delayTicks=0, so the boss spawns on the current tick instead of after the hook's historical 40-tick (2s) delay. That delay exists for blueprint-paste callers and is dead time for AOneBlock's synchronous block replace. Reflection falls back to the 3-arg (40-tick) and 2-arg overloads on older BentoBox, so nothing breaks for users running BentoBox 3.13-3.14. MakeSpace still runs from the Consumer callback. 2. The example spawner NBT in the README and 0_plains.yml used Delay:20 (first spawn in 1s); switch to Delay:0 so the first spawn happens on the next tick (visually instant). Extend the "Spawner gotcha" callout with one sentence explaining Delay:0 vs Delay:N vs Delay:-1. Companion BentoBox PR adds the 4-arg overload; until that release lands, the reflection fallback keeps behaviour identical to today. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Spawn custom-blocks bosses and spawners on the current tick
Suspicious gravel/sand are placed programmatically by the magic-block handler, so the vanilla brush animation never runs on them. The previous right-click handler advanced one dust stage per click with no visual progress feedback. Now each click also plays dust particles and the brushing sound, and kicks off a 10-tick repeating session that advances dusting while the player keeps holding right-click (detected via Player#isHandRaised). The session cancels when the player releases, looks away, swaps items, disconnects, or the block disappears, matching vanilla feel. Closes #490 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…block-brushing Add continuous brushing for placed suspicious blocks
|



Summary
Changes since 1.22.0
Test plan
mvn test)🤖 Generated with Claude Code