/weaponwield
基本信息
| 属性 | 值 |
|---|---|
| 指令名 | weaponwield(CommandWeaponWield.java:51-53) |
| 类 | mods.battlegear2.CommandWeaponWield |
| 权限级别 | 未覆写 getRequiredPermissionLevel,沿用 CommandBase 默认值 |
| 注册位置 | FMLServerStartingEvent(Battlegear.java:91-94) |
| 作用对象 | WeaponRegistry(武器比较器灵敏度) |
功能
供 OP 使用的管理指令,用于把手持/指定物品登记进 WeaponRegistry,以及调整该注册表的比较灵敏度。
三个搜索模式
CommandWeaponWield.searchModes(CommandWeaponWield.java:40):
| 模式 | 说明 |
|---|---|
current |
取玩家的当前手持物品 |
name |
按 GameRegistry 名称取物品 |
sensitivity |
操作比较灵敏度,不涉及物品 |
灵敏度操作由 operations 定义(CommandWeaponWield.java:44):add、remove、get。
灵敏度键
CommandWeaponWield.sensitivities 初始化为 Sets.newHashSet("ID", "DAMAGE", "NBT")(CommandWeaponWield.java:48),即注册表比较物品时默认比对的三个维度。
完整的 WeaponRegistry.Sensitivity 枚举有 5 个值(WeaponRegistry.java:224-254):
| 枚举值 | 比较依据 |
|---|---|
ORE |
OreDictionary.getOreIDs 深比较(WeaponRegistry.java:225-231) |
TYPE |
见 WeaponRegistry.java:233 |
ID |
见 WeaponRegistry.java:240 |
DAMAGE |
见 WeaponRegistry.java:247 |
NBT |
见 WeaponRegistry.java:254 |
add / remove 通过 WeaponRegistry.Sensitivity.valueOf(参数.toUpperCase()) 匹配(CommandWeaponWield.java:85-86, 95-96),非法值被静默忽略(catch (IllegalArgumentException ignored),CommandWeaponWield.java:92, 102)。
name 模式的物品参数按 域:名称 解析,用 : 分割且最多 2 段(CommandWeaponWield.java:80-81)。
数值
指令用法字符串(en_US.lang 的 commands.weaponwield.usage):
/weaponwield current <hand> [player] [usage] OR /weaponwield name <hand> <item name> [usage] OR /weaponwield sensitivity <add|remove|get> <ore|type|id|damage|nbt>
| 项目 | 值 | 来源 |
|---|---|---|
| 搜索模式数 | 3(current、name、sensitivity) |
CommandWeaponWield.java:40 |
| 灵敏度操作数 | 3(add、remove、get) |
CommandWeaponWield.java:44 |
| 默认灵敏度键 | ID、DAMAGE、NBT |
CommandWeaponWield.java:48 |
Wield 枚举值 |
BOTH、RIGHT、LEFT |
WeaponRegistry.java:268-278 |
| Tab 补全 | 第 1 段补搜索模式;第 2 段对 current/name 补 Wield 值、对 sensitivity 补操作(CommandWeaponWield.java:132-139) |
同左 |
上述用法字符串由
getCommandUsage直接返回本地化键commands.weaponwield.usage(CommandWeaponWield.java:60-62),此处照录自en_US.lang,未作改写。
交互
| 触发 | 反馈消息(本地化键) |
|---|---|
| 成功登记物品 | commands.weaponwield.set=%1$s successfully set as wieldable weapon |
| 查询灵敏度 | commands.weaponwield.sensitivity=The weapon comparator has following sensitivities: %1$s |
| 添加灵敏度 | commands.weaponwield.sensitivity.added=Sensibility added to the weapon comparator: %1$s |
| 移除灵敏度 | commands.weaponwield.sensitivity.removed=Sensibility removed from the weapon comparator: %1$s |
(以上 4 条均取自 en_US.lang)
灵敏度变更后通过 WieldSetPacket 同步(CommandWeaponWield.java:23 导入)。
合成配方
不适用。
相关条目
本条目是本模组唯一的服务端指令 —— Battlegear.serverStart 中只注册了 CommandWeaponWield.INSTANCE(Battlegear.java:91-94)。