-
Notifications
You must be signed in to change notification settings - Fork 15
In depth documention of Enchantments
Geolykt edited this page Dec 6, 2020
·
3 revisions
(Note: this page is still work in progress, it's probably not going to be finished any time soon)
Description of obscure fields:
- Legacy ID: used only within PDC getters, can be ignored for 98% of server owners.
- Thread safety: An estimate of how well the enchantment would perform if it were to be executed asynchronously.
- Internal thread safety: An estimate of how well the internal components of an enchantment would behave if run asynchronously, server API calls are assumed to be very thread safe. - This is mostly the only thing that can be changed by developers in terms of thread safety
Template - can ignore:
- Legacy ID:
- Applicable tools:
- Conflicting enchantments:
- Maximum level:
- Description:
- Quirks:
- Thread safety grade:
- Internal thread safety:
- Legacy ID: 1
- Applicable tools: Pickaxes
- Conflicting enchantments: Pierce, Switch
- Maximum level: 1
- Description: Spawns blocks to protect you when right sneak clicking, and attacks entities when left clicking
- Quirks:
- Only entities in a 14 x 14 x 14 cube with the centre being the falling block are attacked by the falling block
- Only cobblestone can be used
- Only spawns up to 64 blocks (Developer note: inefficient counting)
- Thread safety grade: medium
- Performs entity damaging
- Moves and spawns falling blocks
- Performs arithmetic operations on moving objects
- Internal thread safety: high
- Heavily tested
- Contains some non-thread safe fields - a race condition would have no effect on them however
- Might perform odd behaviour if called too often
- Legacy ID: 69
- Applicable tools: Bow
- Conflicting enchantments: None!
- Maximum level: 1
- Description: Unleashes hell
- Quirks:
- Bypasses block protection!
- Thread safety grade: undetermined
- Internal thread safety: undetermined
- Legacy ID: 2
- Applicable tools: Axe
- Conflicting enchantments: None!
- Maximum level: 3
- Description: Drops more apples, sticks, and saplings when used on leaves
- Quirks:
- May drop golden apples (can be disabled via configuration) at a 15 * (level+1) * power in 10000 chance (0.3% for level 1; 0.45% for level 2)
- Thread safety grade: medium to high
- Spawns items
- Internal thread safety: full
- Only interacts with objects that should not be changed later in runtime
- Legacy ID: 4
- Applicable tools: All
- Conflicting enchantments: None!
- Maximum level: 1
- Description: Keeps items with this enchantment in your inventory after death
- Quirks:
- Does not handle some plugin induced deaths well
- May enable duplication - most servers won't allow that
- Thread safety grade: medium to high
- Event manipulation
- Player inventory manipulation
- Internal thread safety: high
- Only interacts with objects that should not be changed later in runtime
- Legacy ID: 5
- Applicable tools: Chestplate
- Conflicting enchantments: None!
- Maximum level: 1
- Description: Causes the player to be unharmed in lava and fire, but damages them in water and rain
- Quirks:
- Fire resistance is useless
- Also stops fireball damage (expect this to be tweaked in 3.0.0 - this is basically immunity against Blazes)
- Damages the player if the player stands on frosted or regular ice, not on packed and blue ice however
- The player also receives no damage on snow or waterlogged blocks (expect this to be changed in 3.0.0)
- It is not explicitly defined whether the feet or eyes will be used to get whether the player stands in water or not, however both will not be used at the same time
- The player will be damaged at a 3x higher rate in water than in rain
- The damage within water is considered drowning damage
- The damage performed by standing on ice is considered melting damage (used for Snowmans melting for example)
- Damage performed when standing in the rain is considered custom damage
- Thread safety grade: low
- Reads word (pretty much not thread safe at all)
- Damage blocking is thread safe however
- Internal thread safety: full
- Uses magic constants