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.enabledistrue- 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.