internal void OnPlayerLeave(PlayerLeaveEvent ev)
 {
     if (ev.Player.characterClassManager.isClient)
     {
         playerTable.Remove(ev.Player);
     }
 }
Exemple #2
0
        internal void InvokePlayerLeaveEvent(Player player)
        {
            var ev = new PlayerLeaveEventArgs {
                Player = player
            };

            PlayerLeaveEvent?.Invoke(ev);
        }
Exemple #3
0
 public void OnLeave(PlayerLeaveEvent ev)
 {
     if (ev.Player == Scp035Player)
     {
         Scp035Player = null;
         Pickup pickup = Map.SpawnItem(SCP035ItemType, ev.Player.Position);
         Timing.KillCoroutines(Hurt035Coroutine);
         Scp035Pickup = pickup;
     }
     CheckOnlySCPs();
 }
        /// <summary>
        /// This is the event handler for players leaving
        /// </summary>
        public void OnPlayerLeave(PlayerLeaveEvent ev)
        {
            Dictionary <string, string> variables = new Dictionary <string, string>
            {
                { "ipaddress", ev.Player.IpAddress },
                { "name", ev.Player.Name },
                { "steamid", ev.Player.GetParsedUserID() },
                { "playerid", ev.Player.PlayerId.ToString() }
            };

            this.plugin.SendMessage(Config.GetArray("channels.onplayerleave"), "round.onplayerleave", variables);
        }
Exemple #5
0
 public void OnLeave(PlayerLeaveEvent ev)
 {
     if (!Sitrep.Events.Contains("playerleaveevent"))
     {
         return;
     }
     if (!Sitrep.CustomChannelIds.TryGetValue("playerleaveevent", out ulong channel))
     {
         channel = Sitrep.EventsId;
     }
     Send($":arrow_backward: [{ev.Player.Role.AsString()}] {ev.Player.Nick.DiscordSanitize()} ({ev.Player.ParsedUserId}) se odpojil.", channel);
 }
Exemple #6
0
 public void OnPlayerLeave(PlayerLeaveEvent ev)
 {
     if (!isQueue)
     {
         return;
     }
     try
     {
         alives.Find(x => x.Player.PlayerId == ev.Player.PlayerId).EndTasks();
     }
     catch {
     }
 }
Exemple #7
0
        internal static void InvokePlayerLeaveEvent(Player player)
        {
            if (PlayerLeaveEvent == null)
            {
                return;
            }

            var ev = new PlayerLeaveEvent
            {
                Player = player
            };

            PlayerLeaveEvent.Invoke(ev);
        }
Exemple #8
0
        private void IOnPlayerDisconnected(PlayerLeaveEvent evt)
        {
            // Ignore the server player
            if (evt.Player.Equals(CodeHatch.Engine.Networking.Server.ServerPlayer)) // TODO: Handle potential NullReferenceException
            {
                return;
            }

            // Call game-specific hook
            Interface.Call("OnPlayerDisconnected", evt.Player);

            // Call universal hook
            Interface.Call("OnPlayerDisconnected", evt.Player.IPlayer, lang.GetMessage("Unknown", this, evt.Player.IPlayer.Id));

            // Let universal know
            Universal.PlayerManager.PlayerDisconnected(evt.Player);
        }
Exemple #9
0
        public virtual void RemovePlayer(GamePeer peer, ExitRequest exitReq, SendParameters sendParameters)
        {
            lock (syncRoot)
            {
                if (playerManager.HasPlayer(peer) == false)
                {
                    return; //already removed.
                }

                BroadcastMessageHandler -= peer.OnBroadcastMessage;
                peer.OnLeaveHandler     -= OnPeerLeave;

                PlayerLeaveEvent leaveEvent = new PlayerLeaveEvent();
                leaveEvent.Actor = playerManager.GetPlayer(peer).key.ID;

                EventData eventData = new EventData(EventCode.PlayerLeave, leaveEvent);
                BroadcastMessage(peer, eventData, sendParameters);

                playerManager.RemovePlayer(peer);
            }
        }
Exemple #10
0
        public void OnPlayerLeave(PlayerLeaveEvent ev)
        {
            if (ev.Player.GetTeam() != Team.RIP)
            {
                bool is035 = false;
                bool isSH  = false;
                Dictionary <ReferenceHub, bool> spies = null;
                try
                {
                    is035 = ev.Player.queryProcessor.PlayerId == TryGet035()?.queryProcessor.PlayerId;
                }
                catch (Exception x)
                {
                    Log.Debug("SCP-035 is not installed, skipping method call...");
                }

                try
                {
                    isSH = TryGetSH().Contains(ev.Player.queryProcessor.PlayerId);
                }
                catch (Exception x)
                {
                    Log.Debug("Serpents Hand is not installed, skipping method call...");
                }

                try
                {
                    spies = TryGetSpies();
                }
                catch (Exception x)
                {
                    Log.Debug("CISpy is not installed, skipping method call...");
                }

                Inventory.SyncListItemInfo items = ev.Player.inventory.items;
                RoleType role   = ev.Player.GetRole();
                Vector3  pos    = ev.Player.transform.position;
                int      health = (int)ev.Player.playerStats.health;
                string   ammo   = ev.Player.ammoBox.amount;

                ReferenceHub player = Player.GetHubs().FirstOrDefault(x => x.GetRole() == RoleType.Spectator && x.characterClassManager.UserId != string.Empty && !x.GetOverwatch());
                if (player != null)
                {
                    if (isSH)
                    {
                        try
                        {
                            TrySpawnSH(player);
                        }
                        catch (Exception x)
                        {
                            Log.Debug("Serpents Hand is not installed, skipping method call...");
                        }
                    }
                    else
                    {
                        player.SetRole(role);
                    }
                    if (spies != null && spies.ContainsKey(ev.Player))
                    {
                        try
                        {
                            TrySpawnSpy(player, ev.Player, spies);
                        }
                        catch (Exception x)
                        {
                            Log.Debug("CISpy is not installed, skipping method call...");
                        }
                    }
                    if (is035)
                    {
                        try
                        {
                            TrySpawn035(player);
                        }
                        catch (Exception x)
                        {
                            Log.Debug("SCP-035 is not installed, skipping method call...");
                        }
                    }
                    Timing.CallDelayed(0.3f, () =>
                    {
                        player.SetPosition(pos);
                        player.inventory.items.ToList().Clear();
                        foreach (var item in items)
                        {
                            player.inventory.AddNewItem(item.id);
                        }
                        player.playerStats.health    = health;
                        player.ammoBox.Networkamount = ammo;
                        player.Broadcast(5, MsgConfig.ReplaceCustomMsg, false);
                    });
                }
            }
        }
Exemple #11
0
 add => Add(_anyPlayerLeave, value, PlayerLeaveEvent, GetPlayerLeaveEventResponse);
Exemple #12
0
 public void OnPlayerLeave(PlayerLeaveEvent ev) => RemoveComponent(ev.Player);
 public void OnPlayerLeave(PlayerLeaveEvent ev)
 => DiscordLab.bot.NewMessage($"{ev.Player} disconnected from the server.");