Skip to content

自定义可发现物教程

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

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

YAML
name: "&c&lFood"
discover_title:
  title: "&c&lCODEX UPDATED"
  subtitle: "&7Food: %name%"
  fade_in: 20
  stay: 60
  fade_out: 20
discover_message:
- "{centered}&f&m00                                                 00"
- " "
- "{centered}&c&lCODEX UPDATED"
- "{centered}&7Food: %name%"
- " "
- "{centered}&7Check it now by using &e/codex"
- " "
- "{centered}&f&m00                                                 00"
discover_sound:
  name: BLOCK_GILDED_BLACKSTONE_STEP
  volume: 10
  pitch: 0.1
discoveries:
  1:
    name: "&a&lMystery Apple"
    lore:
    - "&7A mysterious apple found in the cave of"
    - "&7Gashmii. It will give you Strength II for"
    - "&730 seconds."

如你所见,我们只是创建了一个“食物”分类下的可发现物(文件名称可以为 food.yml)。所以我们现在就来着手制作一个 ConditionalEvents 触发事件。

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

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

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