MProxyClient

基本信息

属性 值
类名 mantle.client.MProxyClient
类型 class extends MProxyCommon
方法数 5 个 public
页面类型表 pageClasses:HashMap<String, Class<? extends BookPage>>
启用版本 1.7.10

功能

客户端代理:初始化小字号字体渲染器、注册 10 种书页类型、把 「打开书本」的 GUI 请求转成 GuiManual。

实现要点

  • registerRenderer() 构造 SmallFontRenderer,传入原版 minecraft:textures/font/ascii.png 并关闭 unicode 开关(第 42 行第 4 个参数 false)。
  • ⚠️ 缺陷:initManualPages() 连续两次 registerManualPage("intro", ...),先 TextPage.class 后 TitlePage.class。后者覆盖前者,TextPage 作为 intro 不可达。
  • ⚠️ 缺陷:getClientGuiElement 的空栈保护会「报错后仍然执行」。三个 if 都不成立(stack == null 时第 2、3 个条件为 false)→ 落到 else 分支调用 getBookDataFromStack(null) → stack.getItem() NPE。
  • getBookDataFromStack 用 stack.getItem().getUnlocalizedName(stack)(带 ItemStack 的重载)作为注册表 key,而 Manual 覆写的 getUnlocalizedName(ItemStack) 又直接 return super.getUnlocalizedName(par1ItemStack)——最终 key 为 Mantle:item.mantle.manual。
  • getStructureDescription 之类的方法不存在于此;readManuals() 只是调 initManualPages()。

相关条目