コード例 #1
0
        private static void Postfix(PlayerStats __instance, ref PlayerStats.HitInfo info, GameObject go)
        {
            try
            {
                API.Features.Player attacker = API.Features.Player.Get(__instance.gameObject);
                API.Features.Player target   = API.Features.Player.Get(go);

                if ((target != null &&
                     (target.Role != RoleType.Spectator || target.IsGodModeEnabled || target.IsHost)) ||
                    attacker == null)
                {
                    return;
                }

                var ev = new DiedEventArgs(API.Features.Player.Get(__instance.gameObject), target, info);

                target.Position = Vector3.zero;

                Player.OnDied(ev);

                info = ev.HitInformations;
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.Died: {e}\n{e.StackTrace}");
            }
        }
コード例 #2
0
ファイル: Joined.cs プロジェクト: helightdev/EXILED
        private static void Postfix(NicknameSync __instance)
        {
            if (__instance.hub.characterClassManager.IsHost || string.IsNullOrEmpty(__instance.hub.characterClassManager.UserId))
            {
                return;
            }

            if (!API.Features.Player.Dictionary.TryGetValue(__instance.gameObject, out API.Features.Player player))
            {
                player = new API.Features.Player(ReferenceHub.GetHub(__instance.gameObject));

                API.Features.Player.Dictionary.Add(__instance.gameObject, player);
            }

            API.Features.Log.Debug($"Player {player?.Nickname} ({player?.UserId}) connected with the IP: {player?.IPAddress}");

            if (PlayerManager.players.Count >= CustomNetworkManager.slots)
            {
                API.Features.Log.Debug($"Server is full!");
            }

            Timing.CallDelayed(0.25f, () =>
            {
                if (player != null && player.IsMuted)
                {
                    player.ReferenceHub.characterClassManager.SetDirtyBit(1UL);
                }
            });

            var ev = new JoinedEventArgs(API.Features.Player.Get(__instance.gameObject));

            Player.OnJoined(ev);
        }
コード例 #3
0
        private static void Prefix(ReferenceHub __instance)
        {
            try
            {
                API.Features.Player player = API.Features.Player.Get(__instance.gameObject);

                if (player == null || player.IsHost)
                {
                    return;
                }

                var ev = new LeftEventArgs(player);

                API.Features.Log.Debug($"Player {ev.Player.Nickname} ({ev.Player.UserId}) disconnected");

                Player.OnLeft(ev);

                API.Features.Player.IdsCache.Remove(player.Id);
                API.Features.Player.UserIdsCache.Remove(player.UserId);
                API.Features.Player.Dictionary.Remove(player.GameObject);
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.Left: {e}\n{e.StackTrace}");
            }
        }
コード例 #4
0
        private static void Prefix(ReferenceHub __instance)
        {
            API.Features.Player player = API.Features.Player.Get(__instance.gameObject);

            if (player.IsHost || string.IsNullOrEmpty(player.UserId))
            {
                return;
            }

            var ev = new LeftEventArgs(player);

            API.Features.Log.Debug($"Player {ev.Player?.Nickname} ({ev.Player?.UserId}) disconnected");

            Player.OnLeft(ev);

            if (API.Features.Player.IdsCache.ContainsKey(__instance.queryProcessor.PlayerId))
            {
                API.Features.Player.IdsCache.Remove(__instance.queryProcessor.PlayerId);
            }

            if (API.Features.Player.UserIdsCache.ContainsKey(__instance.characterClassManager.UserId))
            {
                API.Features.Player.UserIdsCache.Remove(__instance.characterClassManager.UserId);
            }

            if (API.Features.Player.Dictionary.ContainsKey(__instance.gameObject))
            {
                API.Features.Player.Dictionary.Remove(__instance.gameObject);
            }
        }
コード例 #5
0
ファイル: Joined.cs プロジェクト: xRoier/EXILED
        internal static void CallEvent(ReferenceHub hub, out API.Features.Player player)
        {
            try
            {
#if DEBUG
                API.Features.Log.Debug("Creating new player object");
#endif
                player = new API.Features.Player(hub);
#if DEBUG
                API.Features.Log.Debug($"Object exists {player is not null}");
                API.Features.Log.Debug($"Creating player object for {hub.nicknameSync.Network_displayName}", true);
#endif
                API.Features.Player.UnverifiedPlayers.Add(hub, player);
                API.Features.Player p = player;
                Timing.CallDelayed(0.25f, () =>
                {
                    if (p.IsMuted)
                    {
                        p.ReferenceHub.characterClassManager.SetDirtyBit(2UL);
                    }
                });

                Handlers.Player.OnJoined(new JoinedEventArgs(player));
            }
            catch (Exception e)
            {
                API.Features.Log.Error($"{nameof(CallEvent)}: {e}\n{e.StackTrace}");
                player = null;
            }
        }
コード例 #6
0
        private static void Prefix(PlayerStats __instance, ref PlayerStats.HitInfo info, GameObject go)
        {
            if (go == null)
            {
                return;
            }

            API.Features.Player attacker = API.Features.Player.Get(__instance.gameObject);
            API.Features.Player target   = API.Features.Player.Get(go);

            if (attacker == null || target == null || attacker.IsHost || target.IsHost)
            {
                return;
            }

            var ev = new HurtingEventArgs(API.Features.Player.Get(__instance.gameObject), API.Features.Player.Get(go), info);

            if (ev.Target.IsHost)
            {
                return;
            }

            Player.OnHurting(ev);

            info = ev.HitInformations;
        }
コード例 #7
0
ファイル: Hurting.cs プロジェクト: iRebbok/EXILED
        private static void Prefix(PlayerStats __instance, ref PlayerStats.HitInfo info, GameObject go, bool noTeamDamage = false)
        {
            try
            {
                if (go == null)
                {
                    return;
                }

                API.Features.Player attacker = API.Features.Player.Get(__instance.gameObject);
                API.Features.Player target   = API.Features.Player.Get(go);

                if (attacker == null || target == null || attacker.IsHost || target.IsHost)
                {
                    return;
                }

                var ev = new HurtingEventArgs(API.Features.Player.Get(__instance.gameObject), API.Features.Player.Get(go), info);

                if (ev.Target.IsHost)
                {
                    return;
                }

                Handlers.Player.OnHurting(ev);

                info = ev.HitInformations;
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.Hurting: {e}\n{e.StackTrace}");
            }
        }
コード例 #8
0
ファイル: Joined.cs プロジェクト: ArseeniK/EXILED
        private static void Postfix(GameObject player)
        {
            try
            {
                if (!API.Features.Player.Dictionary.TryGetValue(player, out API.Features.Player newPlayer))
                {
                    newPlayer = new API.Features.Player(ReferenceHub.GetHub(player));

                    API.Features.Player.Dictionary.Add(player, newPlayer);
                }

                API.Features.Log.Debug($"Player {newPlayer?.Nickname} ({newPlayer?.UserId}) connected with the IP: {newPlayer?.IPAddress}");

                if (PlayerManager.players.Count >= CustomNetworkManager.slots)
                {
                    API.Features.Log.Debug($"Server is full!");
                }

                Timing.CallDelayed(0.25f, () =>
                {
                    if (newPlayer != null && newPlayer.IsMuted)
                    {
                        newPlayer.ReferenceHub.characterClassManager.SetDirtyBit(1UL);
                    }
                });

                var ev = new JoinedEventArgs(API.Features.Player.Get(player));

                Player.OnJoined(ev);
            }
            catch (Exception exception)
            {
                API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.Joined: {exception}\n{exception.StackTrace}");
            }
        }
コード例 #9
0
        private static bool Prefix(PlayerStats __instance, ref PlayerStats.HitInfo info, GameObject go)
        {
            try
            {
                if (go == null)
                {
                    return(true);
                }

                API.Features.Player attacker = API.Features.Player.Get(info.IsPlayer ? info.RHub.gameObject : __instance.gameObject);
                API.Features.Player target   = API.Features.Player.Get(go);

                if (attacker == null || target == null || attacker.IsHost || target.IsHost)
                {
                    return(true);
                }

                var ev = new HurtingEventArgs(attacker, target, info);

                if (ev.Target.IsHost)
                {
                    return(true);
                }

                Player.OnHurting(ev);

                info = ev.HitInformations;

                if (!ev.IsAllowed)
                {
                    return(false);
                }

                if (ev.Amount >= ev.Target.Health + ev.Target.AdrenalineHealth)
                {
                    var dyingEventArgs = new DyingEventArgs(ev.Attacker, ev.Target, ev.HitInformations);

                    Player.OnDying(dyingEventArgs);

                    if (!dyingEventArgs.IsAllowed)
                    {
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.Hurting: {e}\n{e.StackTrace}");
                return(true);
            }
        }
コード例 #10
0
        private static bool Prefix(string cmd)
        {
            (string name, string[] arguments) = cmd.ExtractCommand();

            API.Features.Player player = API.Features.Player.Get(Console._ccs.SenderId);

            var ev = new SendingRemoteAdminCommandEventArgs(player?.CommandSender ?? API.Features.Server.Host.CommandSender, player ?? API.Features.Server.Host, name, arguments.ToList());

            Server.OnSendingRemoteAdminCommand(ev);

            return(ev.IsAllowed);
        }
コード例 #11
0
ファイル: AddingTarget.cs プロジェクト: somebofy/EXILED
        private static bool Prefix(Scp096 __instance, GameObject target)
        {
            ReferenceHub hub = ReferenceHub.GetHub(target);

            if (!__instance.CanReceiveTargets || hub == null || __instance._targets.Contains(hub))
            {
                return(false);
            }
            API.Features.Player scp096       = API.Features.Player.Get(__instance.Hub.gameObject);
            API.Features.Player targetPlayer = API.Features.Player.Get(target);
            if (scp096 == null)
            {
                Log.Error("SCP-096.AddTarget: Could not get SCP-096 player object.");
                return(true);
            }

            if (targetPlayer == null)
            {
                Log.Error("SCP-096.AddTarget: Could not get Target player object.");
                return(true);
            }

            AddingTargetEventArgs ev = new AddingTargetEventArgs(scp096, targetPlayer, 70, __instance.EnrageTimePerReset);

            Exiled.Events.Handlers.Scp096.OnAddingTarget(ev);
            if (ev.IsAllowed)
            {
                if (!__instance._targets.IsEmpty() || __instance.Enraged)
                {
                    if (__instance.AddedTimeThisRage + ev.EnrageTimeToAdd >= __instance.MaximumAddedEnrageTime)
                    {
                        ev.EnrageTimeToAdd = 0f;
                    }
                    else if (__instance.AddedTimeThisRage + ev.EnrageTimeToAdd > __instance.MaximumAddedEnrageTime)
                    {
                        ev.EnrageTimeToAdd = __instance.AddedTimeThisRage + ev.EnrageTimeToAdd - __instance.MaximumAddedEnrageTime;
                    }
                    __instance.EnrageTimeLeft    += ev.EnrageTimeToAdd;
                    __instance.AddedTimeThisRage += ev.EnrageTimeToAdd;
                }

                __instance._targets.Add(hub);
                __instance.AdjustShield(ev.AhpToAdd);
                NetworkServer.SendToClientOfPlayer <Scp096ToTargetMessage>(hub.characterClassManager.netIdentity, new Scp096ToTargetMessage(hub));
            }

            return(false);
        }
コード例 #12
0
        private static void Postfix(PlayerStats __instance, ref PlayerStats.HitInfo info, GameObject go)
        {
            API.Features.Player attacker = API.Features.Player.Get(__instance.gameObject);
            API.Features.Player target   = API.Features.Player.Get(go);

            if ((target != null && (target.Role != RoleType.Spectator || target.IsGodModeEnabled || target.IsHost)) || attacker == null)
            {
                return;
            }

            var ev = new DiedEventArgs(API.Features.Player.Get(__instance.gameObject), target, info);

            Player.OnDied(ev);

            info = ev.HitInformations;
        }
コード例 #13
0
        private static bool Prefix(Scp096 __instance, GameObject target)
        {
            ReferenceHub hub = ReferenceHub.GetHub(target);

            if (!__instance.CanReceiveTargets || hub == null || __instance._targets.Contains(hub))
            {
                return(false);
            }
            API.Features.Player scp096       = API.Features.Player.Get(__instance.Hub.gameObject);
            API.Features.Player targetPlayer = API.Features.Player.Get(target);
            if (scp096 == null)
            {
                Log.Error("SCP-096.AddTarget: Could not get SCP-096 player object.");
                return(true);
            }

            if (targetPlayer == null)
            {
                Log.Error("SCP-096.AddTarget: Could not get Target player object.");
                return(true);
            }

            AddingTargetEventArgs ev = new AddingTargetEventArgs(scp096, targetPlayer, 200, __instance.EnrageTimePerReset);

            if (targetPlayer.Role == RoleType.Tutorial && !Exiled.Events.Events.Instance.Config.CanTutorialTriggerScp096)
            {
                ev.IsAllowed = false;
            }
            Exiled.Events.Handlers.Scp096.OnAddingTarget(ev);

            if (ev.IsAllowed)
            {
                if (!__instance._targets.IsEmpty())
                {
                    __instance.EnrageTimeLeft += ev.EnrageTimeToAdd;
                }
                __instance._targets.Add(hub);
                __instance.AdjustShield(ev.AhpToAdd);
            }

            return(false);
        }
コード例 #14
0
        private static void Prefix(ReferenceHub __instance)
        {
            try
            {
                if (__instance.characterClassManager.IsHost)
                {
                    return;
                }

                API.Features.Player player = API.Features.Player.Get(__instance.gameObject);

                if (player == null || string.IsNullOrEmpty(player.UserId))
                {
                    return;
                }

                var ev = new LeftEventArgs(player);

                API.Features.Log.Debug($"Player {ev.Player?.Nickname} ({ev.Player?.UserId}) disconnected");

                Player.OnLeft(ev);

                if (API.Features.Player.IdsCache.ContainsKey(__instance.queryProcessor.PlayerId))
                {
                    API.Features.Player.IdsCache.Remove(__instance.queryProcessor.PlayerId);
                }

                if (API.Features.Player.UserIdsCache.ContainsKey(__instance.characterClassManager.UserId))
                {
                    API.Features.Player.UserIdsCache.Remove(__instance.characterClassManager.UserId);
                }

                if (API.Features.Player.Dictionary.ContainsKey(__instance.gameObject))
                {
                    API.Features.Player.Dictionary.Remove(__instance.gameObject);
                }
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.Left: {e}\n{e.StackTrace}");
            }
        }
コード例 #15
0
        private static void Prefix(CharacterClassManager __instance, bool value)
        {
            try
            {
                if (!value || string.IsNullOrEmpty(__instance?.UserId))
                {
                    return;
                }

                if (!API.Features.Player.Dictionary.TryGetValue(__instance.gameObject, out API.Features.Player player))
                {
                    player = new API.Features.Player(ReferenceHub.GetHub(__instance.gameObject));

                    API.Features.Player.Dictionary.Add(__instance.gameObject, player);
                }

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

                if (PlayerManager.players.Count >= CustomNetworkManager.slots)
                {
                    API.Features.Log.Debug($"Server is full!");
                }

                Timing.CallDelayed(0.25f, () =>
                {
                    if (player != null && player.IsMuted)
                    {
                        player.ReferenceHub.characterClassManager.SetDirtyBit(1UL);
                    }
                });

                var ev = new JoinedEventArgs(API.Features.Player.Get(__instance.gameObject));

                Player.OnJoined(ev);
            }
            catch (Exception exception)
            {
                API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.Joined: {exception}\n{exception.StackTrace}");
            }
        }
コード例 #16
0
        private static bool Prefix(Generator079 __instance, GameObject person, PlayerInteract.Generator079Operations command)
        {
            try
            {
                API.Features.Player player = API.Features.Player.Get(person);

                switch (command)
                {
                case PlayerInteract.Generator079Operations.Door:
                    bool isAllowed = true;

                    switch (__instance.isDoorOpen)
                    {
                    case false:
                        var openingEventArgs = new OpeningGeneratorEventArgs(player, __instance, isAllowed);

                        Player.OnOpeningGenerator(openingEventArgs);

                        isAllowed = openingEventArgs.IsAllowed;
                        break;

                    case true:
                        var closingEventArgs = new ClosingGeneratorEventArgs(player, __instance, isAllowed);

                        Player.OnClosingGenerator(closingEventArgs);

                        isAllowed = closingEventArgs.IsAllowed;
                        break;
                    }

                    if (isAllowed)
                    {
                        __instance.OpenClose(person);
                    }
                    else
                    {
                        __instance.RpcDenied();
                    }
                    break;

                case PlayerInteract.Generator079Operations.Tablet:
                    if (__instance.isTabletConnected || !__instance.isDoorOpen || (__instance._localTime <= 0.0 || Generator079.mainGenerator.forcedOvercharge))
                    {
                        break;
                    }
                    Inventory component = person.GetComponent <Inventory>();
                    using (SyncList <Inventory.SyncItemInfo> .SyncListEnumerator enumerator = component.items.GetEnumerator())
                    {
                        while (enumerator.MoveNext())
                        {
                            Inventory.SyncItemInfo current = enumerator.Current;
                            if (current.id == ItemType.WeaponManagerTablet)
                            {
                                var insertingEventArgs = new InsertingGeneratorTabletEventArgs(player, __instance);

                                Player.OnInsertingGeneratorTablet(insertingEventArgs);

                                if (insertingEventArgs.IsAllowed)
                                {
                                    component.items.Remove(current);
                                    __instance.NetworkisTabletConnected = true;
                                }

                                break;
                            }
                        }

                        break;
                    }

                case PlayerInteract.Generator079Operations.Cancel:
                    var ejectingEventArgs = new EjectingGeneratorTabletEventArgs(player, __instance);

                    Player.OnEjectingGeneratorTablet(ejectingEventArgs);

                    if (ejectingEventArgs.IsAllowed)
                    {
                        __instance.EjectTablet();
                    }

                    break;
                }

                return(false);
            }
            catch (Exception exception)
            {
                API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.InsertingGeneratorTablet: {exception}\n{exception.StackTrace}");

                return(true);
            }
        }
コード例 #17
0
 private static ItemBase GetItem(API.Features.Player player, ushort serial) => player.TryGetItem(serial, out ItemBase item) ? item : null;
コード例 #18
0
ファイル: BanningAndKicking.cs プロジェクト: somebofy/EXILED
        private static bool Prefix(GameObject user, int duration, string reason, string issuer, bool isGlobalBan)
        {
            try
            {
                if (isGlobalBan && ConfigFile.ServerConfig.GetBool("gban_ban_ip", false))
                {
                    duration = int.MaxValue;
                }

                string userId  = null;
                string address = user.GetComponent <NetworkIdentity>().connectionToClient.address;

                API.Features.Player targetPlayer = API.Features.Player.Get(user);
                API.Features.Player issuerPlayer = API.Features.Player.Get(issuer) ?? API.Features.Server.Host;

                try
                {
                    if (ConfigFile.ServerConfig.GetBool("online_mode", false))
                    {
                        userId = targetPlayer.UserId;
                    }
                }
                catch
                {
                    ServerConsole.AddLog("Failed during issue of User ID ban (1)!");
                    return(false);
                }

                string message = $"You have been {((duration > 0) ? "banned" : "kicked")}. ";
                if (!string.IsNullOrEmpty(reason))
                {
                    message = message + "Reason: " + reason;
                }

                if (!ServerStatic.PermissionsHandler.IsVerified || !targetPlayer.IsStaffBypassEnabled)
                {
                    if (duration > 0)
                    {
                        var ev = new BanningEventArgs(targetPlayer, issuerPlayer, duration, reason, message);

                        Player.OnBanning(ev);

                        duration = ev.Duration;
                        reason   = ev.Reason;
                        message  = ev.FullMessage;

                        if (!ev.IsAllowed)
                        {
                            return(false);
                        }

                        string originalName = string.IsNullOrEmpty(targetPlayer.Nickname)
                            ? "(no nick)"
                            : targetPlayer.Nickname;
                        long issuanceTime   = TimeBehaviour.CurrentTimestamp();
                        long banExpieryTime = TimeBehaviour.GetBanExpirationTime((uint)duration);
                        try
                        {
                            if (userId != null && !isGlobalBan)
                            {
                                BanHandler.IssueBan(
                                    new BanDetails
                                {
                                    OriginalName = originalName,
                                    Id           = userId,
                                    IssuanceTime = issuanceTime,
                                    Expires      = banExpieryTime,
                                    Reason       = reason,
                                    Issuer       = issuer,
                                }, BanHandler.BanType.UserId);

                                if (!string.IsNullOrEmpty(targetPlayer.CustomUserId))
                                {
                                    BanHandler.IssueBan(
                                        new BanDetails
                                    {
                                        OriginalName = originalName,
                                        Id           = targetPlayer.CustomUserId,
                                        IssuanceTime = issuanceTime,
                                        Expires      = banExpieryTime,
                                        Reason       = reason,
                                        Issuer       = issuer,
                                    }, BanHandler.BanType.UserId);
                                }
                            }
                        }
                        catch
                        {
                            ServerConsole.AddLog("Failed during issue of User ID ban (2)!");
                            return(false);
                        }

                        try
                        {
                            if (ConfigFile.ServerConfig.GetBool("ip_banning", false) || isGlobalBan)
                            {
                                BanHandler.IssueBan(
                                    new BanDetails
                                {
                                    OriginalName = originalName,
                                    Id           = address,
                                    IssuanceTime = issuanceTime,
                                    Expires      = banExpieryTime,
                                    Reason       = reason,
                                    Issuer       = issuer,
                                }, BanHandler.BanType.IP);
                            }
                        }
                        catch
                        {
                            ServerConsole.AddLog("Failed during issue of IP ban!");
                            return(false);
                        }
                    }
                    else if (duration == 0)
                    {
                        var ev = new KickingEventArgs(targetPlayer, issuerPlayer, reason, message);

                        Player.OnKicking(ev);

                        reason  = ev.Reason;
                        message = ev.FullMessage;

                        if (!ev.IsAllowed)
                        {
                            return(false);
                        }
                    }
                }

                ServerConsole.Disconnect(targetPlayer.ReferenceHub.gameObject, message);

                return(false);
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.BanningAndKicking: {e}\n{e.StackTrace}");

                return(true);
            }
        }
コード例 #19
0
        private static bool Prefix(PlayerStats __instance, ref PlayerStats.HitInfo info, GameObject go)
        {
            try
            {
                if (go == null)
                {
                    return(true);
                }

                API.Features.Player attacker = API.Features.Player.Get(info.IsPlayer ? info.RHub.gameObject : __instance.gameObject);
                API.Features.Player target   = API.Features.Player.Get(go);

                if (target == null || target.IsHost)
                {
                    return(true);
                }

                if (info.GetDamageType() == DamageTypes.Recontainment && target.Role == RoleType.Scp079)
                {
                    Scp079.OnRecontained(new RecontainedEventArgs(target));
                    var eventArgs = new DiedEventArgs(null, target, info);
                    Player.OnDied(eventArgs);
                }

                if (attacker == null || attacker.IsHost)
                {
                    return(true);
                }

                var ev = new HurtingEventArgs(attacker, target, info);

                if (ev.Target.IsHost)
                {
                    return(true);
                }

                Player.OnHurting(ev);

                info = ev.HitInformations;

                if (!ev.IsAllowed)
                {
                    return(false);
                }

                if (!ev.Target.IsGodModeEnabled && (ev.Amount == -1 || ev.Amount >= ev.Target.Health + ev.Target.AdrenalineHealth))
                {
                    var dyingEventArgs = new DyingEventArgs(ev.Attacker, ev.Target, ev.HitInformations);

                    Player.OnDying(dyingEventArgs);

                    if (!dyingEventArgs.IsAllowed)
                    {
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.Hurting: {e}\n{e.StackTrace}");
                return(true);
            }
        }