
想要看代码高亮的可以去原文地址或者我的微信公众号(pearapple_2015)查看。
原文链接:https://wiki.mcjty.eu/modding/index.php?title=Networking-1.9

这个文档是关于简单的网络也就是键盘事件的处理。在这个例子中,我们将监听一个客户端的键盘按下事件(“t”),然后给服务器端发送一个包,这样服务器端可以基于这个做一些处理。
首先,我们需要注册我们的键盘绑定。这个可以像下面这样做。这段代码十分基础的注册了一个新的按键并默认的把它分配给了“t”。玩家可以在控制的设置中改变这个配置:

你还需要告诉系统万一玩家按下这个键会发生什么。这个可以像下面这样做。基本上这个类是一个监听“KeyInputEvent”(键盘输入事件)的事件处理器。这个是在客户端被调用的。由于我们希望在服务端处理我们的案件事件,我们只需要给服务器端发送一个包。更多的关于这个的内容将会在这个教程的第二部分:

这两个类现在还不能做任何事情。为了让它们真正的工作,你需要在ClientProxy类中添加一些东西:

现在我们需要做的是添加包的实现。这里你需要创建两个类。一个是消息(这个在客户端创建,然后被发送到服务端),另一个是消息处理器(这个在服务器端被调用)。我们推荐你创建两个不同的类。一种发消息的比较容易的方式是让处理器成为消息类的一个内部静态类,就像我们这里做的。至于网络和线程注意那个特殊的警告:


最后,我们需要设置我们的包处理器,这样我们可以把一个包从客户端发送到服务端。首先,我们创建一个新的“PacketHandler”类。在这个类我们将会注册我们需要的所有的包(现在只有一个),然后根据它们是从服务端发送到客户端还是从客户端发送到服务端来分类。在这个例子中,我们只需要一个从客户端发送到服务端的包:

要让这个真正的运行,你需要扩展你的CommonProxy类中的preInit()方法:

现在如果你试一试,你应该可以在游戏里按下“t”来获取你注视着的方块的注册名。
