|
1 | 1 | --- a/net/minecraft/world/entity/LivingEntity.java |
2 | 2 | +++ b/net/minecraft/world/entity/LivingEntity.java |
3 | | -@@ -11,6 +_,8 @@ |
| 3 | +@@ -11,6 +_,9 @@ |
4 | 4 | import com.mojang.serialization.DataResult; |
5 | 5 | import com.mojang.serialization.Dynamic; |
6 | 6 | import com.mojang.serialization.JavaOps; |
7 | 7 | +import de.erethon.papyrus.CraftPDamageType; |
| 8 | ++import de.erethon.papyrus.events.ItemModifierAddEvent; |
8 | 9 | +import io.papermc.paper.event.entity.EntityKnockbackEvent; |
9 | 10 | import it.unimi.dsi.fastutil.doubles.DoubleDoubleImmutablePair; |
10 | 11 | import it.unimi.dsi.fastutil.objects.Reference2ObjectArrayMap; |
11 | 12 | import it.unimi.dsi.fastutil.objects.Reference2ObjectMap; |
12 | | -@@ -138,17 +_,16 @@ |
| 13 | +@@ -137,18 +_,18 @@ |
| 14 | + import net.minecraft.world.scores.Scoreboard; |
13 | 15 | import net.minecraft.world.waypoints.Waypoint; |
14 | 16 | import net.minecraft.world.waypoints.WaypointTransmitter; |
| 17 | ++import org.bukkit.craftbukkit.attribute.CraftAttributeInstance; |
15 | 18 | import org.jetbrains.annotations.Contract; |
16 | 19 | +import org.bukkit.Bukkit; |
17 | 20 | +import org.bukkit.craftbukkit.damage.CraftDamageSource; |
|
216 | 219 |
|
217 | 220 | public float applyItemBlocking(ServerLevel level, DamageSource damageSource, float damageAmount) { |
218 | 221 | // Paper start |
| 222 | +@@ -3418,7 +_,13 @@ |
| 223 | + AttributeInstance instance = this.attributes.getInstance(holder); |
| 224 | + if (instance != null) { |
| 225 | + instance.removeModifier(attributeModifier.id()); |
| 226 | +- instance.addTransientModifier(attributeModifier); |
| 227 | ++ // Papyrus start - Add modifier event |
| 228 | ++ ItemModifierAddEvent event = new ItemModifierAddEvent(getBukkitLivingEntity(), CraftItemStack.asCraftMirror(itemBySlot), CraftAttributeInstance.convert(attributeModifier)); |
| 229 | ++ event.callEvent(); |
| 230 | ++ if (!event.isCancelled()) { |
| 231 | ++ instance.addTransientModifier(CraftAttributeInstance.convert(event.getAttributeModifier())); |
| 232 | ++ } |
| 233 | ++ // Papyrus end |
| 234 | + } |
| 235 | + }); |
| 236 | + if (this.level() instanceof ServerLevel serverLevel) { |
0 commit comments