/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)。