NetworkHelper

基本信息

属性 值
类名 squeek.applecore.network.NetworkHelper
类型 class,1 个静态方法
启用版本 Minecraft 1.7.10

功能

消解「同一个 IMessage 实现在服务端与客户端都要跑、但取玩家的方式不同」的问题。

public static EntityPlayer getSidedPlayer(MessageContext ctx) {
    return ctx.side == Side.SERVER ? ctx.getServerHandler().playerEntity
            : FMLClientHandler.instance().getClientPlayerEntity();
}

实现要点

  • 服务端走 ctx.getServerHandler().playerEntity, 客户端走 FMLClientHandler.instance().getClientPlayerEntity()。
  • 本类不设 @SideOnly;两个分支在各自的端上都会执行到对应半边, 未使用的半边不触发类加载错误。
  • 供 MessageExhaustionSync 与 MessageSaturationSync 的 onMessage 共用。

相关条目