Exemplo n.º 1
0
        private static void Prefix(ReferenceHub __instance)
        {
            try
            {
                var player = PlayerAPI.Get(__instance);

                // Means it's the server
                if (player == null)
                {
                    return;
                }

                PlayerEvents.OnDestroying(new DestroyingEventArgs(player));

                PlayerAPI.Dictionary.Remove(player.GameObject);
                PlayerAPI.UnverifiedPlayers.Remove(__instance);
                PlayerAPI.IdsCache.Remove(player.Id);

                if (player.UserId != null)
                {
                    PlayerAPI.UserIdsCache.Remove(player.UserId);
                }
            }
            catch (Exception ex)
            {
                Log.Error($"{typeof(Destroying).FullName}.{nameof(Prefix)}:\n{ex}");
            }
        }
Exemplo n.º 2
0
        private static void CallEvent(ServerRoles instance)
        {
            try
            {
                Player.UnverifiedPlayers.TryGetValue(instance._hub, out Player player);

                // Means the player connected before WaitingForPlayers event is fired
                // Let's call Joined event, since it wasn't called, to avoid breaking the logic of the order of event calls
                // Blame NorthWood
                if (player == null)
                {
                    Joined.CallEvent(instance._hub, out player);
                }

                PlayerAPI.Dictionary.Add(instance._hub.gameObject, player);
                player.IsVerified = true;
                player.RawUserId  = player.UserId.GetRawUserId();

                Log.SendRaw($"Player {player.Nickname} ({player.UserId}) ({player.Id}) connected with the IP: {player.IPAddress}", ConsoleColor.Green);

                PlayerEvents.OnVerified(new VerifiedEventArgs(player));
            }
            catch (Exception ex)
            {
                Log.Error($"{typeof(Verified).FullName}.{nameof(CallEvent)}:\n{ex}");
            }
        }
Exemplo n.º 3
0
        internal static void CallEvent(ReferenceHub hub, out Player player)
        {
            try
            {
                player = new PlayerAPI(hub);
#if DEBUG
                Log.Debug($"Creating player object for {hub.nicknameSync.Network_displayName}", true);
#endif
                Player.UnverifiedPlayers.Add(hub, player);
                Player p = player;
                Timing.CallDelayed(0.25f, () =>
                {
                    if (p.IsMuted)
                    {
                        p.ReferenceHub.characterClassManager.SetDirtyBit(2UL);
                    }
                });

                PlayerEvents.OnJoined(new JoinedEventArgs(player));
            }
            catch (Exception e)
            {
                Log.Error($"{nameof(CallEvent)}: {e}\n{e.StackTrace}");
                player = null;
            }
        }
Exemplo n.º 4
0
        internal static void CallEvent(ReferenceHub hub, out Player player)
        {
            player = new PlayerAPI(hub);

            Player.UnverifiedPlayers.Add(hub, player);
            var p = player;

            Timing.CallDelayed(0.25f, () =>
            {
                if (p.IsMuted)
                {
                    p.ReferenceHub.characterClassManager.SetDirtyBit(2UL);
                }
            });

            PlayerEvents.OnJoined(new JoinedEventArgs(player));
        }