GlowstoneMC / Glowstone

A fast, customizable and compatible open source server for Minecraft: Java Edition
https://glowstone.net
Other
1.89k stars 271 forks source link

Fire PotionSplashEvent #945

Closed Pr0methean closed 6 years ago

Pr0methean commented 6 years ago

Progresses #922

PotionSplashEvent is now fired whenever a splash potion lands (including a lingering potion, but only for immediate effects). In addition to cancelation, we also recognize changes to the list of targets and the intensity for each target. In the case of a potion of healing, EntityRegainHealthEvent is also fired for each target, using the same logic that GlowPlayer.pulse() already uses when regenerating from food; that logic is now EntityUtils.heal(LivingEntity, double, EntityRegainHealthEvent.RegainReason).

Partial-intensity effects for splash potions and lingering potions are now implemented. For custom instant effects at level 2 or higher, partial intensity may mean a lower level.