--- a/net/minecraft/world/end/DragonFightManager.java
+++ b/net/minecraft/world/end/DragonFightManager.java
@@ -85,6 +85,7 @@
 
          this.field_186117_k = p_i231901_4_.func_74767_n("DragonKilled");
          this.field_186118_l = p_i231901_4_.func_74767_n("PreviouslyKilled");
+         this.field_186120_n = !p_i231901_4_.func_74767_n("LegacyScanPerformed"); // Forge: fix MC-105080
          if (p_i231901_4_.func_74767_n("IsRespawning")) {
             this.field_186122_p = DragonSpawnState.START;
          }
@@ -119,6 +120,7 @@
 
       compoundnbt.func_74757_a("DragonKilled", this.field_186117_k);
       compoundnbt.func_74757_a("PreviouslyKilled", this.field_186118_l);
+      compoundnbt.func_74757_a("LegacyScanPerformed", !this.field_186120_n); // Forge: fix MC-105080
       if (this.field_186121_o != null) {
          compoundnbt.func_218657_a("ExitPortalLocation", NBTUtil.func_186859_a(this.field_186121_o));
       }
@@ -491,6 +493,13 @@
             endercrystalentity.func_184516_a((BlockPos)null);
          }
       }
+   }
 
+   public void addPlayer(ServerPlayerEntity player) {
+      this.field_186109_c.func_186760_a(player);
    }
+
+   public void removePlayer(ServerPlayerEntity player) {
+      this.field_186109_c.func_186761_b(player);
+   }
 }
