public SavePlayerDataOnDeconstructionEventListener(IEntityDeconstructionStartingEventSubscribable subscriptionService, [NotNull] IEntityDataSaveable entityDataSaveable, [NotNull] ILog logger) : base(subscriptionService) { EntityDataSaveable = entityDataSaveable ?? throw new ArgumentNullException(nameof(entityDataSaveable)); Logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
/// <inheritdoc /> public PlayerEntityExitManager( [NotNull] ISessionDisconnectionEventSubscribable subscriptionService, [NotNull] ILog logger, [NotNull] IObjectDestructorable <PlayerSessionDeconstructionContext> sessionDestructor, [NotNull] IZoneServerToGameServerClient zoneClientGameService, [NotNull] IConnectionEntityCollection connectionToEntityMap, [NotNull] GlobalEntityCollectionsLockingPolicy lockingPolicy, [NotNull] IEntityDataSaveable entitySaver) : base(subscriptionService, false, logger) { SessionDestructor = sessionDestructor ?? throw new ArgumentNullException(nameof(sessionDestructor)); ZoneClientGameService = zoneClientGameService ?? throw new ArgumentNullException(nameof(zoneClientGameService)); ConnectionToEntityMap = connectionToEntityMap ?? throw new ArgumentNullException(nameof(connectionToEntityMap)); LockingPolicy = lockingPolicy ?? throw new ArgumentNullException(nameof(lockingPolicy)); EntitySaver = entitySaver ?? throw new ArgumentNullException(nameof(entitySaver)); }