
语音消息
在聊天框中发送语音消息
语音消息
语音消息是一款基于 NeoForge 1.21.1 的 Minecraft 模组,允许玩家录制简短的语音消息,并通过聊天栏中可点击的消息发送给其他玩家——无需外部语音服务器或账号。
- ✅ 服务端权威配置(防滥用、限流)
- ✅ 支持单人游戏、局域网和专用服务器
- ✅ 免费安装:即使对方没有安装模组也能正常游玩
模组介绍
录制一段简短的语音片段,只需按下一个按键,它就会以绿色、可点击的消息广播到聊天栏中。任何点击它的玩家都能立即听到你的声音——音频按需下载,并在本次会话中本地缓存。
功能特性
- 按
V键录音 —— 按住开始录音,松开即发送。可在原版控制界面中重新绑定按键。 - 屏幕顶部的绿色 BOSS 血条 HUD 显示剩余录音时间(倒计时)。
- 点击即可播放的可点击聊天消息,在你完成录音后广播给所有人。
- 点击播放 —— 客户端先检查本地缓存,命中则立即播放;未命中则下载、缓存并播放。
- 麦克风音量(0–200%),可在配置界面中通过滑块调节。
- 速率限制 / 防刷屏 —— 可配置的玩家在滚动 5 分钟窗口内可发送语音消息数量上限,由服务端强制执行。
- 服务端权威的音频配置 —— 最大录音时长、采样率、比特率、编解码器(
WAV/OPUS)以及服务端缓存清理间隔。 - 临时本地缓存 —— 关闭游戏或离开服务器时自动清除。
- 故障安全兼容性:
- 服务端未安装模组 → 客户端的语音功能被静默禁用;你仍然可以加入。
- 客户端未安装模组 → 服务端仅忽略其(不存在的)语音流量。
- 非游戏线程音频处理 —— 音频捕获、编码、解码和播放永远不会阻塞游戏线程。
使用方法
- 将
voicemessage-<版本>.jar放入客户端的mods/文件夹中(如果你希望语音在服务端生效,也把它放入服务端的mods/文件夹)。 - 加入同样运行该模组的服务器。
- 按住
V开始录音——绿色血条会倒计时剩余时间。 - 松开
V发送。松开过快(< 150 毫秒)会丢弃该片段。 - 每个人都会在聊天栏中看到你的消息;点击即可播放音频。
命令
| 命令 | 说明 |
|---|---|
/voicemessage play <uuid> |
播放指定的语音消息(由可点击的聊天消息使用)。 |
权限
该模组通过 NeoForge 权限 API 暴露了两个权限节点。两者默认 对所有玩家授予,因此模组无需权限插件即可工作。使用 LuckPerms 来控制谁能发送或接收语音消息:
| 节点 | 默认值 | 效果 |
|---|---|---|
voicemessage.send |
true |
允许录制和发送语音消息。 |
voicemessage.receive |
true |
允许查看和播放其他玩家的语音消息。 |
LuckPerms 示例(先限制所有人,再授予某用户组权限):
/lp group default permission set voicemessage.send false
/lp group default permission set voicemessage.receive false
/lp group vip permission set voicemessage.* true
配置
服务端(config/voicemessage-server.toml):
| 键 | 默认值 | 说明 |
|---|---|---|
maxRecordingSeconds |
30 |
最大录音时长(秒,1–300)。 |
sampleRate |
16000 |
音频采样率(Hz,8000–48000)。 |
bitrate |
24000 |
音频比特率(bps,由 OPUS 使用)。 |
codec |
WAV |
WAV 或 OPUS。 |
serverCacheClearInterval |
300 |
服务端缓存清理的间隔秒数。 |
maxVoiceMessagesPer5Minutes |
10 |
滚动 5 分钟窗口内最大语音消息数(0 = 不限)。 |
客户端(config/voicemessage-client.toml):
| 键 | 默认值 | 说明 |
|---|---|---|
microphoneVolume |
100 |
麦克风音量百分比(0–200),应用于录音。 |
localCacheEnabled |
true |
是否将会话中下载的消息缓存到磁盘。 |
localCacheMaxMb |
256 |
本地缓存大小限制,超出后驱逐旧条目。 |
当游戏关闭或你离开服务器/世界时,本地缓存会自动清除。
OPUS 编解码器(可选)
Opus 使用纯 Java 的 Concentus 库,默认不捆绑。要启用它,请添加依赖,捆绑(JarJar/shading)并设置 codec = "OPUS"。没有 Concentus 的客户端会自动回退到 WAV。
构建
gradlew build
构建的 jar 位于 build/libs/voicemessage-<版本>.jar。
许可证
该模组根据 GNU 通用公共许可证 v3(GPL-3.0) 授权——见 许可证。项目脚手架由 NeoForged MDK 生成,仍受其 MIT 模板许可证保护——见 模板许可证。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。