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 处**「看起来有、实际没有」**的坑
BlockDisplayPanel未注册 —— 注册代码被// if (BuildInfo.getVersionNumber() == 0) {整段注释, 但紧随其后的registerTileEntity(TileEntityDisplayPanel.class, ...)仍生效 → 孤立 TE。- 「Rack Raid」功能不存在 —— 5 个文件(
ItemRackRaid/RackRaidDriver/RackRaidGUI/RackRaidContainer/RenderRackRaid)全是空 IDE 存根,零引用。MoarRam从未注册 —— 实现了 OCDriverItem,但不在Driver.add(...)列表里。
[!NOTE] 通道名与 modid 大小写不一致:网络通道是
OpenSecurity(大写 O / S), modid 是opensecurity(全小写)。@Mod的name字段也写死了字符串"OpenSecurity", 与MODID常量各行其道。
入口与配置列表
- OpenSecurity -
@Mod主类,仅 2 个生命周期方法 - ContentRegistry - 603 行,全部内容注册
- BuildInfo - Jenkins 注入的版本信息
- Config - 8 个配置项
- ClientProxy / CommonProxy - 渲染与音效注册
方块列表
- BlockOSBase - 方块公共基类
- BlockMagReader - 磁卡读卡器
- BlockRFIDReader - RFID 读卡器
- BlockCardWriter - RFID 卡写入器
- BlockAlarm - 警报
- BlockEntityDetector - 实体探测器
- BlockDoorController - 门控器(215 行)
- BlockSecurityDoor - 公共安全门(4×4)
- BlockSecurityDoorPrivate - 私门
- BlockData - 数据块
- BlockSwitchableHub - 可切换枢纽
- BlockKVM - KVM 切换器
- BlockEnergyTurret - 能量炮塔
- BlockKeypadLock - 键盘锁
- BlockBiometricReader - 生物识别器
- BlockDisplayPanel - ⚠️ 注册被注释掉,不存在
物品列表
- ItemMagCard - 磁卡,配方产 6
- ItemRFIDCard - RFID 卡,配方产 6
- ItemRFIDReaderCard - 读卡器驱动卡
- ItemSecureNetworkCard - SecureOS 网络卡
- ItemSecurityDoor - 安全门物品
- ItemSecurityDoorPrivate - ⚠️ 漏设创造栏
- ItemDamageUpgrade - 伤害升级件
- ItemMovementUpgrade - 移动升级件
- ItemCooldownUpgrade - 冷却升级件
- ItemEnergyUpgrade - 能量升级件
- ItemRackRaid - ⚠️ 空存根,死代码
TileEntity 列表
- TileEntityMachineBase - TE 公共基类
- TileEntityMagReader - 磁卡读卡器
- TileEntityRFIDReader - RFID 读卡器
- TileEntityCardWriter - 卡写入器(455 行)
- TileEntityAlarm - 警报
- TileEntityEntityDetector - 实体探测器
- TileEntityDoorController - 门控器(382 行)
- TileEntityDataBlock - 数据块
- TileEntityEnergyTurret - 664 行,本 mod 最大 TE
- TileEntityKeypadLock - 键盘锁
- TileEntityBiometricReader - 生物识别器
- TileEntityDisplayPanel - ⚠️ 孤立 TE,无方块
- TileEntitySecureDoor - 安全门
- TileEntityKVM - KVM
- TileEntitySwitchableHub - 可切换枢纽
OC 驱动与实体列表
- RFIDReaderCardDriver - 已注册,188 行
- SecureNetworkCardDriver - 间接注册
- MoarRam - ⚠️ 从未注册,死代码
- RackRaidDriver - ⚠️ 空存根,死代码
- EntityEnergyBolt - 唯一实体,追踪 64 / 频率 20
GUI 列表
- OSGUIHandler - 分派 4 个 GUI
- CardWriterGUI - 卡写入界面
- EnergyTurretGUI - 炮塔界面
- KVMGUI - KVM 界面(176 行)
- CardSlot - 只收卡的槽位
- DamageUpgradeSlot - 只收伤害升级件
- MovementUpgradeSlot - 只收移动升级件
- CooldownUpgradeSlot - 只收冷却升级件
- EnergyUpgradeSlot - 只收能量升级件
- CardWriterContainer - 卡写入容器
- EnergyTurretContainer - 炮塔容器
- KVMContainer - KVM 容器
- MagCardContainer - 磁卡容器
- RackRaidGUI - ⚠️ 空存根,死代码
- RackRaidContainer - ⚠️ 空存根,死代码
网络包列表
- OSPacketHandler - ID 0,方向 SERVER
- PacketBoltFire - ID 1,方向 CLIENT
- PacketKeypadButton - ID 2,标 CLIENT 实为上行
- HandlerKeypadButton - 键盘包处理器
客户端渲染列表
- CreativeTab - 唯一创造栏
- RenderKeypad - 372 行,兼作物品渲染器
- RenderEnergyTurret - 炮塔方块 TESR
- RenderItemEnergyTurret - 炮塔物品渲染
- RenderEntityEnergyBolt - 能量弹渲染
- RenderDisplayPanel - ⚠️ 永不执行
- ModelEnergyTurret - 炮塔模型
- ModelEnergyBolt - 能量弹模型
- RenderRackRaid - ⚠️ 空存根,死代码
- AlarmResource / MachineSound - 警报音效
工具类列表
- BlockLocation - 27 方法坐标值对象
- OSBreakEvent - 门体破坏解绑
- WrenchChecker - 扳手判定
- SetBlockFlag - 方块放置标记
- HttpDownloadUtility - HTTP 下载(皮肤)
- SoundUnpack - ⚠️ 死代码(无 coremod)
- fetchSkin - ⚠️ 空存根,
@Deprecated
源码缺陷
- 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 相关代码用于抓取玩家皮肤,运行时按需访问外网。