Channel Loader

基本信息

loader/ChannelLoader.java —— 向本 mod 的 FCNetworkWrapper 注册 13 条网络消息,由 FluidCraft.preInit() 里的 ChannelLoader.INSTANCE.run() 触发 (FluidCraft.java:47)。

项 值
单例 public static final ChannelLoader INSTANCE
实现 Runnable
消息数 13(Side.SERVER 7 条 / Side.CLIENT 6 条)
通道对象 FluidCraft.proxy.netHandler(FCNetworkWrapper)

13 条消息与 discriminator

discriminator 由 int id = 0 起顺序递增,同一包类注册两次时占两个 id:

id 包类 方向
0 CPacketSwitchGuis SERVER
1 CPacketFluidPatternTermBtns SERVER
2 CPacketSwitchGuis CLIENT
3 CPacketDumpTank SERVER
4 SPacketFluidUpdate CLIENT
5 SPacketSuperStockReplenisherUpdate CLIENT
6 CPacketValueConfig SERVER
7 CPacketLevelMaintainer SERVER
8 SPacketLevelTerminalUpdate CLIENT
9 CPacketLevelTerminalCommands SERVER
10 SPacketLevelMaintainerGuiUpdate CLIENT
11 SPacketCustomButtonUpdate CLIENT
12 CPacketCustomButtonUpdate SERVER

CPacketSwitchGuis 与 CPacketCustomButtonUpdate 各注册 两次 (一次 SERVER、一次 CLIENT),所以 7 个不同包类用了 13 个 id。 按包类去重统计会得到 7,与实际的 13 条消息不符。

通用封包

network/ 下另有 2 个基类与 1 个编码器:

类 作用
CPacketCustomButtonUpdate 通用按钮事件(S/C 同类)
FCNetworkWrapper 通道封装
FCIndexedCodec 带索引的编解码

相关条目

源码

  • src/main/java/com/glodblock/github/loader/ChannelLoader.java
  • src/main/java/com/glodblock/github/network/(13 个包类 + wrapper/)
  • 调用点:src/main/java/com/glodblock/github/FluidCraft.java:47
  • 复算:grep -c 'registerMessage' src/main/java/com/glodblock/github/loader/ChannelLoader.java