Skip to content

脚本条件

TIP

犹豫本插件不带任何内置条件与属性,所以需要使用条件判断是否读取物品时,需要你手动使用脚本或扩展来实现条件。写好的脚本需要放在本插件资源目录下的 script/condition/ 文件夹内

如何写一个脚本条件?

INFO

想较于脚本属性而言,脚本条件会简单很多,你只需要在脚本中定义一个关键字与一个优先级,然后定义一个方法名为 onCheck 该方法接收三个参数 entity: 当前实体;itemStack: 提供条件来源的物品;handler: 本次条件的处理器

js
const keyword = "测试条件"
const priority = 2

function onCheck(entity, itemStack, handler){
  // 你要实现的逻辑
}

handler内容

以下提及到的变量无特殊说明的情况下皆可使用getter&setter方法获取或设置变量
getter: 比如变量message,那么他的getter则为getMessage()
setter: 比如变量message,那么他的setter则为setMessage()

  • conditionMap(只能使用getter): 当前物品产生的条件Map,
  • entity: 当前条件处理的实体
  • itemStack: 当前条件处理的物品
  • message: 条件不满足时向实体发送消息

WARNING

其实这个属性条件我设计的并不满意,后面可能会有大改

实现一个等级限制

js
const keyword = "等级限制"
const priority = 2

function onCheck(entity, item, handler){
    // 获取当前条件Map,并获取当前这个条件 keyword
    // 条件会以 关键字: 值 的形式存入Map
    let value = handler.getConditionMap().get(keyword)
    // 设置不满足条件时发送提醒的消息
    handler.setMessage("需要等级: " + value)
    // 校验当前条件是否通过
    handler.allow = entity.getLevel() >= value
}

这样你就完成了一个等级限制的脚本条件,是不是很简单!!

本站访客数 人次 本站总访问量