You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Minecraft 1.12.2 Forge模组开发:如何获取玩家发送的聊天消息内容

1.12.2 Forge 通过 ServerChatEvent 获取玩家聊天内容方法

核心获取方法

在ServerChatEvent的监听方法中,直接调用事件实例的getMessage()方法即可获取玩家发送的原始聊天内容,返回值为纯字符串格式,不含聊天消息的装饰性内容(比如玩家名称、前缀后缀等)。

完整代码示例

首先确保你的事件监听类已经注册到服务端事件总线,示例代码如下:

import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.event.ServerChatEvent;

public class ChatListener {
    @SubscribeEvent
    public void onPlayerChat(ServerChatEvent event) {
        // 核心代码:获取玩家发送的原始消息
        String playerChatContent = event.getMessage();
        
        // 示例逻辑:检测到玩家发送对应关键词时执行自定义逻辑
        if (playerChatContent.equals("hello")) {
            System.out.println("玩家" + event.getPlayer().getName() + "发送了hello消息");
        }
        
        // 可选操作:修改玩家发送的消息
        // event.setMessage("修改后的消息内容");
        // 可选操作:取消本次聊天消息的全服广播
        // event.setCanceled(true);
    }
}

注意事项

  • 调用getMessage()拿到的是玩家在聊天框输入的原始未加工内容,没有经过任何服务端的格式化处理
  • ServerChatEvent是服务端专属事件,不要将监听注册到客户端事件总线,否则无法触发
  • 如果你需要获取最终广播的带格式聊天组件,可以调用event.getComponent()方法获取IChatComponent实例

内容的提问来源于stack exchange,提问作者1231231

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:09:03