コード例 #1
0
 public async void OnRemovingHandcuffs(RemovingHandcuffsEventArgs ev)
 {
     if (Instance.Config.EventsToLog.PlayerRemovingHandcuffs && ((!ev.Cuffer.DoNotTrack && !ev.Target.DoNotTrack) || !Instance.Config.ShouldRespectDoNotTrack))
     {
         await Network.SendAsync(new RemoteCommand("log", "gameEvents", string.Format(Language.HasBeenFreedBy, ev.Target.Nickname, Instance.Config.ShouldLogUserIds ? ev.Target.UserId : Language.Redacted, ev.Target.Role, ev.Cuffer.Nickname, Instance.Config.ShouldLogUserIds ? ev.Cuffer.UserId : Language.Redacted, ev.Cuffer.Role))).ConfigureAwait(false);
     }
 }
コード例 #2
0
 public void OnRemovingHandcuff(RemovingHandcuffsEventArgs ev)
 {
     if (pCuffedDict.ContainsKey(ev.Cuffer) && pCuffedDict[ev.Cuffer] != null)
     {
         pCuffedDict[ev.Cuffer] = null;
     }
 }
コード例 #3
0
        private static bool Prefix(Handcuffs __instance, GameObject target)
        {
            try
            {
                if (!__instance._interactRateLimit.CanExecute(true) || target == null ||
                    (Vector3.Distance(target.transform.position, __instance.transform.position) >
                     __instance.raycastDistance * 1.10000002384186 || __instance.MyReferenceHub.characterClassManager
                     .Classes.SafeGet(__instance.MyReferenceHub.characterClassManager.CurClass).team ==
                     Team.SCP))
                {
                    return(false);
                }

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

                Player.OnRemovingHandcuffs(ev);

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

                targetPlayer.CufferId = -1;

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

                return(true);
            }
        }
コード例 #4
0
 public void OnRemovingHandcuffs(RemovingHandcuffsEventArgs ev)
 {
     if (SimpleCuffProtection.DisallowUncuffing)
     {
         ev.IsAllowed = false;
     }
 }
コード例 #5
0
        private static bool Prefix(Handcuffs __instance)
        {
            foreach (API.Features.Player target in API.Features.Player.List)
            {
                if (target == null)
                {
                    continue;
                }

                if (target.CufferId == __instance.MyReferenceHub.queryProcessor.PlayerId)
                {
                    var ev = new RemovingHandcuffsEventArgs(API.Features.Player.Get(__instance.gameObject), target);

                    Player.OnRemovingHandcuffs(ev);

                    if (ev.IsAllowed)
                    {
                        target.CufferId = -1;
                    }

                    break;
                }
            }

            return(false);
        }
コード例 #6
0
ファイル: RemovingHandcuffs.cs プロジェクト: iRebbok/EXILED
        private static bool Prefix(Handcuffs __instance)
        {
            try
            {
                foreach (API.Features.Player target in API.Features.Player.List)
                {
                    if (target == null)
                    {
                        continue;
                    }

                    if (target.CufferId == __instance.MyReferenceHub.queryProcessor.PlayerId)
                    {
                        var ev = new RemovingHandcuffsEventArgs(API.Features.Player.Get(__instance.gameObject), target);

                        Player.OnRemovingHandcuffs(ev);

                        if (ev.IsAllowed)
                        {
                            target.CufferId = -1;
                        }

                        break;
                    }
                }

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

                return(true);
            }
        }
コード例 #7
0
        internal void RemovingHandcuffs(RemovingHandcuffsEventArgs ev)
        {
            if (Plugin.Instance.Config.RemovingHandcuffs == "")
            {
                return;
            }
            string message = Plugin.Instance.Config.RemovingHandcuffs.Replace("%player%", ev.Target.ToString());

            message = message.Replace("%team%", ev.Target.Team.ToString());


            if (Plugin.Instance.Config.debug_to_console)
            {
                Log.Debug(message: "[ " + Plugin.Instance.Config.player_name + "] " + message);
            }
            Plugin.sendWebHook(Plugin.Instance.Config.player_url, message, Plugin.Instance.Config.player_name);
        }
コード例 #8
0
ファイル: Player.cs プロジェクト: gamehunt/EXILED
 /// <summary>
 /// Invoked before removing handcuffs to a player.
 /// </summary>
 /// <param name="ev">The <see cref="RemovingHandcuffsEventArgs"/> instance.</param>
 public static void OnRemovingHandcuffs(RemovingHandcuffsEventArgs ev) => RemovingHandcuffs.InvokeSafely(ev);
コード例 #9
0
        public static bool Prefix(NetworkConnection conn, DisarmMessage msg)
        {
            try
            {
                if (!DisarmingHandlers.ServerCheckCooldown(conn) || !ReferenceHub.TryGetHub(conn.identity.gameObject, out ReferenceHub hub))
                {
                    return(false);
                }

                if (!msg.PlayerIsNull)
                {
                    Vector3 vector3 = msg.PlayerToDisarm.transform.position - hub.transform.position;
                    if (vector3.sqrMagnitude > 20.0 || (msg.PlayerToDisarm.inventory.CurInstance is not null && msg.PlayerToDisarm.inventory.CurInstance.TierFlags != ItemTierFlags.Common))
                    {
                        return(false);
                    }
                }

                bool flag1 = !msg.PlayerIsNull && msg.PlayerToDisarm.inventory.IsDisarmed();
                bool flag2 = !msg.PlayerIsNull && hub.CanDisarm(msg.PlayerToDisarm);

                if (flag1 && !msg.Disarm)
                {
                    if (!hub.inventory.IsDisarmed())
                    {
                        var ev = new RemovingHandcuffsEventArgs(API.Features.Player.Get(hub), API.Features.Player.Get(msg.PlayerToDisarm));

                        Player.OnRemovingHandcuffs(ev);

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

                        msg.PlayerToDisarm.inventory.SetDisarmedStatus(null);
                    }
                }
                else if (!flag1 & flag2 && msg.Disarm)
                {
                    if (msg.PlayerToDisarm.inventory.CurInstance is null || msg.PlayerToDisarm.inventory.CurInstance.CanHolster())
                    {
                        if (msg.PlayerToDisarm.characterClassManager.CurRole.team == Team.MTF && hub.characterClassManager.CurClass == RoleType.ClassD)
                        {
                            AchievementHandlerBase.ServerAchieve(hub.networkIdentity.connectionToClient, AchievementName.TablesHaveTurned);
                        }

                        var ev = new HandcuffingEventArgs(API.Features.Player.Get(hub), API.Features.Player.Get(msg.PlayerToDisarm));

                        Player.OnHandcuffing(ev);

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

                        msg.PlayerToDisarm.inventory.SetDisarmedStatus(hub.inventory);
                    }
                }
                else
                {
                    hub.networkIdentity.connectionToClient.Send <DisarmedPlayersListMessage>(DisarmingHandlers.NewDisarmedList, 0);
                    return(false);
                }

                DisarmingHandlers.NewDisarmedList.SendToAuthenticated <DisarmedPlayersListMessage>();

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

                return(true);
            }
        }