# 5. Shortcuts

shortcut可以做到游戏内玩家触发某种行为后执行特定的指令序列,目前共支持三种触发器:

  1. use当玩家使用某种物品时触发
  2. useon当玩家使用某种物品右键某种方块时触发
  3. destroy当玩家使用某种物品破坏某种方块时触发
  4. command当玩家执行自定义短命令时触发

你可以在配置文件内shortcuts键内增加任意数量的触发器以丰富插件的功能

# use触发器

下面是一个例子,表示玩家使用cactus时候会以该玩家的身份执行count print命令

 "cactus_rotate":{
     "enable":"true",
      "type": "use", //触发器类型,固定
      "item": "cactus", //使用的物品,支持xx:1的样式来指定特殊值
      "prevent": false, //是否阻止原有的事件发生
      "actions": [ //执行的指令系序列
        "counter print"
      ]
    }

指令序列内可使用如下的的内建变量以丰富指令

  • iname 物品名字
  • iaux 物品特殊值
  • px 玩家x坐标
  • py 玩家y坐标
  • pz 玩家z坐标

# use-on 触发器

下面是一个例子,表示玩家使用cactus右键混凝土的时候会以该玩家的身份执行count print {baux}命令,其中baux表示方块的特殊值


    "hopper_counter_printer":{
      "enable":"true",
      "type": "use-on", //触发器类型,固定
      "item": "cactus", //使用的物品,支持name:aux的样式来指定特殊值
      "block": "concrete", //被右键的方块,支持name:aux的样式来指定特殊值
      "prevent": false, //是否阻止原有的事件发生
      "actions": [ //执行的指令系序列
        "counter print {baux}"
      ]
    }

可用的内建变量如下

  • iname 物品名字
  • iaux 物品特殊值
  • bname 右键的方块名字
  • baux 右键的方块特殊值
  • bx 方块x坐标
  • by 方块y坐标
  • bz 方块 z坐标
  • px 玩家x坐标
  • py 玩家y坐标
  • pz 玩家z坐标

# destroy触发器

use-on不再赘述。

# 自定义短命令

下面是一个例子,表示当玩家执行c命令的时候插件会以该玩家身份执行/gamemode creative命令.,其中c命令由插件自动注册,填写的时候不要有空格

"quick_mode_switch",{
  "enable":"true",
  "type": "command", //触发器类型,固定
  "command": "c", //快捷命令名称
  "actions": [ //要执行的指令序列
    "gamemode creative"
  ]
}

可用的内建变量

  • px 玩家x坐标
  • py 玩家y坐标
  • pz 玩家z坐标

除了自定段命令外,其他种类的快捷方式可以通过shortcut指令在游戏内进行开启或者关闭,详见功能一节。

# 默认配置

配置文件内内置了两个shortcut:分别用于支持仙人掌右键混凝土时打印频道数据以及木棍右键红石元件时打印频道数据,如不需要可以手动删除这两个shortcuts.

 "hopper_counter_printer": {
      "enable": true,
      "type": "use-on",
      "item": "cactus",
      "block": "concrete",
      "prevent": false,
      "actions": [
        "counter print {baux}"
      ]
    },
    "redstone_debug_stick": {
      "enable": true,
      "type": "use-on",
      "item": "stick",
      "block": "",
      "prevent": true,
      "actions": [
        "data redstone signal {bx} {by} {bz}"
      ]
    }