Skip to content

Commit 96d18bb

Browse files
committed
Fix Spellcaster#onAttack not being called
1 parent c463d2e commit 96d18bb

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

papyrus-api/src/main/java/de/erethon/spellbook/api/SpellCaster.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ default void tick() {
9191
}
9292
}
9393

94+
/**
95+
* Called when this entity takes damage
96+
*/
9497
default double onDamage(LivingEntity damager, double damage, PDamageType type) {
9598
for (SpellbookSpell spell : getActiveSpells()) {
9699
damage = spell.onDamage(damager, damage, type);
@@ -104,6 +107,10 @@ default double onDamage(LivingEntity damager, double damage, PDamageType type) {
104107
return Math.max(damage, 0);
105108
}
106109

110+
111+
/**
112+
* Called when this entity deals damage
113+
*/
107114
default double onAttack(LivingEntity target, double damage, PDamageType type) {
108115
for (SpellbookSpell spell : getActiveSpells()) {
109116
damage = spell.onAttack(target, damage, type);

papyrus-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,14 +106,15 @@
106106
flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits
107107
if (flag2) {
108108
damageSource = damageSource.critical(); // Paper - critical damage API
109-
@@ -1245,147 +_,164 @@
109+
@@ -1245,147 +_,165 @@
110110
}
111111

112112
Vec3 deltaMovement = target.getDeltaMovement();
113113
- boolean flag4 = target.hurtOrSimulate(damageSource, f2);
114114
+ // Papyrus start - Add damage type
115115
+ boolean flag4;
116116
+ if (target instanceof LivingEntity livingEntity) {
117+
+ f2 = (float) getBukkitEntity().onAttack(livingEntity.getBukkitLivingEntity(), f2, attackDamageType.apiType);
117118
+ flag4 = livingEntity.hurtServer((ServerLevel) level(), damageSource, f2, attackDamageType);
118119
+ } else {
119120
+ flag4 = target.hurtOrSimulate(damageSource, f2);

0 commit comments

Comments
 (0)