v1.3.0
New Features
- Added support for Paper 26.2 (Minecraft 26.2)
- Support for Paper 26.1 has ended at the same time.
- Paper 26.2 bundles Adventure 5.2.0, which is not binary compatible with 26.1.
- Builds from v1.3.0 onward therefore no longer run on Paper 26.1.
/tell <player>@<server>can now message a player on a server connected through Velocity- Disabled by default.
- Enable it with
features.velocityIntegration.crossServerDirectMessage.
- Raised the protocol version to
1.0.1.- Paper and Velocity can be updated in either order.
- Cross-server direct messages do, however, require both sides to be updated.
Improvements
- A failed player data save no longer aborts the remaining shutdown steps, so channel logs and the Velocity connection are always closed.
- File persistence has been consolidated behind a single storage layer.
- As a result, a crash or a concurrent save can no longer leave a file in a half-written state.
- Each player's messages are now delivered in the order they were sent.
- Work still queued when a player disconnects is discarded rather than delivered to a player who has already logged out.
- Direct message delivery and channel message logging no longer run on the tick thread.
- Cached romaji conversion results no longer wait for a permit from the shared API concurrency limiter.
- Previously, even a message whose every word was already cached could exhaust its conversion budget waiting for a permit it did not need, and be sent unconverted.
- The words in a message are now converted concurrently.
- Player settings are only rewritten when something has changed.
- Previously, every player quit re-serialized every player stored in the file, even when the bytes were identical.
- When a player quits without an active channel, clearing their active channel no longer takes a snapshot of the channel caches.
- Previously, a mass disconnect produced one full snapshot per disconnecting player within a single tick.
- Spy notification for direct messages and channel messages no longer builds its translation lookup and member set when no recipient is online.
- Channel data writes are now batched instead of rewriting the whole file on every change.
- Performed internal cleanup.
Changes
config.ymlis now read with KAML, which changes how a broken file is treated.- An unreadable configuration file no longer disables the plugin; it starts on its default settings instead.
- When a single value cannot be read, the other settings in the file are no longer all discarded: only that value falls back to its default, with a warning.
- Per-player delivery queues are now bounded.
- A player who sends faster than delivery drains is refused with a warning, rather than building an unbounded backlog that arrives all at once minutes later.
Bug Fixes
- Fixed the player argument of
/tellmatching partially- This came from the switch away from the old Bukkit API.
- Fixed
features.channelChat.messageLoggingnever actually being read and falling back to its default values- The loading was never implemented despite being documented, so it stayed at its defaults regardless of what the file said.
- Fixed a slow Google IME reply silently stopping every subsequent message delivery for that player's session
- Fixed a single conversion timeout permanently pinning a word to its hiragana form
- Fixed
/replynot recognizing a reply target that had just been recorded - Fixed reply target entries that had already been cleared on disconnect being recorded again