[NeoForge 26.3] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta
这是测试版,仍需测试,尤其是语音播放方面的更改。 如果遇到问题,请在 GitHub 或 Discord 上报告。
2.1.x 和 2.2.x 版本协议兼容, 因此无需担心服务器或客户端尚未更新到 2.2.x。
不再支持 1.21 以下的 Forge 和 Minecraft 版本。Plasmo Voice 现在仅支持 1.21 及更新版本的 Fabric 和 NeoForge。
客户端
- 当源线路多于 3 条时,
音量标签页现在仅显示最近 5 分钟内使用过的源线路(邻近始终显示)。可通过源音量旁边的按钮切换为显示全部。 - 实体图标现在可以渲染在任何实体上,而不仅仅是生物上。
- 显示实体现在即使为空也会显示图标,并且其变换会应用到图标和音频位置上,因此它们可以用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到音频源时音频流开头有时被截断的问题。
- 修复了音频流最后一刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或在下一个音频流开始时延迟播放的问题。
- 修复了有时会重复一小段已播放音频的问题。
- 修复了更改世界时,邻近源音频流中间出现短暂静音的问题。
- 移除了
自适应抖动缓冲区,因为它无法正常工作。
- 客户端配置中的激活设置现在按激活名称而非 UUID 存储。
- 修复了服务器配置中的 Opus
模式和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 层时 HUD 图标和叠加层不渲染的问题。 #542
- 修复了设置屏幕在窗口大小改变时重置滚动位置和搜索输入框的问题。
- 修复了源线路的叠加层设置有时在加入时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现在使用 Brigadier:
/vmute现在要求持续时间在原因之前:/vmute <player> permanent <reason>而非/vmute <player> <reason>。/vmute现在会拒绝无效的持续时间(0、10x、溢出值、过去时间的u时间戳),而不是将其视为原因的一部分并永久屏蔽。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被屏蔽玩家的 UUID,即使其名称无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <player> run vrc将重连<player>。
- 将 slib 更新至 2.1.0,这会破坏使用以下内容的插件:
- 搭配 Brigadier 命令的
McCommandManager#register。请改为通过McBrigadierCommandsRegisterEvent监听器使用McBrigadierRegistry注册。 MessageTextConverter。请改用McTextMessage.of(component)。
- 搭配 Brigadier 命令的
- 添加了毁灭支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 添加了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个线程上的多个套接字将共享语音端口,而不是只用一个。 - UDP 线程数量现在可以通过
-Dplasmovoice.udp_threads设置(默认:CPU 核心数 * 2)。 - UDP 服务器现在复制更少的缓冲区,批量写入套接字,并且在没有任何监听者时不再创建数据包事件。
- 在我们的基准测试中,单个套接字在开始丢包之前比 2.1.x 多发送约 1.2 倍的数据包,且每个已发送数据包的内存占用减少约 10 倍。
- 启用
reuse_port后,100 名玩家在同一位置说话(约 50 万个传出数据包/秒)可在 4 核上无丢失地处理。
- 修复了 Plasmo Voice 权限在 NeoForge 上对权限模组(例如 LuckPerms)不可见的问题。
- 修复了配置中的 Opus
模式和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。
[Fabric 26.3] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta
这是 Beta 测试版本,仍需测试,尤其是语音播放方面的改动。 如果遇到任何问题,请在 GitHub 或 Discord 上报告。
2.1.x 和 2.2.x 版本在协议上互相兼容, 因此即使服务器或客户端尚未更新到 2.2.x,也无需担心。
已放弃对 Forge 以及低于 1.21 的 Minecraft 版本的支持。Plasmo Voice 现在仅支持 1.21 及更新版本上的 Fabric 和 NeoForge。
客户端
- 当音源行超过 3 个时,
音量标签页现在只显示最近 5 分钟内使用过的音源行(邻近始终显示)。可通过音源音量旁边的按钮切换为显示全部。 - 实体现在都会渲染实体图标,而不再仅限于生物。
- 展示实体即使为空也会显示图标,并且其变换会应用到图标和音频位置上,因此它们可以用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到音源时音频流开头有时被截断的问题。
- 修复了音频流最后时刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或在下一个音频流开始时延迟播放的问题。
- 修复了有时会重复播放一小段已播放音频的问题。
- 修复了切换世界时邻近音源音频流中间出现短暂静音的问题。
- 移除了
自适应抖动缓冲,因为它无法正常工作。
- 客户端配置中的激活方式设置现在按激活方式名称存储,而不是 UUID。
- 修复了服务器配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它总是使用VOIP)。 - 修复了 NeoForge 上存在大量 HUD 图层时 HUD 图标和叠加层不渲染的问题。#542
- 修复了窗口大小调整时设置屏幕的滚动位置和搜索输入被重置的问题。
- 修复了音源行的叠加层设置有时在加入时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现在使用 Brigadier:
/vmute现在需要在原因之前输入持续时间:/vmute <player> permanent <reason>,而不是/vmute <player> <reason>。/vmute现在会拒绝无效的持续时间(0、10x、溢出的数值、过去的u时间戳),而不是将它们视为原因的一部分并永久禁言。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被禁言玩家的 UUID,即使其名称无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <player> run vrc将重连<player>。
- 更新了 slib 至 2.1.0,这会破坏使用以下内容的附属:
- 搭配 Brigadier 命令使用的
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中使用McBrigadierRegistry注册它们。 MessageTextConverter。请改用McTextMessage.of(component)。
- 搭配 Brigadier 命令使用的
- 添加了隐身支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 添加了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个不同线程上的插座将共享语音端口,而不是只用一个。 - UDP 线程数现在可以通过
-Dplasmovoice.udp_threads设置(默认值:CPU 核心数 * 2)。 - UDP 服务器现在复制更少的缓存器、批量写入插座,并且在没有任何监听者时不再创建数据包事件。
- 在我们的基准测试中,单个插座在开始丢包之前,现在比 2.1.x 多发送约 1.2 倍的数据包,且每个已发送数据包分配的内存减少约 10 倍。
- 启用
reuse_port后,4 个核心可以在不丢包的情况下处理 100 名玩家在同一位置同时说话(约 50 万个传出数据包/秒)。
- 修复了 NeoForge 上权限模组(如 LuckPerms)无法查看 Plasmo Voice 权限的问题。
- 修复了配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它总是使用VOIP)。
[NeoForge 26.2] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30测试版
这是测试版,仍需进行测试,尤其是语音播放方面的改动。 如果遇到任何问题,请在 GitHub 或 Discord 上报告。
2.1.x 与 2.2.x 版本在协议上兼容, 因此如果服务器或客户端尚未更新到 2.2.x,也无需担心。
不再支持 Forge 以及低于 1.21 的 Minecraft 版本。Plasmo 语音 (Plasmo Voice) 现在在 1.21 及更新版本上仅支持 Fabric 和 NeoForge。
客户端
- 当音源行超过 3 个时,
音量标签页现在只显示最近 5 分钟内使用的音源行(近距离始终显示)。可通过音源音量旁的按钮切换为显示全部。 - 实体图标现在可渲染在任何实体上,而不仅是生物上。
- 展示型实体现在即使为空也会显示图标,并且其变换会应用到图标和音频位置上,因此它们可用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到某个音源时,音频流开头有时被截断的问题。
- 修复了音频流最后一刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或在下一个音频流开始时延迟播放的问题。
- 修复了已播放的一小段音频有时被重复播放的问题。
- 修复了切换世界时,近距离音源的音频流中间出现短暂静音的问题。
- 移除了
自适应抖动缓冲器,因为它无法正常工作。
- 客户端配置中的激活方式设置现在按激活方式名称而非 UUID 存储。
- 修复了服务器配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 层时,HUD 图标和叠加层不渲染的问题。#542
- 修复了调整窗口大小时,设置屏幕的重置滚动位置和搜索输入的问题。
- 修复了加入时音源行的叠加层设置有时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务端
- 命令现在使用 Brigadier:
/vmute现在要求在原因之前输入持续时间:/vmute <玩家> permanent <原因>,而不是/vmute <玩家> <原因>。/vmute现在会拒绝无效的持续时间(0、10x、溢出值、过去时间的u时间戳),而不是将其视为原因的一部分并永久禁言。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被禁言玩家的 UUID,即使无法解析其名称。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <玩家> run vrc将重连<玩家>。
- 更新 slib 到 2.1.0,这会破坏使用以下内容的附属:
- 搭配 Brigadier 命令使用的
McCommandManager#register。请改为通过McBrigadierCommandsRegisterEvent监听器使用McBrigadierRegistry注册它们。 MessageTextConverter。请改用McTextMessage.of(component)。
- 搭配 Brigadier 命令使用的
- 添加了毁灭支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 添加了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个不同线程上的插座将共享语音端口,而不是只用一个。 - UDP 线程数现在可通过
-Dplasmovoice.udp_threads设置(默认:CPU 核心数 * 2)。 - UDP 服务器现在复制更少的缓存器,批量进行插座写入,并且在没有任何监听者时不再创建数据包事件。
- 在我们的性能测试中,一个插座在开始丢包前现在比 2.1.x 能多发送约 1.2 倍的数据包,且每个已发送数据包的内存分配减少约 10 倍。
- 使用
reuse_port时,100 名玩家在同一位置说话(约 500k 个传出数据包/秒)在 4 核上可以无丢失地处理。
- 修复了在 NeoForge 上 Plasmo 语音权限对权限模组(例如 LuckPerms)不可见的问题。
- 修复了配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。
[Fabric 26.2] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30测试版
这是一个测试版,仍需进一步测试,尤其是语音播放方面的改动。 如遇到任何问题,请在 GitHub 或 Discord 上反馈。
2.1.x 与 2.2.x 版本在协议上互相兼容, 因此即使服务器或客户端尚未更新到 2.2.x,也无需担心。
已放弃对 Forge 以及 Minecraft 1.21 以下版本的支持。Plasmo 语音 (Plasmo Voice) 现在仅支持 1.21 及以上版本的 Fabric 和 NeoForge。
客户端
- 当源线路超过 3 条时,
Volume(音量)标签页现在仅显示最近 5 分钟内使用过的源线路(Proximity(近距离)始终显示)。可通过Sources Volume(源音量)旁边的按钮切换为显示全部。 - 实体图标现在会渲染在任何实体上,而不仅限于生物。
- 展示实体(Display Entity)现在即使为空也会显示图标,且其变换会应用到图标和音频位置上,因此它们可以用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到某个音频源时,音频流开头有时被截断的问题。
- 修复了音频流最后时刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或在下一流开始时延迟播放的问题。
- 修复了有时会重复一小段已播放音频的问题。
- 修复了切换世界时,近距离音频源在音频流中间出现短暂静音的问题。
- 移除了
Adaptive Jitter Buffer(自适应抖动缓冲),因为它无法正常工作。
- 客户端配置中的激活设置现在按激活名称而非 UUID 存储。
- 修复了原生编码器忽略服务器配置中 Opus
mode和mtu_size的问题(它始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 图层时,HUD 图标和叠加层无法渲染的问题。#542
- 修复了调整窗口大小时,设置界面会重置滚动位置和搜索输入框的问题。
- 修复了进入服务器时,源线路的叠加层设置有时会被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务端
- 命令现已使用 Brigadier:
/vmute现在需要在原因之前填写持续时间:/vmute <player> permanent <reason>而非/vmute <player> <reason>。/vmute现在会拒绝无效的持续时间(0、10x、溢出值、过去时间的u时间戳),而不再将其视为原因的一部分并永久禁言。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被禁言玩家的 UUID,即使其名称无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <player> run vrc将会重连<player>。
- 将 slib 更新到 2.1.0,此更新会破坏使用以下内容的附属:
- 在 Brigadier 命令中使用
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中使用McBrigadierRegistry注册。 MessageTextConverter。请改用McTextMessage.of(component)。
- 在 Brigadier 命令中使用
- 新增了毁灭支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 新增了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个线程上的多个插座将共享语音端口,而不是只用一个。 - UDP 线程数现在可通过
-Dplasmovoice.udp_threads设置(默认值:CPU 核心数 * 2)。 - UDP 服务器现在会复制更少的缓存器、批量写入套接字,并且在没有监听者时不再创建数据包事件。
- 在我们的性能测试中,单个插座在开始丢包之前发送的数据包比 2.1.x 多约 1.2 倍,且每个发送的数据包所分配的内存减少约 10 倍。
- 启用
reuse_port后,100 名玩家在同一位置说话(约每秒 50 万个发出数据包)可在 4 个核心上无丢失地处理。
- 修复了在 NeoForge 上权限模组(如 LuckPerms)无法看到 Plasmo 语音权限的问题。
- 修复了原生编码器忽略配置中 Opus
mode和mtu_size的问题(它始终使用VOIP)。
[NeoForge 26.1] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30测试版
这是一个测试版本,仍需进行测试,尤其是语音播放方面的改动。 如果遇到任何问题,请在 GitHub 或 Discord 上报告。
2.1.x 与 2.2.x 版本在协议上是兼容的, 因此即使服务器或客户端尚未更新到 2.2.x 也无需担心。
不再支持 1.21 以下的 Forge 和 Minecraft 版本。Plasmo 语音 (Plasmo Voice) 现在仅支持 1.21 及更新版本的 Fabric 和 NeoForge。
客户端
- 当音源线路超过 3 条时,
音量标签页现在只显示最近 5 分钟内使用过的音源线路(近距离始终显示)。可通过音源音量旁边的按钮切换为显示全部。 - 实体图标现在会渲染在任何实体上,而不只是生物。
- 展示实体(Display Entity)现在即使为空也会显示图标,并且其变换会应用于图标和音频位置,因此可以将它们用作音频和图标的锚点。
- 改进了语音播放:
- 修复了第一次听到某个音源时,音频流的开头有时会被截断的问题。
- 修复了音频流的最后时刻有时会被截断的问题。
- 修复了音频流结尾有时丢失,或在下一个音频流开始时延迟播放的问题。
- 修复了已播放的一小段音频有时被重复播放的问题。
- 修复了近距离音源在切换世界时,音频流中间出现短暂静音的问题。
- 移除了
自适应抖动缓冲,因为它无法正常工作。
- 客户端配置中的激活方式设置现在按激活方式名称存储,而不是 UUID。
- 修复了服务器配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它一直使用VOIP)。 - 修复了 NeoForge 上存在大量 HUD 图层时,HUD 图标和叠加层不渲染的问题。#542
- 修复了设置屏幕在窗口大小改变时重置滚动位置和搜索输入的问题。
- 修复了音源线路的叠加层设置有时在加入时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现在使用 Brigadier:
/vmute现在要求持续时间在原因之前:/vmute <玩家> permanent <原因>而不是/vmute <玩家> <原因>。/vmute现在会拒绝无效的持续时间(0、10x、溢出值、过去时间的u时间戳),而不是将它们视为原因的一部分并永久禁言。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被禁言玩家的 UUID,即使其名称无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <玩家> run vrc将重连<玩家>。
- 更新 slib 至 2.1.0,这会破坏使用以下内容的附加组件:
- 搭配 Brigadier 命令使用的
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中使用McBrigadierRegistry注册。 MessageTextConverter。请改用McTextMessage.of(component)。
- 搭配 Brigadier 命令使用的
- 添加了毁灭(隐身)支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 添加了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个线程上的多个套接字将共享语音端口,而不是只使用一个。 - UDP 线程数现在可以通过
-Dplasmovoice.udp_threads设置(默认值:CPU 核心数 * 2)。 - UDP 服务器现在复制的缓冲区更少,批量写入套接字,并且在没有任何监听者时不创建数据包事件。
- 在我们的基准测试中,单个套接字在开始丢包前,现在比 2.1.x 能多发送约 1.2 倍的数据包,且每个已发送数据包的内存占用减少约 10 倍。
- 使用
reuse_port时,100 名玩家在同一位置说话(约 50 万个传出数据包/秒)可在 4 核上无丢包处理。
- 修复了 Plasmo 语音 (Plasmo Voice) 的权限在 NeoForge 上对权限模组(如 LuckPerms)不可见的问题。
- 修复了配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它一直使用VOIP)。
[Fabric 26.1] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta 测试版
这是一个测试版本,仍需进行测试,尤其是语音播放方面的改动。 如果遇到任何问题,请在 GitHub 或 Discord 上报告。
2.1.x 和 2.2.x 版本在协议上相互兼容, 因此无需担心服务器或客户端尚未更新到 2.2.x。
不再支持 Forge 以及 1.21 以下的 Minecraft 版本。Plasmo Voice 现在仅支持 1.21 及以上版本的 Fabric 和 NeoForge。
客户端
- 当音源行多于 3 个时,
音量标签页现在只显示最近 5 分钟内使用过的音源行(近距离始终显示)。可以通过音源音量旁的按钮切换为显示全部。 - 实体图标现在会渲染在任何实体上,而不仅是生物。
- 展示实体现在即使为空也会显示图标,且其变换会应用于图标和音频位置,因此可以将它们用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到音频源时,音频流开头有时被截断的问题。
- 修复了音频流最后一刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或在下一个流开头延迟播放的问题。
- 修复了有时会重复播放一小段已播放音频的问题。
- 修复了切换世界时,近距离音源的音频流中间出现短暂静音的问题。
- 移除了
自适应抖动缓冲器,因为它无法正常工作。
- 客户端配置中的激活方式设置现在以激活方式名称而非 UUID 存储。
- 修复了服务器配置中的 Opus
模式和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 层时,HUD 图标和显示层不渲染的问题。 #542
- 修复了调整窗口大小时,设置屏幕重置其滚动位置和搜索输入的问题。
- 修复了加入时音源行的显示层设置有时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现在使用 Brigadier:
/vmute现在要求先输入持续时间再输入原因:/vmute <player> permanent <reason>,而不是/vmute <player> <reason>。/vmute现在会拒绝无效的持续时间(0、10x、溢出的值、过去的u时间戳),而不是将其视为原因的一部分并永久禁言。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在即使无法解析被禁言玩家的名称,也接受其 UUID。/vrc现在使用实际命令执行者作为重连目标,因此/execute as <player> run vrc将重连<player>。
- 更新 slib 至 2.1.0,这会破坏使用以下内容的附属:
- 使用 Brigadier 命令的
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中使用McBrigadierRegistry注册它们。 MessageTextConverter。请改用McTextMessage.of(component)。
- 使用 Brigadier 命令的
- 添加了毁灭支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 添加了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个不同线程上的插座共享语音端口,而不是只有一个。 - UDP 线程数现在可以通过
-Dplasmovoice.udp_threads设置(默认值:CPU 核心数 * 2)。 - UDP 服务器现在复制更少的缓存器、批量写入套接字,并且在没有任何监听者时不再创建数据包事件。
- 在我们的性能测试中,单个插座在开始丢包前发送的数据包比 2.1.x 多约 1.2 倍,且每个已发送数据包的内存分配减少约 10 倍。
- 使用
reuse_port时,在同一位置说话的 100 名玩家(约 50 万个发出数据包/秒)可在 4 核上无损失地处理。
- 修复了在 NeoForge 上 Plasmo Voice 权限对权限类模组(例如 LuckPerms)不可见的问题。
- 修复了配置中的 Opus
模式和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。
[NeoForge 1.21.11] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta(测试版)
这是一个测试版,仍需测试,尤其是语音播放方面的更改。 如果遇到任何问题,请在 GitHub 或 Discord 上报告。
2.1.x 和 2.2.x 版本在协议上兼容, 因此无需担心服务器或客户端尚未更新到 2.2.x。
不再支持 Forge 以及低于 1.21 的 Minecraft 版本。Plasmo 语音现在仅支持 Fabric 和 NeoForge 上的 1.21 及更高版本。
客户端
- 当音源线路多于 3 条时,
Volume(音量)标签页现在只显示最近 5 分钟内使用过的音源线路(Proximity(近距离)始终显示)。可以通过Sources Volume(音源音量)旁边的按钮切换显示全部。 - 实体现在会在任何实体上渲染图标,而不只是在生物上。
- 展示实体(Display Entity)现在即使为空也会显示图标,并且其变换会应用到图标和音频位置上,因此它们可以用作音频和图标的锚点。
- 改进了语音播放:
- 修复了第一次听到音源时,音频流的开头有时会被截断的问题。
- 修复了音频流的最后一刻有时会被截断的问题。
- 修复了音频流的结尾有时会丢失,或在下一个音频流开始时延迟播放的问题。
- 修复了有时会重复播放一小段已播放过的音频的问题。
- 修复了切换世界时,近距离音源的音频流中间出现短暂静音的问题。
- 移除了
Adaptive Jitter Buffer(自适应抖动缓冲),因为它无法正常工作。
- 客户端配置中的激活设置现在改为按激活名称存储,而不是按 UUID 存储。
- 修复了服务器配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 层时,HUD 图标和叠加层无法渲染的问题。#542
- 修复了设置屏幕在窗口大小改变时重置滚动位置和搜索输入的问题。
- 修复了音源线路的叠加层设置有时在加入时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现在使用 Brigadier:
/vmute现在要求在原因之前指定持续时间:/vmute <player> permanent <reason>,而不是/vmute <player> <reason>。/vmute现在会拒绝无效的持续时间(0、10x、溢出的数值、过去的u时间戳),而不是将它们视为原因的一部分并永久禁言。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被禁言玩家的 UUID,即使其名称无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <player> run vrc将重连<player>。
- 更新了 slib 至 2.1.0,这会破坏使用以下功能的附属模组:
- 将 Brigadier 命令用于
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中用McBrigadierRegistry注册它们。 MessageTextConverter。请改用McTextMessage.of(component)。
- 将 Brigadier 命令用于
- 添加了隐身(Vanish)支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 添加了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个不同线程上的插座将共享语音端口,而不是只用一个。 - UDP 线程数现在可以通过
-Dplasmovoice.udp_threads设置(默认:CPU 核心数 * 2)。 - UDP 服务器现在复制更少的缓存器,批量写入套接字,并且在没有任何监听器时不再创建数据包事件。
- 在我们的性能测试中,单个套接字在开始丢包前现在比 2.1.x 多发送约 1.2 倍的数据包,并且每个发送的数据包分配的内存减少约 10 倍。
- 使用
reuse_port,在 4 个核心上可以无丢失地处理 100 名玩家在同一位置同时说话的情况(约 50 万个传出数据包/秒)。
- 修复了在 NeoForge 上权限模组(例如 LuckPerms)无法看到 Plasmo 语音权限的问题。
- 修复了配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。
[Fabric 1.21.11] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta
这是一个 Beta 版本,仍需测试,尤其是语音播放方面的改动。 如果遇到任何问题,请在 GitHub 或 Discord 上反馈。
2.1.x 和 2.2.x 版本在协议层面互相兼容, 因此无需担心服务器或客户端尚未更新到 2.2.x。
不再支持 Forge 以及 1.21 以下的 Minecraft 版本。Plasmo Voice 现在仅支持 1.21 及更新版本上的 Fabric 和 NeoForge。
客户端
- 当音源线路超过 3 条时,
音量选项卡现在只显示最近 5 分钟内使用过的音源线路(近距离始终显示)。可通过音源音量旁边的按钮切换为显示全部。 - 实体图标现在会渲染在任意实体上,而不仅仅是生物。
- 显示实体(Display Entity)现在即使为空也会显示图标,且其变换会应用到图标和音频位置上,因此可以将它们用作音频和图标的锚点。
- 改进了语音播放:
- 修复了第一次听到某个音源时,音频流开头有时被截断的问题。
- 修复了音频流最后一刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或在下一段音频流开始时延迟播放的问题。
- 修复了有时会重复播放一小段已播放音频的问题。
- 修复了切换世界时,近距离音源的音频流中间出现短暂静音的问题。
- 移除了
自适应抖动缓冲器,因为它无法正常工作。
- 客户端配置中的激活方式设置现在按激活方式名称存储,而不是 UUID。
- 修复了服务器配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(此前始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 图层时,HUD 图标和叠加层无法渲染的问题。#542
- 修复了调整窗口大小时,设置屏幕会重置滚动位置和搜索输入框的问题。
- 修复了加入服务器时,音源线路的叠加层设置有时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现在使用 Brigadier:
/vmute现在需要在原因之前填写持续时间:/vmute <玩家> permanent <原因>,而不是/vmute <玩家> <原因>。/vmute现在会拒绝无效的持续时间(0、10x、溢出的值、过去时间的u时间戳),而不再将它们当作原因的一部分并永久禁言。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被禁言玩家的 UUID,即使无法解析其名称也可以。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <玩家> run vrc将使<玩家>重新连接。
- 更新了 slib 至 2.1.0,这会破坏使用以下功能的附属:
- 使用 Brigadier 命令的
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中使用McBrigadierRegistry注册它们。 MessageTextConverter。请改用McTextMessage.of(component)。
- 使用 Brigadier 命令的
- 新增了隐身支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 新增了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个不同线程上的套接字将共享语音端口,而不是只使用一个。 - UDP 线程数现在可以通过
-Dplasmovoice.udp_threads设置(默认:CPU 核心数 * 2)。 - UDP 服务器现在复制的缓存器更少,会对套接字写入进行批处理,并且在没有任何监听者时不再创建数据包事件。
- 在我们的性能测试中,单个套接字在开始丢包之前,现在能比 2.1.x 多发送约 1.2 倍的数据包,且每个已发送数据包的内存分配减少约 10 倍。
- 使用
reuse_port时,100 名玩家在同一位置同时说话(约 50 万个/秒的发出数据包)可以在 4 核上无丢失地处理。
- 修复了在 NeoForge 上,权限模组(例如 LuckPerms)看不到 Plasmo Voice 权限的问题。
- 修复了配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(此前始终使用VOIP)。
[NeoForge 1.21.7] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30测试版
这是测试版,仍需进一步测试,尤其是语音播放方面的改动。 如果遇到任何问题,请在 GitHub 或 Discord 上反馈。
2.1.x 和 2.2.x 版本在协议上相互兼容, 因此即使服务器或客户端尚未更新到 2.2.x 也无需担心。
不再支持 Forge 以及低于 1.21 的 Minecraft 版本。Plasmo Voice 现在仅支持 Fabric 和 NeoForge 上的 1.21 及更新版本。
客户端
- 当音源线路超过 3 条时,
音量选项卡现在仅显示最近 5 分钟内使用过的音源线路(proximity始终显示)。可通过音源音量旁边的按钮切换为显示全部。 - 实体图标现在会渲染在任何实体上,而不仅是生物。
- 显示实体(Display Entity)现在即使为空也会显示图标,且其变换会应用到图标和音频位置上,因此可以将它们用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到某个音频源时,音频流开头有时被截断的问题。
- 修复了音频流最后时刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或在下一个音频流开始时延迟播放的问题。
- 修复了有时会重复播放一小段已播放过的音频的问题。
- 修复了在更改世界时,使用邻近(proximity)音源时音频流中间出现短暂静音的问题。
- 移除了
自适应抖动缓冲区,因为它无法正常工作。
- 客户端配置中的激活方式设置现在按激活方式名称存储,而不是 UUID。
- 修复了服务器配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 层时,HUD 图标和叠加层无法渲染的问题。#542
- 修复了设置界面在调整窗口大小时重置滚动位置和搜索输入框的问题。
- 修复了音源线路的叠加层设置有时在加入时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务端
- 命令现已使用 Brigadier:
/vmute现在要求在原因之前指定持续时间:/vmute <player> permanent <reason>,而不是/vmute <player> <reason>。/vmute现在会拒绝无效的持续时间(0、10x、溢出的数值、过去的u时间戳),而不是将它们视为原因的一部分并永久禁言。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被禁言玩家的 UUID,即使无法解析其名称。/vrc现在使用实际命令执行者作为重连目标,因此/execute as <player> run vrc将重连<player>。
- 将 slib 更新至 2.1.0,这会破坏使用以下功能的附属:
- 使用 Brigadier 命令的
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中使用McBrigadierRegistry注册它们。 MessageTextConverter。请改用McTextMessage.of(component)。
- 使用 Brigadier 命令的
- 新增了隐身支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 新增了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个不同线程上的套接字将共享语音端口,而不是只使用一个。 - UDP 线程数现在可以通过
-Dplasmovoice.udp_threads设置(默认值:CPU 核心数 * 2)。 - UDP 服务器现在会复制更少的缓存器、批量执行套接字写入,并且在没有监听者时不再创建数据包事件。
- 在我们的基准测试中,单个套接字在开始丢包之前现在比 2.1.x 多发送约 1.2 倍的数据包,且每个发送的数据包分配的内存约减少 10 倍。
- 使用
reuse_port时,100 名玩家在同一位置说话(约每秒 50 万个传出数据包)可以在 4 核上无丢包地处理。
- 修复了在 NeoForge 上 Plasmo Voice 权限对权限模组(例如 LuckPerms)不可见的问题。
- 修复了配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。
[NeoForge 1.21.6] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30测试版
这是测试版,仍需测试,尤其是语音播放方面的改动。 如果遇到问题,请在 GitHub 或 Discord 上报告。
2.1.x 和 2.2.x 版本在协议上相互兼容, 因此即使服务器或客户端尚未更新到 2.2.x 也无需担心。
已停止对 Forge 以及低于 1.21 的 Minecraft 版本的支持。Plasmo 语音 (Plasmo Voice) 现在仅支持 1.21 及更新版本的 Fabric 和 NeoForge。
客户端
- 当来源超过 3 个时,
音量选项卡现在仅显示最近 5 分钟内使用过的来源行(Proximity始终显示)。可通过来源音量旁的按钮切换为显示全部。 - 实体图标现在会渲染在任何实体上,而不仅是生物。
- 展示实体即使为空也会显示图标,且其变换会应用到图标和音频位置上,因此它们可以用作音频和图标的锚。
- 改进了语音播放:
- 修复了首次听到音频来源时音频流开头有时被截断的问题。
- 修复了音频流最后时刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或在下一个流开始时延迟播放的问题。
- 修复了有时会重复播放一小段已播放音频的问题。
- 修复了切换世界时,附近来源的音频流中间出现短暂静音的问题。
- 移除了
自适应抖动缓存器,因为它无法正常工作。
- 客户端配置中的激活设置现在按激活名称而非 UUID 存储。
- 修复了服务器配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 层时 HUD 图标和显示层不渲染的问题。#542
- 修复了调整窗口大小时设置屏幕的滚动位置和搜索输入被重置的问题。
- 修复了来源行的显示层设置有时在加入时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现在使用 Brigadier:
/vmute现在需要在原因之前输入持续时间:由/vmute <player> <reason>改为/vmute <player> permanent <reason>。/vmute现在会拒绝无效的持续时间(0、10x、溢出数值、过去的u时间戳),而不再将其视为原因的一部分并永久屏蔽。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被屏蔽玩家的 UUID,即使其名称无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <player> run vrc将重连<player>。
- 更新了 slib 至 2.1.0,这会破坏使用以下内容的附属:
- 使用 Brigadier 命令的
McCommandManager#register。请改为通过McBrigadierCommandsRegisterEvent监听器使用McBrigadierRegistry注册它们。 MessageTextConverter。请改用McTextMessage.of(component)。
- 使用 Brigadier 命令的
- 添加了毁灭支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 添加了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个线程上的多个插座将共享语音端口,而不是使用一个。 - UDP 线程数量现在可以通过
-Dplasmovoice.udp_threads设置(默认:CPU 核心数 * 2)。 - UDP 服务器现在复制更少的缓存器、批量写入插座,并且在没有任何监听者时不再创建数据包事件。
- 在我们的性能测试中,单个插座在开始丢包前发送的数据包比 2.1.x 多约 1.2 倍,且每个已发送数据包的内存分配减少约 10 倍。
- 使用
reuse_port时,100 名玩家在同一位置同时说话(约 50 万个/秒的传出数据包)可以在 4 个核心上无丢失地处理。
- 修复了 NeoForge 上权限模组(例如 LuckPerms)无法看到 Plasmo 语音 (Plasmo Voice) 权限的问题。
- 修复了配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。
[Fabric 1.21.6] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta
这是测试版本,仍需测试,尤其是语音播放方面的改动。 如果遇到任何问题,请在 GitHub 或 Discord 上反馈。
2.1.x 与 2.2.x 版本在协议上互相兼容, 因此无需担心服务器或客户端尚未更新到 2.2.x。
不再支持 1.21 以下的 Forge 和 Minecraft 版本。Plasmo 语音 (Plasmo Voice) 现在仅支持 1.21 及更新版本的 Fabric 和 NeoForge。
客户端
音量标签页现在在源条目超过 3 个时,只显示最近 5 分钟内使用过的源条目(Proximity始终显示)。可通过Sources Volume旁边的按钮切换为显示全部。- 实体图标现在可以渲染在任何实体上,而不仅限于生物。
- 显示实体(Display Entity)现在即使为空也会显示图标,且其变换会应用到图标和音频位置上,因此可以用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到音频源时,音频流开头有时会被截断的问题。
- 修复了音频流的最后时刻有时会被截断的问题。
- 修复了音频流的结尾有时会丢失,或延迟到下一个流的开头才播放的问题。
- 修复了已播放的一小段音频有时会被重复播放的问题。
- 修复了切换世界时,附近(Proximity)音频源在音频流中间出现短暂静音的问题。
- 移除了
Adaptive Jitter Buffer(自适应抖动缓冲),因为它无法正常工作。
- 客户端配置中的激活设置现在按激活名称存储,而不是按 UUID 存储。
- 修复了服务器配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。 - 修复了 NeoForge 上存在大量 HUD 图层时,HUD 图标和叠加层不渲染的问题。#542
- 修复了调整窗口大小时,设置屏幕会重置滚动位置和搜索输入框的问题。
- 修复了源条目的叠加层设置在加入服务器时有时会被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现在使用 Brigadier:
/vmute现在需要在原因之前输入持续时间:/vmute <player> permanent <reason>,而不是/vmute <player> <reason>。/vmute现在会拒绝无效的持续时间(0、10x、溢出的数值、过去的u时间戳),而不是将它们视为原因的一部分并永久禁言。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被禁言玩家的 UUID,即使其名称无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <player> run vrc将会重连<player>。
- 更新了 slib 至 2.1.0,这会破坏使用以下内容的附属:
- 使用 Brigadier 命令的
McCommandManager#register。请改为通过McBrigadierCommandsRegisterEvent监听器使用McBrigadierRegistry注册它们。 MessageTextConverter。请改用McTextMessage.of(component)。
- 使用 Brigadier 命令的
- 新增了隐身(Vanish)支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 新增了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个不同线程上的插座将共享语音端口,而不是只用一个。 - UDP 线程数量现在可以通过
-Dplasmovoice.udp_threads设置(默认:CPU 核心数 * 2)。 - UDP 服务器现在复制更少的缓存器、批量写入插座,并且在没有任何监听者时不再创建数据包事件。
- 在我们的性能测试中,单个插座在开始丢包之前,现在比 2.1.x 发送约 1.2 倍的数据包,且每个发送的数据包分配的内存约减少 10 倍。
- 使用
reuse_port时,100 名玩家在同一位置同时说话(约每秒 50 万个发出数据包)在 4 核处理器上可以无丢包地处理。
- 修复了 NeoForge 上权限模组(例如 LuckPerms)无法查看 Plasmo 语音权限的问题。
- 修复了配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。
[NeoForge 1.21.4] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta
这是一个测试版,仍需进一步测试,尤其是语音播放相关的更改。
如果您遇到任何问题,请在 GitHub 或 Discord 上报告。
2.1.x 和 2.2.x 版本在协议上是兼容的,
因此即使服务器或客户端尚未更新到 2.2.x,也无需担心。
已停止对 Forge 及 Minecraft 1.21 以下版本的支持。Plasmo Voice 现仅支持 Fabric 和 NeoForge 上的 1.21 及更新版本。
客户端
- 当源超过 3 个时,
音量标签页现在仅显示最近 5 分钟内使用的源行(Proximity始终显示)。可通过Sources Volume旁边的按钮切换为显示全部。 - 实体图标现在可渲染于任意实体,而不仅限于生物。
- 显示实体即使为空也会显示图标,且其变换会应用于图标和音频位置,因此可用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到音频源时音频流开头有时被截断的问题。
- 修复了音频流最后一刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或在下一流开始时延迟播放的问题。
- 修复了已播放的音频片段有时被短暂重复的问题。
- 修复了在切换世界时,邻近源的音频流中间出现短暂静音的问题。
- 移除了
自适应抖动缓冲器(Adaptive Jitter Buffer),因其无法正常工作。
- 客户端配置中的激活设置现在按激活名称而非 UUID 存储。
- 修复了原生编码器忽略服务器配置中 Opus 的
mode和mtu_size参数的问题(此前始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 图层时 HUD 图标和叠加层无法渲染的问题。#542
- 修复了窗口缩放时设置界面重置滚动位置和搜索输入框内容的问题。
- 修复了加入服务器时源行的叠加层设置有时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现已使用 Brigadier:
/vmute现在要求在原因前指定持续时间:例如/vmute <player> permanent <reason>,而非/vmute <player> <reason>。/vmute现在会拒绝无效的持续时间(如0、10x、溢出值、过去的时间戳u),而不再将其视为原因的一部分并永久屏蔽。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被屏蔽玩家的 UUID,即使其用户名无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <player> run vrc将使<player>重连。
- 更新 sLib 至 2.1.0,这会破坏使用以下功能的附属模组:
- 使用 Brigadier 命令的
McCommandManager#register。请改用 `McBrigadierCommands
- 使用 Brigadier 命令的
[Fabric 1.21.4] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30测试版
这是一个测试版本,仍需测试,尤其是语音播放方面的改动。 如果你遇到任何问题,请在 GitHub 或 Discord 上报告。
2.1.x 与 2.2.x 版本在协议上兼容, 所以即使服务器或客户端尚未更新到 2.2.x 也无需担心。
不再支持 Forge 及 1.21 以下的 Minecraft 版本。Plasmo 语音 (Plasmo Voice) 现在仅支持 1.21 及以上版本的 Fabric 和 NeoForge。
客户端
- 当音源线路超过 3 条时,
音量标签页现在只显示最近 5 分钟内使用过的音源线路(邻近始终显示)。可以通过音源音量旁边的按钮切换为显示全部。 - 实体图标现在会渲染在任何实体上,而不仅仅是生物。
- 展示实体(Display Entity)现在即使为空也会显示图标,且其变换会应用于图标和音频位置,因此可以将它们用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到音频源时,音频流开头有时被截断的问题。
- 修复了音频流最后一刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或在下一音频流开始时延迟播放的问题。
- 修复了有时会重复播放一小段已播放过的音频的问题。
- 修复了在切换世界时,邻近音源的音频流中间出现短暂静音的问题。
- 移除了
自适应抖动缓冲器,因为它无法正常工作。
- 客户端配置中的激活方式设置现在按激活方式名称存储,而不是按 UUID 存储。
- 修复了服务器配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 层时,HUD 图标和叠加层不渲染的问题。 #542
- 修复了调整窗体大小时,设置屏幕的重置滚动位置和搜索输入的问题。
- 修复了加入服务器时,音源线路的叠加层设置有时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现在使用 Brigadier:
/vmute现在要求在原因之前输入持续时间:/vmute <玩家> permanent <原因>,而不是/vmute <玩家> <原因>。/vmute现在会拒绝无效的持续时间(0、10x、溢出值、过去时间的u时间戳),而不是将它们视为原因的一部分并永久禁言。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被禁言玩家的 UUID,即使其名称无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <玩家> run vrc将重连<玩家>。
- 更新 slib 到 2.1.0,这会破坏使用以下内容的附属:
- 使用 Brigadier 命令的
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中使用McBrigadierRegistry注册它们。 MessageTextConverter。请改用McTextMessage.of(component)。
- 使用 Brigadier 命令的
- 添加了隐身支持,支持的模组:Fabric 上的 Melius Vanish 和 NeoForge 上的 Vanishmod。
- 添加了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个不同线程上的插座共享语音端口,而不是只用一个。 - UDP 线程数现在可以通过
-Dplasmovoice.udp_threads设置(默认:CPU 核心数 * 2)。 - UDP 服务器现在复制更少的缓存器,批量写入插座,并且在没有任何监听者时不再创建数据包事件。
- 在我们的性能测试中,一个插座在开始丢包前比 2.1.x 多发送约 1.2 倍的数据包,且每个发送的数据包少分配约 10 倍的内存。
- 使用
reuse_port时,100 名玩家在同一位置说话(约 50 万个传出数据包/秒)可在 4 核上无丢失地处理。
- 修复了 NeoForge 上权限模组(如 LuckPerms)无法看到 Plasmo 语音权限的问题。
- 修复了配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它始终使用VOIP)。
[NeoForge 1.21.1] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta
这是一个测试版,仍需进一步测试,尤其是语音播放相关的更改。
如果您遇到任何问题,请在 GitHub 或 Discord 上报告。
2.1.x 与 2.2.x 版本协议兼容,
因此即使服务器或客户端尚未更新至 2.2.x,也无需担心。
已停止对 Forge 及低于 1.21 版本的 Minecraft 的支持。Plasmo 语音现在仅支持 1.21 及更新版本的 Fabric 和 NeoForge。
客户端
- 当源线路数量超过 3 条时,
音量标签页现在仅显示过去 5 分钟内使用的源线路(近距离始终显示)。可通过Sources Volume旁边的按钮切换为显示全部。 - 实体图标现在会渲染在所有实体上,而不仅限于生物。
- 即使显示实体为空,也会显示图标,并将其实体变换应用于图标和音频位置,因此可将其用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到音频源时音频流开头有时被截断的问题。
- 修复了音频流最后一刻有时被截断的问题。
- 修复了音频流结尾有时丢失,或延迟到下一段音频流开始时才播放的问题。
- 修复了已播放过的音频片段有时被重复播放的问题。
- 修复了在切换世界时,近距离音频源的音频流中间可能出现短暂静音的问题。
- 移除了
自适应抖动缓冲器,因为它无法正常工作。
- 客户端配置中的激活设置现在按激活名称而非 UUID 存储。
- 修复了原生编码器忽略服务器配置中的 Opus
mode和mtu_size参数的问题(此前始终使用VOIP模式)。 - 修复了在 NeoForge 上存在大量 HUD 图层时,HUD 图标和叠加层无法渲染的问题。#542
- 修复了窗口调整大小时设置界面重置滚动位置和搜索输入框内容的问题。
- 修复了加入服务器时源线路的叠加层设置有时被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务端
- 命令现已使用 Brigadier:
/vmute现在要求在原因前指定持续时间:例如/vmute <玩家> permanent <原因>,而非/vmute <玩家> <原因>。/vmute现在会拒绝无效的持续时间(如0、10x、溢出值、过去的时间戳u),而不再将其视为原因的一部分并永久屏蔽。/vmute与/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被屏蔽玩家的 UUID,即使其用户名无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <玩家> run vrc将使<玩家>重连。
- 更新 sLib 至 2.1.0,这会破坏使用以下功能的附属模组:
[Fabric 1.21.1] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta
这是一个测试版,仍需进一步测试,尤其是语音播放相关的更改。
如果您遇到任何问题,请在 GitHub 或 Discord 上报告。
2.1.x 与 2.2.x 版本在协议上兼容,
因此即使服务器或客户端尚未更新至 2.2.x,也无需担心。
已停止对 Forge 及 Minecraft 1.21 以下版本的支持。Plasmo 语音 (Plasmo Voice) 现仅支持 Fabric 和 NeoForge,并且仅适用于 1.21 及更高版本。
客户端
- 当源线路超过 3 条时,
音量标签页现在仅显示过去 5 分钟内使用过的源线路(Proximity始终显示)。可通过Sources Volume旁边的按钮切换为显示全部。 - 实体图标现在会渲染在所有实体上,而不仅限于生物。
- 即使显示实体为空,也会显示图标,并将其实体变换应用于图标和音频位置,因此可用作音频和图标的锚点。
- 改进了语音播放:
- 修复了首次听到音频源时音频流开头偶尔被截断的问题。
- 修复了音频流最后一刻偶尔被截断的问题。
- 修复了音频流结尾偶尔丢失,或延迟到下一段音频开头才播放的问题。
- 修复了已播放的音频片段偶尔被短暂重复的问题。
- 修复了在切换世界时,邻近音频源的音频流中间偶尔出现短暂静音的问题。
- 移除了
Adaptive Jitter Buffer,因为它无法正常工作。
- 客户端配置中的激活设置现在按激活名称而非 UUID 存储。
- 修复了原生编码器忽略服务器配置中的 Opus
mode和mtu_size的问题(此前始终使用VOIP)。 - 修复了在 NeoForge 上存在大量 HUD 图层时 HUD 图标和叠加层无法渲染的问题。#542
- 修复了窗口调整大小时设置界面重置滚动位置和搜索输入的问题。
- 修复了加入服务器时源线路的叠加层设置偶尔被重置的问题。
- 修复了
ClientSourceLine#getVolume返回最大音量而非实际音量的问题。
服务器
- 命令现已使用 Brigadier:
/vmute现在要求在原因前指定持续时间:例如/vmute <player> permanent <reason>,而非/vmute <player> <reason>。/vmute现在会拒绝无效的持续时间(如0、10x、溢出值、过去的时间戳u),而不再将其视为原因的一部分并永久屏蔽。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被屏蔽玩家的 UUID,即使其用户名无法解析。/vrc现在使用实际的命令执行者作为重连目标,因此/execute as <player> run vrc将重连<player>。
- 已将 slib 更新至 2.1.0,这会破坏使用以下内容的附属模组:
- 使用
McCommandManager#register注册 Brigadier 命令。请改
- 使用
[Velocity] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30测试版
这是一个测试版本,仍需进一步测试,尤其是每个玩家与后端服务器的独立套接字连接。 如果遇到任何问题,请在 GitHub 或 Discord 上反馈。
2.1.x 和 2.2.x 版本在协议上相互兼容, 因此即使服务器或客户端尚未更新到 2.2.x 也无需担心。
- 现在需要 Java 21。
- 代理现在会为每个玩家开启一条通往后端服务器的独立套接字连接,而不再通过公共语音套接字转发后端流量(该套接字在高负载下曾是瓶颈)。#535
- slib 已更新至 2.1.0,这会导致使用以下内容的插件失效:
- 使用 Brigadier 命令的
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中使用McBrigadierRegistry注册。 MessageTextConverter。请改用McTextMessage.of(component)。
- 使用 Brigadier 命令的
- 新增可选的 SO_REUSEPORT 支持(
config.toml中的[reuse_port],仅限 Linux)。启用后,多个线程上的多个套接字将共享语音端口,而不是只使用一个。 - UDP 线程数量现在可以通过
-Dplasmovoice.udp_threads设置(默认:CPU 核心数 * 2)。 - UDP 服务器现在减少了缓冲区复制,批量写入套接字,并转发后端数据包而无需解码。
[BungeeCord] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta
这是一个测试版,仍需测试,尤其是每个玩家独立连接至后端服务器的套接字。 如果遇到任何问题,请在 GitHub 或 Discord 上报告。
2.1.x 和 2.2.x 版本协议兼容, 因此无需担心服务器或客户端尚未更新到 2.2.x。
- 现在需要 Java 21。
- 代理现在为每个玩家单独打开一条连接后端服务器的套接字,而不再通过公共语音套接字发送后端流量——后者在高负载下曾是性能瓶颈。#535
- 更新 slib 至 2.1.0,这会导致使用以下功能的插件失效:
- 使用 Brigadier 命令的
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中使用McBrigadierRegistry注册。 MessageTextConverter。请改用McTextMessage.of(component)。
- 使用 Brigadier 命令的
- 新增可选的 SO_REUSEPORT 支持(
config.toml中的[reuse_port],仅限 Linux)。启用后,多个套接字可在不同线程上共享语音端口,而不再只有一个。 - UDP 线程数现在可通过
-Dplasmovoice.udp_threads设置(默认:CPU 核心数 * 2)。 - UDP 服务器现在减少了缓冲区复制,批量执行套接字写入,并直接转发后端数据包而无需解码。
[Paper] Plasmo Voice 2.2.0-beta.1
on 2026 Sep 30Beta
这是测试版,仍需进一步测试。 如遇到问题,请在 GitHub 或 Discord 上报告。
2.1.x 和 2.2.x 版本协议兼容, 因此无需担心服务器或客户端未更新到 2.2.x。
- Plasmo 语音现在是 Paper 插件。不再支持 Spigot,请使用 Paper 或 Folia 1.21+。
- 命令现在使用 Brigadier:
/vmute现在要求时长在原因之前:使用/vmute <玩家> permanent <原因>而非/vmute <玩家> <原因>。/vmute现在会拒绝无效时长(0、10x、溢出数值、过去的u时间戳),而不是将其视为原因的一部分并永久沉默。/vmute和/vunmute现在接受目标选择器,例如/vmute @a[distance=..10] 5m。/vunmute现在接受被沉默玩家的 UUID,即使无法解析其名称。/vrc现在使用实际命令执行者作为重连目标,因此/execute as <玩家> run vrc将重连该<玩家>。
- 命令现在可以在数据包函数中使用,无需宏。
- slib 已更新至 2.1.0,这会破坏使用以下功能的插件:
- 使用 Brigadier 命令的
McCommandManager#register。请改为在McBrigadierCommandsRegisterEvent监听器中使用McBrigadierRegistry注册。 MessageTextConverter。请改用McTextMessage.of(component)。
- 使用 Brigadier 命令的
- 毁灭现在始终通过 Paper 的玩家可见性 API 处理,因此移除了与 SuperVanish/PremiumVanish 的直接集成。
- 添加了可选的 SO_REUSEPORT 支持(
config.toml中的[voice.reuse_port],仅限 Linux)。启用后,多个线程上的多个套接字共享语音端口,而不是只用一个。 - UDP 线程数现在可以通过
-Dplasmovoice.udp_threads设置(默认:CPU 核心数 * 2)。 - UDP 线程数不再跟随
spigot.yml中的netty-threads。 - UDP 服务器现在复制更少的缓冲区,批量写入套接字,并且在没有监听者时不创建数据包事件。
- 在我们的基准测试中,单个套接字在开始丢包前发送的数据包数量比 2.1.x 多约 1.2 倍,且每个发送的数据包分配的内存减少约 10 倍。
- 使用
reuse_port时,100 名玩家在同一位置说话(约 500k 出站数据包/秒)可在 4 核上无丢包处理。
- 修复了配置中的 Opus
mode和mtu_size被原生编码器忽略的问题(它之前始终使用VOIP)。



