SinceEnchantments Documentation
External Enchantment Plugins
External Enchantment Plugins
SinceEnchantments can display, apply, extract, and slot-count enchantments from supported external enchantment plugins.
ID Format
| Plugin | ID Format |
|---|---|
| AdvancedEnchantments | ae:<enchant_name> |
| CrazyEnchantments | ce:<enchant_name> |
| ExcellentEnchants | excellentenchants:<enchant_name> |
Examples:
ae:harvest
ae:vampire
ce:lifesteal
excellentenchants:tunnel
AdvancedEnchantments Hook
Startup behavior:
- Detect plugin named
AdvancedEnchantments. - Reflect
net.advancedplugins.ae.api.AEAPI. - Read
getAllEnchantments(). - If the API returns
0, retry several times because AE can finish enchant loading after its plugin enable phase. - If still
0, scanplugins/AdvancedEnchantments/enchantments.ymlas a fallback.
Useful logs:
AdvancedEnchantments detected (version ...). Preparing AE API hook.
AdvancedEnchantments API hook is ready, but the enchantment list is currently empty.
AdvancedEnchantments API returned 0 enchantments on attempt 1/5.
AdvancedEnchantments API returned 0 enchantments. Fallback config scan found ... entries.
AdvancedEnchantments auto-load finished from config: registered ..., skipped ..., failed ....
CrazyEnchantments Hook
CrazyEnchantments uses its public API dependency.
Startup behavior:
- Detect plugin named
CrazyEnchantments. - Read
CrazyManager. - Read registered enchantments.
- Auto-register missing
ce:entries in memory.
ExcellentEnchants Hook
Startup behavior:
- Detect plugin named
ExcellentEnchants. - Read
su.nightexpress.excellentenchants.enchantment.EnchantRegistry. - Read registered
CustomEnchantmententries. - Read display name, max level, description, and item sets from the API.
- Read optional rarity/target overrides from
plugins/ExcellentEnchants/enchants. - Auto-register missing
excellentenchants:entries in memory.
Auto-Registration
External enchantments do not need to be manually added to enchants.yml.
When detected, SinceEnchantments registers them in memory with:
- ID
- Display name
- Max level
- Rarity, when available from plugin metadata or fallback config
- Target, when available from plugin metadata or fallback item applicability
- Description
Default descriptions:
settings:
ae-default-description:
- "&7Special effect from"
- "&7AdvancedEnchantments."
ce-default-description:
- "&7Special effect from"
- "&7CrazyEnchantments."
ee-default-description:
- "&7Special effect from"
- "&7ExcellentEnchants."
Overrides
Add an override only when you want custom display metadata.
custom-enchants:
"ae:harvest":
name: "Harvest"
rarity: "LEGENDARY"
max-level: 5
target: "TOOL"
description:
- "&7Chance to harvest crops in an area."
custom-enchants:
"excellentenchants:tunnel":
name: "Tunnel"
rarity: "RARE"
max-level: 3
target: "TOOL"
custom-enchants:
"ce:lifesteal":
name: "Lifesteal"
rarity: "EPIC"
max-level: 3
target: "WEAPON"
Applying External Enchants
Use books as usual:
/se givebook Steve "ae:harvest" 1 100 0
/se givebook Steve "ce:lifesteal" 1 100 0
/se givebook Steve "excellentenchants:tunnel" 1 100 0
When hooks are active, SinceEnchantments delegates AdvancedEnchantments and CrazyEnchantments apply/remove behavior to those plugins. ExcellentEnchants registers its enchantments in Bukkitâs enchantment registry, so SinceEnchantments applies those books through the normal Bukkit enchantment path while using the ExcellentEnchants API for metadata and random filtering.
Troubleshooting External Hooks
| Symptom | Cause | Fix |
|---|---|---|
Found 0 enchantments for AE |
AE has not finished loading enchant config yet | Update to latest build; retry and config fallback handle this |
ae: commands do not suggest |
AE not installed, disabled, or fallback config missing | Check startup logs and plugins/AdvancedEnchantments/enchantments.yml |
| Book applies but effect does not work | External plugin rejected apply or item is not valid for that plugin | Check console warning and external plugin rules |
| CE hook fails | CrazyManager not ready or API changed | Check CE version and startup logs |
| EE hook fails at startup | ExcellentEnchants or NightCore version mismatch | Use matching ExcellentEnchants and NightCore versions, then rebuild with the Gradle dependency versions documented above |
excellentenchants: commands do not suggest |
EE is not installed, disabled, or registry is empty | Check ExcellentEnchants detected ... and Successfully hooked into ExcellentEnchants API! startup logs |