Catch exceptions from ticking spells

This commit is contained in:
Sollace 2021-12-29 17:18:26 +02:00
parent 41e178b8d6
commit 097aa1d8cf

View file

@ -5,6 +5,7 @@ import java.util.stream.Stream;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import com.minelittlepony.unicopia.Unicopia;
import com.minelittlepony.unicopia.ability.magic.Caster; import com.minelittlepony.unicopia.ability.magic.Caster;
import com.minelittlepony.unicopia.ability.magic.SpellContainer; import com.minelittlepony.unicopia.ability.magic.SpellContainer;
import com.minelittlepony.unicopia.ability.magic.SpellPredicate; import com.minelittlepony.unicopia.ability.magic.SpellPredicate;
@ -86,7 +87,12 @@ public abstract class Living<T extends LivingEntity> implements Equine<T>, Caste
@Override @Override
public void tick() { public void tick() {
try {
getSpellSlot().forEach(spell -> Operation.ofBoolean(spell.tick(this, Situation.BODY)), true); getSpellSlot().forEach(spell -> Operation.ofBoolean(spell.tick(this, Situation.BODY)), true);
} catch (Exception e) {
Unicopia.LOGGER.error("Error whilst ticking spell on entity {}", getEntity(), e);
}
if (invinsibilityTicks > 0) { if (invinsibilityTicks > 0) {
invinsibilityTicks--; invinsibilityTicks--;