Skip to content

Commit 3d80d93

Browse files
authored
Merge pull request #893 from JasperLorelai/main
Cast time interrupt spell filter
2 parents ba6c50b + ee66b49 commit 3d80d93

File tree

1 file changed

+5
-0
lines changed
  • core/src/main/java/com/nisovin/magicspells

1 file changed

+5
-0
lines changed

core/src/main/java/com/nisovin/magicspells/Spell.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ public abstract class Spell implements Comparable<Spell>, Listener {
162162
protected ModifierSet targetModifiers;
163163
protected ModifierSet locationModifiers;
164164

165+
private final SpellFilter interruptFilter;
166+
165167
protected Subspell spellOnFail;
166168
protected Subspell spellOnInterrupt;
167169

@@ -277,6 +279,7 @@ public Spell(MagicConfig config, String spellName) {
277279

278280
// Cast time
279281
castTime = getConfigDataInt("cast-time", 0);
282+
interruptFilter = getConfigSpellFilter("interrupt-filter");
280283
interruptOnMove = getConfigDataBoolean("interrupt-on-move", true);
281284
interruptOnCast = getConfigDataBoolean("interrupt-on-cast", true);
282285
interruptOnDamage = getConfigDataBoolean("interrupt-on-damage", false);
@@ -2645,6 +2648,7 @@ public void onSpellCast(SpellCastEvent event) {
26452648
if (!interruptOnCast) return;
26462649
if (event.getSpell() instanceof PassiveSpell) return;
26472650
if (!event.getCaster().equals(caster)) return;
2651+
if (!interruptFilter.isEmpty() && interruptFilter.check(event.getSpell())) return;
26482652

26492653
interrupt();
26502654
}
@@ -2757,6 +2761,7 @@ public void onSpellCast(SpellCastEvent event) {
27572761
if (!interruptOnCast) return;
27582762
if (event.getSpell() instanceof PassiveSpell) return;
27592763
if (!caster.equals(event.getCaster())) return;
2764+
if (!interruptFilter.isEmpty() && interruptFilter.check(event.getSpell())) return;
27602765

27612766
interrupt();
27622767
}

0 commit comments

Comments
 (0)