Fix some TryGetMind overrides relying on player data (#26992)

* Fix some TryGetMind overrides relying on player data

* A

* Rider has bamboozled me

* Update `data.Mind` before attaching to entity.
This commit is contained in:
Leon Friedrich
2024-04-16 16:26:32 +12:00
committed by GitHub
parent faba129e78
commit 229caa10bf
2 changed files with 18 additions and 18 deletions

View File

@@ -357,16 +357,17 @@ public sealed class MindSystem : SharedMindSystem
mind.UserId = userId;
mind.OriginalOwnerUserId ??= userId;
// The UserId may not have a current session, but user data may still exist for disconnected players.
// So we cannot combine this with the TryGetSessionById() check below.
if (_players.GetPlayerData(userId.Value).ContentData() is { } data)
data.Mind = mindId;
if (_players.TryGetSessionById(userId.Value, out var ret))
{
mind.Session = ret;
_pvsOverride.AddSessionOverride(netMind, ret);
_players.SetAttachedEntity(ret, mind.CurrentEntity);
}
// session may be null, but user data may still exist for disconnected players.
if (_players.GetPlayerData(userId.Value).ContentData() is { } data)
data.Mind = mindId;
}
public void ControlMob(EntityUid user, EntityUid target)