public void RegisterClient(EntityUid client, EntityUid server, ResearchClientComponent? clientComponent = null,
ResearchServerComponent? serverComponent = null, bool dirtyServer = true)
{
- if (!Resolve(client, ref clientComponent) || !Resolve(server, ref serverComponent))
+ if (!Resolve(client, ref clientComponent, false) || !Resolve(server, ref serverComponent, false))
return;
if (serverComponent.Clients.Contains(client))
clientComponent.Server = server;
SyncClientWithServer(client, clientComponent: clientComponent);
- if (dirtyServer)
+ if (dirtyServer && !TerminatingOrDeleted(server))
Dirty(server, serverComponent);
var ev = new ResearchRegistrationChangedEvent(server);
public void UnregisterClient(EntityUid client, EntityUid server, ResearchClientComponent? clientComponent = null,
ResearchServerComponent? serverComponent = null, bool dirtyServer = true)
{
- if (!Resolve(client, ref clientComponent) || !Resolve(server, ref serverComponent))
+ if (!Resolve(client, ref clientComponent, false) || !Resolve(server, ref serverComponent, false))
return;
serverComponent.Clients.Remove(client);
clientComponent.Server = null;
SyncClientWithServer(client, clientComponent: clientComponent);
- if (dirtyServer)
+ if (dirtyServer && !TerminatingOrDeleted(server))
{
Dirty(server, serverComponent);
}