OpenSecurity

[!INFO] Git Commit: d94ead8 | Updated: 2026-10-01

OpenComputers 的门禁安全插件。给 OC 电脑加一套刷卡门禁系统: 磁卡 / RFID 读卡器、数据块、开关枢纽、门控器、安全门、能量炮塔、键盘锁、生物识别器, 外加 2 个 OpenComputers 自定义驱动与一张 SecureOS 软盘。 README 首句即 Security addon for OpenComputers。

身份

属性 实测值
modid opensecurity(全小写,OpenSecurity.java:35)
modName OpenSecurity(@Mod 里写死字符串,不读常量)
主包 pcl.opensecurity
资源域 opensecurity
Java 文件 91
注册内容 14 方块 / 10 物品 / 14 TileEntity / 1 实体
合成配方 22(全部 ShapedOreRecipe,1 个无序)
创造模式栏 1(OpenSecurity)
OC 驱动 2(RFIDReaderCardDriver、SecureOS 软盘)
配置项 8,全在 options 分类
网络包 3
GUI 4 个(分派方 1 个 + 容器 4 个)
硬依赖 OpenComputers(required-after:OpenComputers,无版本区间)
其它 usesMixins = false;coreModClass 为空;generateGradleTokenClass = pcl.opensecurity.Tags(Tags 类会生成)

[!IMPORTANT] 定位:真实内容 mod,不是库 14 个方块、10 个物品、1 个实体、22 条配方全部在 ContentRegistry 中注册。 唯一硬依赖是 OpenComputers(已在收录范围)。

[!WARNING] 3 处**「看起来有、实际没有」**的坑

  1. BlockDisplayPanel 未注册 —— 注册代码被 // if (BuildInfo.getVersionNumber() == 0) { 整段注释, 但紧随其后的 registerTileEntity(TileEntityDisplayPanel.class, ...) 仍生效 → 孤立 TE。
  2. 「Rack Raid」功能不存在 —— 5 个文件(ItemRackRaid / RackRaidDriver / RackRaidGUI / RackRaidContainer / RenderRackRaid)全是空 IDE 存根,零引用。
  3. MoarRam 从未注册 —— 实现了 OC DriverItem,但不在 Driver.add(...) 列表里。

[!NOTE] 通道名与 modid 大小写不一致:网络通道是 OpenSecurity(大写 O / S), modid 是 opensecurity(全小写)。@Mod 的 name 字段也写死了字符串 "OpenSecurity", 与 MODID 常量各行其道。

入口与配置列表

方块列表

物品列表

TileEntity 列表

OC 驱动与实体列表

GUI 列表

网络包列表

客户端渲染列表

工具类列表

源码缺陷

  • ContentRegistry - 三处: ① securityDoorPrivateItem 注册后误写 securityDoorItem.setCreativeTab(...),私门物品无创造栏; ② securityitemBlock 字段声明后从未赋值也从未使用; ③ 3 条配方声明了未使用的符号('O', obsidian ×2、'R', redstone ×1)
  • ItemSecurityDoorPrivate - 构造时传入公共门方块,物品与方块对不上
  • BlockDisplayPanel - 注册整段被注释,但 TE 注册仍生效
  • OpenSecurity - 警报音效目录硬编码为相对路径 ./mods/OpenSecurity/sounds/alarms/,正常安装下 alarmList 为空
  • MoarRam - 零引用,从未 Driver.add
  • SoundUnpack - 实现 IFMLLoadingPlugin,但 coreModClass 为空,永不加载
  • BuildInfo - getVersionNumber() 硬编码返回 1、getBuildNumber() 返回 0,值是假的
  • PacketKeypadButton - 注册方向标 Side.CLIENT,语义却是客户端 → 服务端

依赖关系

硬依赖仅 OpenComputers(无版本区间约束)。 源码另引用 li.cil.oc.* 下的驱动、文件系统、物品与容器 API, 这些均由 OpenComputers 提供,无其它外部 mod 依赖。 http 相关代码用于抓取玩家皮肤,运行时按需访问外网。