Skip to main content

MoreRequirement

MoreRequirement为Tetra添加了以下几种requirement:

Requirements


"mr:advancement"
└ advancement 必填 String
检测玩家是否有此成就。

例子:

"requirement":{
"type":"mr:advancement",
"advancement":"minecraft:end/find_end_city"
}
"mr:biome"
└ biome 必填 String
检测加工站是否在指定群系。

例子:

"requirement":{
"type":"mr:biome",
"biome":"minecraft:end_highlands"
}
"mr:mbd"
├ blocks 必填 Map<String,Integer>
│ 在指定范围内判断方块是否满足数量要求。
├ x 可选 Integer
│ 相对加工站向x轴两端扩展距离。
├ y 可选 Integer
│ 相对加工站向y轴两端扩展距离。
└ z 可选 Integer
相对加工站向z轴两端扩展距离。

例子:

"requirement":{
"type":"mr:mbd",
"x":5,
"y":5,
"z":5,
"blocks":{
"minecraft:end_portal_frame":10,
"minecraft:end_stone":5
}
}
"mr:entities"
├ entities 必填 Map<String,Integer>
│ 在指定范围内判断是否有要求数量的实体。
├ x 可选 Integer
│ 相对加工站向x轴两端扩展距离。
├ y 可选 Integer
│ 相对加工站向y轴两端扩展距离。
└ z 可选 Integer
相对加工站向z轴两端扩展距离。

例子:

"requirement":{
"type":"mr:entities",
"x":5,
"y":5,
"z":5,
"entities":{
"pig":10
}
}
"mr:dimension"
└ dimension 必填 String
需要判断的维度ID。

例子:

"requirement":{
"type":"mr:dimension",
"dimension":"the_end"
}
"mr:height"
├ min 可选 Integer
│ 加工站所需的最低高度(默认-99)。
└ max 可选 Integer
加工站所需的最高高度(默认333)。

例子:

"requirement":{
"type":"mr:height",
"min":255
}
"mr:moon_phase"
└ moonPhase 必填 Integer
月相,数字范围为[1~8]

例子:

"requirement":{
"type":"mr:moon_phase",
"moonPhase":"1"
}
"mr:potion"
├ effect 必填 String
│ 需要检测的药水效果的id。
├ duration 可选 Integer
│ 默认为 0 。
│ 药水最低要求的持续时间(Tick)。
└ amplifier 可选 Integer
默认为 0 。
药水最低要求的药水等级(填0是1级,同指令)。

例子:

"requirement":{
"type":"mr:potion",
"effect":"minecraft:darkness"
”duration“:200
}
"mr:see_sky"
└ 无参数需求,露天即返回true。

例子:

"requirement":{
"type":"mr:see_sky"
}
"mr:time"
└ time 必填 String
可用选项
├ "day" 白天
└ "night” 夜晚

例子:

"requirement":{
"type":"mr:time",
"time":"day"
}
"mr:other_module"

将模块的检测目标转换为指定slot的模块

├ slot 必填 String
│ 目标的slot
└ requirement 必填 Requirement
其他的requirement

例子:

"requirement":{
"type":"mr:other_module",
"slot":"sword/hilt",
"requirement": {
"type": "tetra:improvement",
"improvement": "hilt_hone/damage"
}
}
"mr:weather"
└ weather 必填 String
可用选项
├ "clear" 天晴
├ "rain" 下雨
└ "thunder” 雷暴

例子:

"requirement":{
"type":"mr:weather",
"weather":"test"
}
"mr:custom"(新版)

本身没有任何作用会直接返回true
你可以使用kjs来进行这个requirement的实际处理逻辑设置
使用了key作为识别,可以更自由的设定更多的requirement
本地化文本为"more_requirement.holo.custom_requirement.key"(key为你在数据包里面写的key)

//in startup_scripts
let $CustomRequirement = Java.loadClass('net.yiran.morerequirement.requirements.CustomRequirement')
$CustomRequirement.registerCustomFunction( "key" ,cxt => true )

例子:

"requirement":{
"type":"mr:custom",
"key":"key"
}
"mr:custom"(旧版:在1.0.3弃用)
本身没有任何作用会直接返回true 你可以使用kjs来进行这个requirement的实际处理逻辑设置
//in startup_scripts
let $CustomRequirement = Java.loadClass('net.yiran.morerequirement.requirements.CustomRequirement')
$CustomRequirement.setCustomFunction(cxt => true)

例子:

"requirement":{
"type":"mr:custom"
}
"mr:group"

[具体分组如何编写可以看这里]

├ key 必填 String
│ 通过该字符串获取具体的分组。
└ hideExtend 可选 Boolean
默认为 false 。
是否隐藏该组的条件。

例子:

"requirement":{
"type":"mr:group",
"group":"test"
}

Group


将编写的文件存于data/morerequirement/group/

├ requirements 必填 Requirement[]
│ 为该组添加的requirements,调用时会对里面全部进行检查。
├ key 可选 String
│ 默认分配为group文件夹后的路径。
│ 例如"group/test/a.json"该参数则默认为"test/a"。
│ 手动指定该group的key。
├ translation 可选 String
│ 默认为 "more_requirement.group." + key 。
│ 手动指定该group的翻译键。
└ hideExtend 可选 Boolean
默认为 false 。
是否隐藏该组的条件。

例子:

{
"key": "test",
"requirements": [
{
"type": "mr:mbd",
"blocks": {
"minecraft:chain": 8,
"minecraft:birch_stairs": 12,
"minecraft:stripped_birch_log": 9
}
},
{
"type": "mr:see_sky"
},
{
"type": "mr:weather",
"weather": "clear"
},
{
"type": "mr:height",
"min": 200
}
]
}

当然,你也可以分组套分组:

{
"key": "combination_test",
"requirements": [
{
"type": "mr:group",
"key": "test1"
},
{
"type": "mr:group",
"key": "test2",
"hideExtend": true
}
]
}

如果你需要更多不同的requirement,欢迎进群(2157051200)提供建议

awad