HoloInventory 指令
基本信息
| 属性 | 值 |
|---|---|
| 指令名 | /holoinventory |
| 注册位置 | server/CommandHoloInventory.java |
| 注册时机 | HoloInventory.fmlEvent(FMLServerStartingEvent) 内 event.registerServerCommand(new CommandHoloInventory()) |
| 所需权限 | 0(任何玩家可调用) |
| 是否仅 OP | 部分子命令要求调用者是 OP(多人模式下);单人模式全部可用 |
子命令
| 子命令 | 权限 | 行为 |
|---|---|---|
(无参数) |
任意玩家 | 在聊天栏打印帮助文本(按 enumChatFormatting.GOLD + " HoloInventory By Dries007" 样式列出所有子命令) |
reset |
任意玩家 | 向发起者发送 ResetMessage(清空客户端 Renderer.entityMap/requestMap/tileInventoryMap),并在该玩家上调用 ServerHandler.serverEventHandler.resetPlayer(player) 解除其与所有方块的订阅;最后打印 Cleared client cache |
reload |
任意玩家 | 先对发起者执行一次 reset 流程;若发起者是 OP 则额外调用 HoloInventory.getConfig().reload() 重新解析服务器端配置文件 |
overrideName <new Name...> |
任意玩家 | 把发起者加入 ServerEventHandler.overrideUsers(键=玩家显示名,值=除首参外的完整字符串拼接);发起者接下来右键任意「被支持的」方块,服务器读取其原名称并通过 RenameMessage 推到发起者客户端,触发 Config.nameOverrides 写入。下一次渲染时 GroupRenderer.renderName 会优先取 nameOverrides.get(name) |
ban |
OP | 把发起者加入 ServerEventHandler.banUsers;接下来右键任意方块或实体若通过 Helper.weWant 检查,则将其 getClass().getCanonicalName() 加入 Config.bannedTiles 或 Config.bannedEntities;列表写入配置文件 bannedTiles / bannedEntities 字段(Config.overrideBannedThings()) |
unban <name> |
OP | 若 <name> 已存在于 Config.bannedEntities 或 Config.bannedTiles 则移除并重写配置文件;缺省参数则打印已 ban 的完整类名清单 |
Tab 补全:
- 第 1 参数:OP 玩家补全
[reset, reload, overrideName, ban, unban];非 OP 玩家补全[reset, overrideName]。 - 第 2 参数:仅当
args[0]==unban && OP时补全为Config.bannedEntities ∪ Config.bannedTiles。
错误信息(WrongUsageException 抛出)
| 触发 | 抛出文本 |
|---|---|
reset 由服务器控制台执行 |
You can't use this as the server... |
overrideName 无名称参数 |
<RED>Give a name, can contain spaces. |
overrideName 由服务器控制台执行 |
<RED>You can't use this as the server... |
服务端数据结构(ServerEventHandler)
| 字段 | 类型 | 用途 |
|---|---|---|
banUsers |
List<String> |
待 ban 的玩家显示名集合 |
overrideUsers |
HashMap<String, String> |
待改名玩家显示名 → 新名称 |
mapBlockToInv |
Object2ObjectLinkedOpenHashMap<Coord, InventoryData> |
全服共享的方块→库存快照缓存(最大 1024 项) |
mapBlockToFluidHandler |
Object2ObjectLinkedOpenHashMap<Coord, FluidHandlerData> |
全服共享的方块→流体缓存(同上) |
pendingTasks |
ConcurrentLinkedQueue<Runnable> |
跨 tick 延后执行的任务队列 |
pendingTaskCount |
Map<EntityPlayerMP, AtomicInteger>(弱引用同步) |
单玩家未完成任务计数(硬上限 32) |
wrappedInventoryCache |
WeakHashMap<IInventory, CachedPatternInventory> |
AE2 样板输出转换缓存(按 NBT 比较失效) |
数值
| 数值 | 默认 |
|---|---|
MAX_CACHED |
1024 |
MAX_PENDING_TASKS_PER_PLAYER |
32 |
相关条目
- HoloGlasses - 客户端 hologram 渲染目标物品
- 渲染模式与采样配置 -
Config配置文件说明