diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/TechHiderWrapper.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/TechHiderWrapper.java index 7c4c9d77..e614cda7 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/TechHiderWrapper.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/TechHiderWrapper.java @@ -25,6 +25,7 @@ import de.steamwar.fightsystem.events.BoardingEvent; import de.steamwar.fightsystem.events.TeamLeaveEvent; import de.steamwar.fightsystem.events.TeamSpawnEvent; import de.steamwar.fightsystem.fight.Fight; +import de.steamwar.fightsystem.fight.FightPlayer; import de.steamwar.fightsystem.fight.FightTeam; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependent; @@ -178,12 +179,13 @@ public class TechHiderWrapper extends StateDependent implements Listener { private Region getHiddenRegion(Player player) { if (Config.isReferee(player)) return Region.EMPTY; - FightTeam team = Fight.getPlayerTeam(player); - if (team == null) return Config.ArenaRegion; + // Single lookup: runs on netty threads, the player can leave the team at any time + FightPlayer fightPlayer = Fight.getFightPlayer(player); + if (fightPlayer == null) return Config.ArenaRegion; - if (team.canPlayerEntern(player)) return Region.EMPTY; + if (fightPlayer.canEntern()) return Region.EMPTY; - return Fight.getOpposite(team).getExtendRegion(); + return Fight.getOpposite(fightPlayer.getTeam()).getExtendRegion(); } private Stream getWaterloggedBlockStates() {