MoreRequirement

Quick rating

Community listing page, reviews here may not be monitored by the author.

MoreRequirement

No reviews yet

Added more requirements to Tetra's crafting effects and schematics.

Mod Loaders
Minecraft

About

Description

MoreRequirement has added the following requirements for Tetra:

Requirements


 "mr:advancement" 

└ advancement (Required) String
    Checks whether the player has this advancement.

Example:

"requirement":{
  "type":"mr:advancement",
  "advancement":"minecraft:end/find_end_city"
}

 "mr:biome" 

└ biome (Required) String
    Checks whether the workstation is located in the specified biome.

Example:

"requirement":{
  "type":"mr:biome",
  "biome":"minecraft:end_highlands"
}

 "mr:mbd" 

├ blocks (Required) Map<String,Integer>
│   Checks whether the specified number of blocks exists within a given range.
├ x (Optional) Integer
│   Distance to extend along the X-axis from the workstation (both directions).
├ y (Optional) Integer
│   Distance to extend along the Y-axis from the workstation (both directions).
└ z (Optional) Integer
    Distance to extend along the Z-axis from the workstation (both directions).

Example:

"requirement":{
  "type":"mr:mbd",
  "x":5,
  "y":5,
  "z":5,
  "blocks":{
    "minecraft:end_portal_frame":10,
    "minecraft:end_stone":5
  }
}

 "mr:entities" 

├ entities (Required) Map<String,Integer>
│   Checks whether the specified number of entities exists within a given range.
├ x (Optional) Integer
│   Distance to extend along the X-axis from the workstation (both directions).
├ y (Optional) Integer
│   Distance to extend along the Y-axis from the workstation (both directions).
└ z (Optional) Integer
    Distance to extend along the Z-axis from the workstation (both directions).

Example:

"requirement":{
  "type":"mr:entities",
  "x":5,
  "y":5,
  "z":5,
  "entities":{
    "pig":10
  }
}

 "mr:dimension" 

└ dimension (Required) String
    The dimension ID to check against.

Example:

"requirement":{
  "type":"mr:dimension",
  "dimension":"the_end"
}

 "mr:height" 

├ min (Optional) Integer
│   Minimum required Y-level for the workstation (default: -99).
└ max (Optional) Integer
    Maximum required Y-level for the workstation (default: 333).

Example:

"requirement":{
  "type":"mr:height",
  "min":255
}

 "mr:moon_phase" 

└ moonPhase (Required) Integer
    Moon phase, valid values are in the range [1~8].

Example:

"requirement":{
  "type":"mr:moon_phase",
  "moonPhase":"1"
}

 "mr:potion" 

├ effect (Required) String
│   The ID of the potion effect to check.
├ duration (Optional) Integer
│   Minimum required duration in ticks (default: 0).
└ amplifier (Optional) Integer
    Minimum required amplifier level (0 = level I, consistent with command syntax; default: 0).

Example:

"requirement":{
  "type":"mr:potion",
  "effect":"minecraft:darkness",
  "duration":200
}

 "mr:see_sky" 

└ No parameters required. Returns true if the workstation is exposed to the sky.

Example:

"requirement":{
  "type":"mr:see_sky"
}

 "mr:time" 

└ time (Required) String
  Valid options:
    ├ "day"     – daytime
    └ "night"   – nighttime

Example:

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

 "mr:other_module" 

Redirects the requirement check to a module in the specified slot.

├ slot (Required) String
│   Target slot identifier.
└ requirement (Required) Requirement
    Another requirement to evaluate on the target module.

Example:

"requirement":{
  "type":"mr:other_module",
  "slot":"sword/hilt",
  "requirement": {
    "type": "tetra:improvement",
    "improvement": "hilt_hone/damage"
  }
}

 "mr:weather" 

└ weather (Required) String
  Valid options:
    ├ "clear"   – clear weather
    ├ "rain"    – raining
    └ "thunder" – thunderstorm

Example:

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

 "mr:custom" (New Version) 

This requirement does nothing by itself and always returns true.
You can implement custom logic using KubeJS.
It uses a "key" for identification, allowing you to define multiple custom requirements freely.
The localization key is: "more_requirement.holo.custom_requirement.key" (replace "key" with the one you defined in your datapack).

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

Example:

"requirement":{
  "type":"mr:custom",
  "key":"key"
}

 "mr:custom" (Legacy Version – Deprecated since 1.0.3) 

This requirement does nothing by itself and always returns true.
You can implement custom logic using KubeJS.

// In startup_scripts
let $CustomRequirement = Java.loadClass('net.yiran.morerequirement.requirements.CustomRequirement');
$CustomRequirement.setCustomFunction(cxt => true);

Example:

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

 "mr:group" 

[See below for how to define groups]

├ key (Required) String
│   Used to retrieve the specific group.
└ hideExtend (Optional) Boolean
    Whether to hide the group's individual conditions (default: false).

Example:

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

Group


Place group definition files in data/morerequirement/group/.

├ requirements (Required) Requirement[]
│   A list of requirements to check when this group is referenced. All must pass.
├ key (Optional) String
│   By default, the key is automatically assigned as the file path under the group folder.
│   For example, "group/test/a.json" defaults to key "test/a".
│   You may manually specify a custom key.
├ translation (Optional) String
│   Localization key. Defaults to "more_requirement.group." + key.
└ hideExtend (Optional) Boolean
    Whether to hide the group's individual conditions (default: false).

Example:

{
  "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
    }
  ]
}

You can also nest groups within other groups:

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