Files
Iris/docs/28 - Integrations.md
T
2026-08-08 00:29:48 -06:00

6.6 KiB

28 - Integrations

Iris integrates with selected Bukkit plugins for world management, selections, external blocks/items/entities, Mythic skill conditions, PlaceholderAPI, and tree felling. Soft-depends declare load order only; Iris still checks isPluginEnabled / readiness before use. Integrations are Bukkit-family unless noted. See also 04 - Commands & Permissions.md, 06 - Worlds & Lifecycle.md, 09 - PlaceholderAPI.md, 19 - Objects.md, and 93 - API - Tree Feller.md.

Soft-depends and load order (plugin.yml)

Plugin Relation Role
PlaceholderAPI softdepend %iris_...% expansion
CraftEngine softdepend External blocks/items
Nexo softdepend External blocks/items
ItemsAdder softdepend External blocks/items
SCore softdepend Dependency of ExecutableItems ecosystems; no Iris provider class
ExecutableItems softdepend External items
MythicLib softdepend Dependency of MMOItems ecosystems; no Iris provider class
MMOItems softdepend External blocks/items
eco softdepend Dependency of EcoItems; no Iris provider class
EcoItems softdepend External items
MythicMobs softdepend External entities + skill conditions
MythicCrucible softdepend External blocks/items
KGenerators softdepend External blocks/items
WorldEdit softdepend Selection for object/wand workflows
Multiverse-Core loadbefore (Iris loads first) World import/generator sync and remove

Multiverse is listed under loadbefore, not softdepend: Iris enables before Multiverse-Core so Multiverse can see Iris as a generator plugin.

WorldEdit

WorldEditLink reflects into WorldEdit when the plugin is enabled.

Use Behavior
Selection read Returns an Iris Cuboid for the player's current WorldEdit selection in their world, or null if none
Wand / object tools With world.worldEditWandCUI default true, a WorldEdit selection is accepted where Iris wants a selection without holding the Iris wand
/iris object we Converts the current WorldEdit selection into a real Iris wand selection
Limit position2 does not work on a WorldEdit-only selection until /iris object we runs

WorldEdit is not required for .schem import: Iris parses schematic NBT itself. See 19 - Objects.md.

Multiverse-Core

MultiverseCoreLink uses the Multiverse Core API when Multiverse-Core is enabled.

Operation Behavior
World create/update Imports or updates the Multiverse world with generator Iris:<pack>, autoLoad=false, environment from the Bukkit world, spawn adjust off
World remove Removes the Multiverse world config entry and saves worlds config; throws if Multiverse refuses removal
Inactive Multiverse Calls no-op / return false

Studio open/close and world lifecycle paths use the same link when Multiverse is present. See 06 - Worlds & Lifecycle.md.

External data providers (item / block / entity plugins)

ExternalDataSVC activates built-in providers when their plugins are ready, including late enable via PluginEnableEvent. Packs reference external content by namespaced ids resolved through the active provider for that namespace and DataType (ITEM, BLOCK, ENTITY).

Plugin id Provider Namespaces / match Types
CraftEngine CraftEngineDataProvider Any CraftEngine item/block/furniture key that exists ITEM, BLOCK
Nexo NexoDataProvider nexo ITEM, BLOCK
ItemsAdder ItemAdderDataProvider Namespaces reported by ItemsAdder for items/blocks ITEM, BLOCK
ExecutableItems ExecutableItemsDataProvider executable_items ITEM
MMOItems MMOItemsDataProvider Blocks: mmoitems; items: two-part type namespace (type_subtype:id) ITEM, BLOCK
EcoItems EcoItemsDataProvider ecoitems ITEM
MythicMobs MythicMobsDataProvider mythicmobs ENTITY
MythicCrucible MythicCrucibleDataProvider crucible ITEM, BLOCK
KGenerators KGeneratorsDataProvider kgenerators ITEM, BLOCK

Third parties may register additional providers with ExternalDataSVC#registerProvider if the plugin id is not already taken. Missing resources log and resolve empty rather than crashing generation.

MythicMobs skill conditions

When MythicMobs is active, Iris registers location conditions:

Condition Fields Check
irisbiome biome/b (comma list of load keys), surface/s (boolean, default false) Surface biome or full column biome via Iris engine
irisregion region/r (comma list of load keys) Region load key at X/Z

Both return false outside Iris worlds or when engine access is missing.

PlaceholderAPI

Soft-depend + expansion id iris. Full key list and migration: 09 - PlaceholderAPI.md.

Tree feller (operator)

Standalone tree felling is Bukkit-only. It removes whole Iris-generated trees when a sneaking survival player breaks a provenanced log with an axe.

Settings (settings.json)

Key Default Meaning
treeFeller.enabled false Master switch for the standalone path only
treeFeller.durabilityPreservationChance 0 Percent chance a log costs no axe durability (standalone path); clamped 0..100 on read

Permission

Node Default Meaning
iris.treefeller op Required for standalone felling

Standalone requirements (all required)

  • treeFeller.enabled is true
  • Player has iris.treefeller
  • GameMode.SURVIVAL
  • Player is sneaking
  • Broken block is tagged as a log
  • Main-hand item is an axe
  • Block has Iris tree provenance in the mantle (Iris-placed tree, not player-planted saplings or hand-placed logs)

Iris listens at EventPriority.HIGHEST for its own standalone request. Other plugins can drive felling with INTEGRATION_OVERRIDE (bypasses enabled switch and permission only) through IrisTreeFellerService; that API is documented in 93 - API - Tree Feller.md.

Runtime notes for operators

  • Discovery walks mantle provenance (bounds: 131072 members, 1e6 visits, 256-block axis distance); oversize trees fall back to removing only the broken block
  • Removal is paced across ticks
  • Run ends if the player stops sneaking, changes hotbar slot/hand, leaves survival/world, breaks the axe, or swaps the axe item
  • Leaves never cost durability/cost hooks; logs do

Platforms

WorldEdit, Multiverse, external data providers, Mythic conditions, PlaceholderAPI, and the tree feller are Bukkit-family. Modded loaders do not use these plugin soft-depends. See 30 - Platform Differences.md.