protected virtual void OnPlayerConnected(SteamPlayer steamPlayer) { if (m_Users.Any(d => d.Player.SteamPlayer.Equals(steamPlayer))) { return; } var pending = m_PendingUsers.FirstOrDefault(d => d.SteamId == steamPlayer.playerID.steamID); if (pending != null) { FinishSession(pending); } var user = new UnturnedUser(this, m_UserDataStore, steamPlayer.player, pending); m_Users.Add(user); var connectedEvent = new UnturnedUserConnectedEvent(user); async UniTaskVoid EmitDelayedEvent(UnturnedUserConnectedEvent @event) { await UniTask.DelayFrame(1); await m_EventBus.EmitAsync(m_Runtime, this, @event); } EmitDelayedEvent(connectedEvent).Forget(); }
protected virtual void OnPlayerConnected(CSteamID steamID) { var pending = m_PendingUsers.FirstOrDefault(d => d.SteamId == steamID); if (pending != null) { FinishSession(pending); } var steamPlayer = PlayerTool.getSteamPlayer(steamID); if (steamPlayer == null) { return; } var user = new UnturnedUser(this, m_UserDataStore, steamPlayer.player, pending); m_Users.Add(user); AsyncContext.Run(async() => { var @event = new UnturnedUserConnectedEvent(user); await m_EventBus.EmitAsync(m_Runtime, this, @event); }); }
private async Task OnPlayerJoin(IServiceProvider serviceProvider, object sender, UnturnedUserConnectedEvent @event) { if ([email protected]("lastMovement")) { @event.User.Session.SessionData.Add("lastMovement", DateTime.Now.TimeOfDay); } if ([email protected]("isAfk")) { @event.User.Session.SessionData.Add("isAfk", false); } await UniTask.SwitchToMainThread(); var component = @event.User.Player.Player.transform.GetOrAddComponent <PlayerMovementCheckerComponent>(); component.Resolve(@event.User); }