Skip to content

Version 1.23.0#484

Merged
tastybento merged 36 commits intomasterfrom
develop
Apr 11, 2026
Merged

Version 1.23.0#484
tastybento merged 36 commits intomasterfrom
develop

Conversation

@tastybento
Copy link
Copy Markdown
Member

@tastybento tastybento commented Apr 5, 2026

Summary

  • Bump version to 1.23.0

Changes since 1.22.0

Test plan

  • Full test suite passes (mvn test)
  • Verify version is 1.23.0 in built jar

🤖 Generated with Claude Code

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 PhasesPanel and OneBlocksManager#getProbs() to reduce complexity and improve maintainability.
  • Update tests to align with Adventure Title usage 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.

Comment thread src/main/java/world/bentobox/aoneblock/listeners/CheckPhase.java Outdated
Comment thread src/main/resources/addon.yml
Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 6, 2026

@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.

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 6, 2026

@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.

Copilot AI and others added 8 commits April 6, 2026 05:08
…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>
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
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread src/main/java/world/bentobox/aoneblock/panels/PhasesPanel.java Outdated
Comment thread pom.xml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@tastybento
Copy link
Copy Markdown
Member Author

@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.

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 7, 2026

@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.

Copilot AI and others added 16 commits April 7, 2026 10:13
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
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 9, 2026

@tastybento tastybento merged commit c431441 into master Apr 11, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants