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共用。
相关条目
- MessageExhaustionSync - 调用方之一
- MessageSaturationSync - 调用方之一
- SyncHandler - 所在包的管理类