0

我正在使用需要诸如“.command”之类的命令的 java 结构模型,并且这样做需要我的程序访问已发送的消息。在查看了其他人的一些代码后,我注意到他们都使用 net.minecraft.class_746 作为 mixin。我也在 Minecraft 1.18.1 上尝试过,但是在浏览了 net.minecraft 目录后,我发现只有 class_6567 和 class_6148 以及许多其他包。我一直在挖掘其他文件,但我没有找到任何东西来实现我想要的。我找不到任何东西来访问所有已发送的消息。任何帮助,将不胜感激。谢谢!

4

1 回答 1

0

经过大约一个小时的挖掘,我找到了 ClientPlayerEntity 类。它似乎就像 class_746 一样工作,我能够得到我想要的结果。如果有人需要,这是代码的基本部分:

@Mixin( ClientPlayerEntity.class )
public class ChatMixin {

    @Inject(method={"sendChatMessage"}, at={@At("HEAD")}, cancellable=true)
    public void sendChatMessage(final String message, final CallbackInfo ci) {
        if(message.equalsIgnoreCase(".command")) {
            ci.cancel();
        }
    }
}
于 2022-02-13T10:47:54.053 回答