Release 1.4.0#55
Merged
Merged
Conversation
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>
Add team chat mute command
…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>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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>
Contributor
There was a problem hiding this comment.
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-worldsconfig support and use it in chat interception logic. - Add
/is muteteamchat(aliasmtc) 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.
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>
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. |
Agent-Logs-Url: https://github.com/BentoBoxWorld/Chat/sessions/12e3f697-a2ad-4956-a392-972c6517d421 Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
…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>
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.
No description provided.