Release 1.4.0 - #50
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0114k1MQ9RoWNXKW4NHiwLxC
Team members were confused when they saw "Chunk claimed!" and thought they had claimed a chunk, when it was actually another team member. The message now shows who did the claiming: "[name] claimed a chunk!" Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QWvvUY9ZZJHxUYm1UyjdwK
The resource config.yml that new admins get on first install had stale values inherited from AOneBlock that no longer matched the Settings.java field defaults. Mismatches fixed: - protection-range: 240 → 168 (matches max-chunks 441 = ring 10) - island-height: 80 → 120 - concurrent-islands: 1 → 0 (defer to BentoBox default) - nether spawn-radius: 25 → 32 - max-homes: 1 → 5 - on-join inventory/health/hunger/exp: false → true (fresh start) - on-leave inventory: true → false (keep inventory on leave) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QWvvUY9ZZJHxUYm1UyjdwK
The max-chunks config setting was redundant — the protection range already prevents claims outside it via maxRingRadius. The effective chunk cap is now derived solely from the island's protection range: maxChunks = (2 * floor((range - 8) / 16) + 1)^2 With the default range of 168 that gives 441 chunks (21x21), exactly what max-chunks was set to. Admins who want more or fewer chunks adjust the protection range instead of juggling two settings. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QWvvUY9ZZJHxUYm1UyjdwK
When the island's territory can extend beyond the 13x13 viewport (protection range > 104 blocks), the map dialog now adds a control row with two view modes: - Island center (◎): viewport centered on the island center, with a directional arrow pointing toward the player's position - Player center (◆): viewport centered on the player's chunk, with a directional arrow pointing back to the island center The directional arrow shows 8 directions (cardinals + diagonals) and doubles as a navigation button — clicking it switches to the other view. When the target is already visible on screen, the arrow is replaced by a dot. For small islands that fit in 13x13, the dialog behaves exactly as before with no control row. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QWvvUY9ZZJHxUYm1UyjdwK
fix: include claimer name in chunk claimed message
fix: align config.yml defaults with Settings.java
refactor: remove max-chunks setting, derive limit from protection range
feat: scrollable chunk map dialog with player/island view modes
SonarCloud fixes: - PhaseIndexEntry: rename 5 constants to KEY_* prefix (blocker: field/constant name clash) - PhasesPanelTest: add assertions to 2 empty test cases (blocker) - ChunksDialog: remove 2 redundant null checks, extract duplicate literals - LevelListener, IslandChunksCommand: extract duplicate string literals - ChunkBlock, IslandLedgerCommandTest, LockedChunkProtectTest: remove unused imports - IslandLedgerCommand: remove dead null branch - IslandLedgerCommandTest: remove useless eq() wrappers - Settings: replace string concatenation with String.format() - HoloListener: add null guard for @nonnull parameter - ChunkGuardListener: remove 2 redundant null checks Locale sync: - Add 4 new dialog keys (view-island, view-player, arrow-to-island, arrow-to-player) to all 17 non-English locale files with translations Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QWvvUY9ZZJHxUYm1UyjdwK
Main source fixes: - BorderDisplay: extract helpers to reduce cognitive complexity (S3776) - OneBlocksManager: extract 5 log-message constants (S1192), use existing CHESTS_YML_SUFFIX constant - ChunkClaimListener: null guard for player location (S2637), suppress S1168 on findTargetLockedChunk (null return is intentional API contract) - LevelListener: use existing PLACEHOLDER_RING/CHUNKS constants - Settings: use logger Supplier lambda for conditional formatting (S2629) - ChunksDialog, IslandChunksCommand: use existing placeholder constants - Fix 8 javadoc comment prefixes (S9355) - OneBlockIslands: remove unnecessary transient, return empty array (S1168) Test source fixes: - Remove public modifier from 15 test classes (S5786) - Extract 22 inline mock creations to local variables (S9016) - Add static imports for mock/verify/never/doThrow (S8924) - Remove 2 unnecessary throws declarations (S1130) - Remove unused createTestPhaseWithRequirements method (S1144) - Fix deprecated PlayerQuitEvent constructor (S5738) 9 issues remain for acceptance: - 7x S9149: getHandlerList() hiding in events — required by Bukkit API - 2x S1133: deprecated code reminders — intentional backwards compat Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QWvvUY9ZZJHxUYm1UyjdwK
Sonar S2637 (reliability): player.getLocation() can be null and was passed directly to getIslandAt(), which requires @nonnull. Store the location once, bail out if null — same pattern as HoloListener. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QWvvUY9ZZJHxUYm1UyjdwK
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Release 1.4.0
🤖 Generated with Claude Code
https://claude.ai/code/session_01QWvvUY9ZZJHxUYm1UyjdwK