From f17a682d8ca186ce088d41cfb2e6753792b2ef3f Mon Sep 17 00:00:00 2001
From: Sollace <sollacea@gmail.com>
Date: Fri, 27 Jan 2023 22:19:57 +0000
Subject: [PATCH] Fix some errors

---
 .../unicopia/entity/effect/RaceChangeStatusEffect.java       | 5 +----
 .../java/com/minelittlepony/unicopia/entity/player/Pony.java | 2 +-
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/minelittlepony/unicopia/entity/effect/RaceChangeStatusEffect.java b/src/main/java/com/minelittlepony/unicopia/entity/effect/RaceChangeStatusEffect.java
index d7213f0c..ee028ea2 100644
--- a/src/main/java/com/minelittlepony/unicopia/entity/effect/RaceChangeStatusEffect.java
+++ b/src/main/java/com/minelittlepony/unicopia/entity/effect/RaceChangeStatusEffect.java
@@ -70,10 +70,6 @@ public class RaceChangeStatusEffect extends StatusEffect {
             return;
         }
 
-        if (eq instanceof Pony pony) {
-            pony.setRespawnRace(race);
-        }
-
         int ticks = Math.max(0, MAX_DURATION - state.getDuration());
 
         Stage stage = Stage.forDuration(ticks / STAGE_DURATION);
@@ -99,6 +95,7 @@ public class RaceChangeStatusEffect extends StatusEffect {
 
         if (eq instanceof Pony pony) {
             MagicReserves magic = pony.getMagicalReserves();
+            pony.setRespawnRace(race);
             magic.getExertion().add(50);
             magic.getEnergy().add(3);
             magic.getExhaustion().add(3);
diff --git a/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java b/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java
index 667d0464..52473919 100644
--- a/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java
+++ b/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java
@@ -630,7 +630,7 @@ public class Pony extends Living<PlayerEntity> implements Copyable<Pony>, Update
         boolean forcedSwap = !alive
                 && entity instanceof ServerPlayerEntity
                 && entity.world.getGameRules().getBoolean(UGameRules.SWAP_TRIBE_ON_DEATH)
-                && oldPlayer.asEntity().getDamageTracker().getMostRecentDamage().getDamageSource() != MagicalDamageSource.TRIBE_SWAP;
+                && oldPlayer.respawnRace == Race.UNSET;
 
         if (alive) {
             oldPlayer.getSpellSlot().stream(true).forEach(getSpellSlot()::put);