Minecraft基岩版@minecraft/server 1.2.0-beta beforeChat事件报错求助
解决@minecraft/server 1.2.0-beta中聊天事件监听报错问题
问题原因
1.2.0-beta版本对事件系统进行了重构,原server.world.events.beforeChat已被移除,替代为server.world.beforeEvents.chatSend,这就是触发TypeError: cannot read property 'subscribe' of undefined的原因。
正确代码实现
Manifest 依赖配置(无需修改)
{ "module_name": "@minecraft/server", "version": "1.2.0-beta" }
Main.js 修正代码
import * as server from "@minecraft/server"; // 1.2.0-beta版本的聊天事件监听写法 server.world.beforeEvents.chatSend.subscribe((eventData) => { const player = eventData.sender; const message = eventData.message; // 示例:给发送者回显消息 player.tell(`[${player.name}]: ${message}`); // 如需取消原聊天消息的服务器广播,可添加以下代码 // eventData.cancel = true; });
关键变化说明
- 事件路径从
world.events.beforeChat改为world.beforeEvents.chatSend - 事件对象核心属性保持兼容:
sender(消息发送玩家)、message(聊天内容)依然可用 - 新增
cancel属性,设置为true可阻止原聊天消息在服务器内传播
内容的提问来源于stack exchange,提问作者R3dTux
相关产品推荐
相关产品推荐

