Skip to content

Release 1.4.0#55

Merged
tastybento merged 44 commits into
masterfrom
develop
Apr 13, 2026
Merged

Release 1.4.0#55
tastybento merged 44 commits into
masterfrom
develop

Conversation

@tastybento

Copy link
Copy Markdown
Member

No description provided.

tastybento and others added 30 commits December 19, 2024 07:58
Add null check for the island returned by getIsland() in the
teamChat method to prevent NullPointerException when extra
arguments are passed to /is teamchat (e.g. /is teamchat test)
and the player's island cannot be found.

Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
…iling tests

Updated pom.xml repositories to match current BentoBox conventions (jitpack.io
for MockBukkit, proper release/snapshot config). Downgraded BentoBox from 3.10.2
(unavailable) to 3.10.0. Fixed four test failures: lowercased label assertion in
IsTeamChatHandlerTest, JavaPlugin classloader issues in ChatPladdonTest, and
missing Player.Spigot mock in ChatListenerTest. Added instance field setter and
Unsafe-based newUninitializedInstance to WhiteBox. Added CLAUDE.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…m chat messages

Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Adds a new config option `team-chat.extra-chat-worlds` that maps game mode
names to lists of additional world names where team chat should be captured.
When a player chats in an extra world, their team chat is resolved through
the mapped game mode(s). If multiple game modes cover the same world, chat
may go to multiple teams.

Settings: new extraChatWorlds Map<String, List<String>> field
Chat: new getWorldsFromExtra() method to resolve extra worlds to game mode overworlds
ChatListener: onChat() now checks extra chat worlds before falling back to default

Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
…ity-issues

Add extra-chat-worlds config for team chat in non-game worlds
Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
…nslations

Add missing locale files and fix translation gaps across all supported languages
- Bump bentobox.version 3.10.0 → 3.14.0-SNAPSHOT
- Add codemc-repo and codemc snapshots repositories needed for BentoBox snapshots
- Upgrade maven-compiler-plugin 3.7.0 → 3.15.0, add <fork>true</fork>
- Upgrade jacoco-maven-plugin 0.8.10 → 0.8.12
- Remove ${argLine} from surefire to prevent JaCoCo agent from instrumenting
  Mockito-generated Java 25 class files (unsupported by JaCoCo ASM)
- Add surefire <includes> block and clean up argLine whitespace
- Add org/mockito/codegen/* to JaCoCo excludes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Paper only (Spigot removed), target Paper 1.21.11
- Add IslandTeamMuteCommand (muteteamchat) to commands list
- Update BentoBox dependency to 3.14.0-SNAPSHOT
- Document JaCoCo/Java 25 workaround (no ${argLine} in surefire)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When tests run under Java 25, Mockito generates mock classes at class
file version 69 which JaCoCo 0.8.12 cannot instrument. Pinning the
surefire JVM to Java 21 via the test.jvm property keeps generated
bytecode at version 65 and restores coverage data collection.

Also switches surefire argLine back to @{argLine} (late binding) so
the JaCoCo agent is properly injected.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Option A (agent excludes) and Option B (hardcoded jvm path) both had
problems. The root cause is JaCoCo 0.8.12 / ASM 9.6 not supporting
class file versions 68/69 (Java 24/25), which affects ByteBuddy's own
library classes and JDK tool classes — not just generated mocks.

CI uses Java 21 and is unaffected. Locally, run with Java 21 via:
  JAVA_HOME=$(/usr/libexec/java_home -v 21) mvn test

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0.8.14 ships ASM with Java 24/25 class file support, fixing the
Unsupported class file major version 68/69 errors seen when running
tests under Java 25.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
maven-clean-plugin:     3.1.0 → 3.5.0
maven-resources-plugin: 3.1.0 → 3.5.0
maven-surefire-plugin:  3.5.2 → 3.5.5
maven-jar-plugin:       3.2.0 → 3.5.0
maven-javadoc-plugin:   3.1.1 → 3.12.0
maven-source-plugin:    3.0.1 → 3.4.0
maven-install-plugin:   2.5.2 → 3.1.4
maven-deploy-plugin:    2.8.2 → 3.1.4

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace &a/&c/&6/&8/&f/&4 codes with <green>/<red>/<gold>/<dark_gray>/<white>/<dark_red> tags
- Fix team-chat.chat-off which incorrectly used green in most locales; now consistently red
- Remove leading spaces that were artifacts of inline color codes
- Fix cs.yml: add missing color tags and remove <> around [name] in syntax (MiniMessage conflict)
- Fix es.yml island spy syntax: &4 name color preserved as <dark_red>
- Fix ru.yml: add missing mute section that was absent from the partial manual conversion
- All 23 locales now use MiniMessage; no &-codes remain

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
tastybento and others added 2 commits April 12, 2026 23:35
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@tastybento tastybento changed the title Release 1.3.1 Release 1.4.0 Apr 13, 2026
@tastybento tastybento requested a review from Copilot April 13, 2026 06:36
The bentoboxworld repository on CodeMC hosts BentoBox 3.14.0-SNAPSHOT but
snapshots were disabled, causing CI dependency resolution to fail.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Release 1.4.0 updates the Chat addon to target newer Paper/BentoBox versions, adds configurable “extra chat worlds” routing and a team-chat mute command, and introduces a JUnit 5/MockBukkit test suite plus CI workflow support.

Changes:

  • Add team-chat.extra-chat-worlds config support and use it in chat interception logic.
  • Add /is muteteamchat (alias mtc) to let players mute receiving team chat.
  • Modernize build/test setup (Paper API, JUnit 5 + Mockito + MockBukkit), add CI workflow, and refresh locales.

Reviewed changes

Copilot reviewed 43 out of 43 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/test/java/world/bentobox/chat/WhiteBox.java New reflection/Unsafe test helper utilities
src/test/java/world/bentobox/chat/SettingsTest.java New unit tests for Settings
src/test/java/world/bentobox/chat/requesthandlers/IsTeamChatHandlerTest.java New unit tests for request handler
src/test/java/world/bentobox/chat/listeners/ChatListenerTest.java New unit tests for chat listener behavior
src/test/java/world/bentobox/chat/CommonTestSetup.java Shared MockBukkit/Mockito test scaffolding
src/test/java/world/bentobox/chat/commands/island/IslandTeamMuteCommandTest.java New tests for team mute command
src/test/java/world/bentobox/chat/commands/island/IslandTeamChatCommandTest.java New tests for team chat command
src/test/java/world/bentobox/chat/commands/island/IslandChatCommandTest.java New tests for island chat command
src/test/java/world/bentobox/chat/commands/admin/AdminTeamChatSpyCommandTest.java New tests for team chat spy command
src/test/java/world/bentobox/chat/commands/admin/AdminIslandChatSpyCommandTest.java New tests for island chat spy command
src/test/java/world/bentobox/chat/ChatPladdonTest.java New tests for pladdon entrypoint behavior
src/main/resources/plugin.yml Bump Bukkit api-version to 1.21
src/main/resources/locales/zh-HK.yml Add/update locale strings (MiniMessage + mute)
src/main/resources/locales/zh-CN.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/vi.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/uk.yml Add locale strings (MiniMessage + mute)
src/main/resources/locales/tr.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/ru.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/ro.yml Add locale strings (MiniMessage + mute)
src/main/resources/locales/pt.yml Add locale strings (MiniMessage + mute)
src/main/resources/locales/pt-BR.yml Add locale strings (MiniMessage + mute)
src/main/resources/locales/pl.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/nl.yml Add locale strings (MiniMessage + mute)
src/main/resources/locales/lv.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/ko.yml Add locale strings (MiniMessage + mute)
src/main/resources/locales/ja.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/it.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/id.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/hu.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/hr.yml Add locale strings (MiniMessage + mute)
src/main/resources/locales/fr.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/es.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/en-US.yml Update base locale strings (MiniMessage + mute)
src/main/resources/locales/de.yml Update locale strings (MiniMessage + mute)
src/main/resources/locales/cs.yml Update locale strings (MiniMessage + mute)
src/main/resources/config.yml Add extra chat worlds config + extend default gamemode lists
src/main/java/world/bentobox/chat/Settings.java Add extraChatWorlds setting + getters/setters
src/main/java/world/bentobox/chat/listeners/ChatListener.java Use extra chat worlds routing + implement team-chat mute filtering
src/main/java/world/bentobox/chat/commands/island/IslandTeamMuteCommand.java New player command to toggle team chat mute
src/main/java/world/bentobox/chat/Chat.java Register new command + implement extra-world mapping helper
pom.xml Switch to Paper API + JUnit 5/Mockito/MockBukkit setup and newer plugins
CLAUDE.md Add repository build/testing guidance documentation
.github/workflows/build.yml Add GitHub Actions build + test workflow

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/main/java/world/bentobox/chat/listeners/ChatListener.java Outdated
Comment thread src/test/java/world/bentobox/chat/SettingsTest.java
Comment thread pom.xml
Comment thread src/test/java/world/bentobox/chat/WhiteBox.java
Comment thread pom.xml
Comment thread src/test/java/world/bentobox/chat/listeners/ChatListenerTest.java
tastybento and others added 4 commits April 12, 2026 23:45
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Copilot AI commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

@tastybento I've opened a new pull request, #57, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 7 commits April 13, 2026 06:51
…o 5.x

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fix island chat using team chat log setting and prefix
…oggle-off

- Muted senders now always see their own team chat message plus a reminder
  that team chat is muted (chat.team-chat.mute.reminder locale key)
- Toggling team chat off now also clears the player's mute state, so
  re-enabling chat starts fresh without a silent mute persisting
- Added translated reminder string to all 23 locale files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Log async chat errors via addon.logError instead of rethrowing as RuntimeException
- Add master to CI push/PR triggers so release PRs are validated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Config entries like "Spawn_World" now match server world names like
"spawn_world". Adds ChatTest covering exact match, case mismatch,
no match, unknown game mode, and multiple game mode scenarios.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@tastybento tastybento merged commit dcd21b3 into master Apr 13, 2026
2 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