交互工具
基本信息
| 属性 | 值 |
|---|---|
| 位置 | src/main/java/mytown/entities/tools/ |
| 工具数 | 3 |
| 基类 | myessentials.utils.Tool(MyEssentials-Core) |
| 启用版本 | Minecraft 1.7.10 |
三个工具都继承 MyEssentials 的 Tool,通过 ToolManager.instance.register(...)
装载到玩家手上的物品,实现「手持工具点选」式交互。
三工具对照
| 工具 | 行数 | 作用 | 关键字段 |
|---|---|---|---|
| PlotSelectionTool | 289 | 选两个角点创建地块 | selectionFirst / selectionSecond / plotName / heightDependent |
| PlotSellTool | 96 | 放置出售告示牌 | price / restricted(默认 false) |
| WhitelisterTool | 134 | 选方块加入保护白名单 | flagType(默认 FlagType.ACCESS) |
共性实现
三个工具的构造器都以两行嵌套 LocalManager.get(...) 取显示名:
super(owner.getPlayer(),
LocalManager.get("myessentials.tool.name",
LocalManager.get("mytown.tool.<kind>.name"))
.getLegacyFormattedText()[0]);
即优先用 MyEssentials 的通用工具名,缺失才回退到 MyTown2 的本地化键。
onItemUse(BlockPos bp, int face) 是统一的交互入口。
装载点
| 工具 | 装载命令类 |
|---|---|
WhitelisterTool |
CommandsEveryone WhitelisterTool、3 处;CommandsAdmin、CommandsAssistant 各 1 处 |
PlotSelectionTool |
CommandsEveryone new PlotSelectionTool(res, args.get(0)) |
PlotSellTool |
CommandsEveryone new PlotSellTool(res, price) |
⚠️ PlotSelectionTool 与 PlotSellTool 只在 CommandsEveryone 中装载; 助理与管理员层只能装 WhitelisterTool。 说「三个工具管理员都能用」是错的。
相关条目
- Plot - 地块模型
- BlockWhitelist - 白名单模型
- SellSign - 出售告示牌
- MyEssentials-Core -
Tool/ToolManager/LocalManager(已收录)