交互工具

基本信息

属性 值
位置 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。 说「三个工具管理员都能用」是错的。

相关条目