Java “发送”;MOTD“;从自定义Netty服务器到Minecraft客户端

Java “发送”;MOTD“;从自定义Netty服务器到Minecraft客户端,java,netty,minecraft,Java,Netty,Minecraft,我有一个基本的Netty服务器(来自教程)(),它接收来自客户机的请求,但是如何向客户机发送字符串呢 例如,在普通的Minecraft服务器上,您在配置文件中指定“MOTD”,当客户端从服务器列表ping它时,它将显示该字符串。我需要做同样的事情,但是从我的服务器代码。如果您希望将MoTD发送到客户机,您必须根据协议和数据确定发送的内容 例如,在最基本的形式中,发送的数据可以是1字节的操作(display motd),然后是可变长度的字符串 如果我必须找到如何发送此邮件,我会亲自查看或找到发送方

我有一个基本的Netty服务器(来自教程)(),它接收来自客户机的请求,但是如何向客户机发送字符串呢


例如,在普通的Minecraft服务器上,您在配置文件中指定“MOTD”,当客户端从服务器列表ping它时,它将显示该字符串。我需要做同样的事情,但是从我的服务器代码。

如果您希望将MoTD发送到客户机,您必须根据协议和数据确定发送的内容

例如,在最基本的形式中,发送的数据可以是1字节的操作(display motd),然后是可变长度的字符串

如果我必须找到如何发送此邮件,我会亲自查看或找到发送方式

更新: 在查看代码时,Minecraft似乎也使用Netty,因此这在您理解它方面发挥了优势。不幸的是,代码是非官方的反编译,因此混淆了

更新2: 我认为你应该检查的班级是

net.minecraft.server.PacketStatusOutServerInfo

发送的数据似乎是ServerPing类生成的JSON


你也可以退房(特别是);Moders可以在其中找到协议和加密的解释。

此处理程序显示MOTD的发送:

只是碰巧MOTD处理在第69行:

当通道接收到ping数据包时,它将响应编码为ByteBuf并将其写回通道


请注意,该文件中存在一些反编译错误-忽略它们并修复它。

这仍然会在minecraft中出现,还是会使用您的服务器?客户端的渲染功能是什么?您已经尝试过哪些研究和/或代码?这将是我的自定义服务器代码。这只是一个普通的香草Minecraft客户。在过去半个小时做了大量的研究之后,我对需要做什么有了大致的想法,我只是不知道如何实现它。它是一个Bukkit插件吗?不,它是一个完全独立的项目。我正在使用Netty创建Minecraft服务器的替代品。这就是我选择Netty的原因,因为我看到了它的用途。我来看看那门课,谢谢。我一直在翻源代码,忘了回复。别忘了看看答案底部的Ping协议!那可能是最有用的。我现在来看看。再次感谢。如果我有问题,我会告诉你的。我已经尝试了那个代码,但它不起作用。我可能遗漏了一些东西,但我确实直接从某个反编译源获取了它。我会看看我能做些什么。我已经做到了:但它不发送任何数据。这里也是主要的服务器类:记住检查协议序列化。