Skip to content

自定义日志条目教程

在这一章节中我会向你解释如何使用我的另一个插件 ConditionalEvents 与本插件进行配合。ConditionalEvents 允许你在达到特定条件时触发时间,并执行不同的操作。例如,如果玩家捡起了一个物品,或是按下了一个按钮,设置好的一些时间就会被触发。

所以,在我的插件 ConditionalEvents 的帮助下,你可以创建更复杂的日志条目。让我们假设你想要做通过消耗一个物品来解锁一个日志条目的功能,比如吃掉一个苹果,所以我们就可以这样创建分类:

YAML
config:
  inventory_items:
    category:
      id: PLAYER_HEAD
      name: "&7分类: #a36bfe&l食物"
      lore:
        - "#eeeeee你吃过的食物记录"
        - ""
        - "&7进度: %unlocked% &8[%progress_bar%&8] &8(&7%percentage%&8)"
    discovery_unlocked:
      id: PAPER
      name: "%name%"
      lore:
        - "%description%"
        - ""
        - "&8于 %date% 发现"
    discovery_blocked:
      id: GRAY_DYE
      name: "&c??"
      lore:
        - "&7你尚未发现此条目."
  rewards:
    per_discovery:
      - "centered_message: #a36bfe&m00                                                 00"
      - "centered_message: "
      - "centered_message: #eeeeee&l日志已更新"
      - "centered_message: &7食物: %name%"
      - "centered_message: "
      - "centered_message: &7通过命令 #eeeeee/codex &7查看"
      - "centered_message: "
      - "centered_message: &7奖励: &a+50XP"
      - "centered_message: "
      - "centered_message: #a36bfe&m00                                                 00"
      - "title: 20;60;20;#eeeeee&l日志已更新;&7食物: %name%"
      - "playsound: BLOCK_GILDED_BLACKSTONE_STEP;10;0.1"
      - "console_command: xp give %player% 50"
    all_discoveries: []

discoveries:
  mystery_apple:
    name: "#a36bfe&l神秘苹果"
    description:
    - "&7盖施密洞穴中所发现的苹果。"
    - "&7会给予你持续 30 秒的力量 II 效果。"

如你所见,我们只是创建了一个“食物”分类下的日志条目(文件名称可以为 food.yml)。因为这个条目只能通过命令解锁,因此无需设置 discover_on 设置。现在来着手制作一个 ConditionalEvents 触发事件。

YAML
mystery_apple_eat:
    type: item_consume
    conditions:
    - '%item% equals APPLE'
    - '%item_name% equals 神秘苹果'
    actions:
      default:
      - 'give_potion_effect: INCREASE_DAMAGE;600;2'
      - 'console_command: codex unlock %player% food 1'

这个事件将会检查玩家是否吃掉了一个名称为“神秘苹果”的物品,如果检测到,插件将会给予玩家 600 刻(30 秒)的力量药水效果,以及以控制台身份执行的一个命令 /codex unlock %player% food mystery_apple false。这将为该玩家解锁这个日志条目。如果玩家再次吃掉这个苹果,同样的命令将会被执行,但接下来不会发生任何事,因为玩家已经解锁了这个日志条目。

当然一些更为复杂的时间也可以通过此插件的多个事件做到,如果你对我的另一个插件感兴趣的话,你可以点击这里来阅读这个插件的 Wiki 页面。