コード例 #1
0
ファイル: Scp953Component.cs プロジェクト: BuildBoy12/Scp953
 private void OnHandcuffing(HandcuffingEventArgs ev)
 {
     if (ev.Cuffer == _player && _player.Role != _config.Role)
     {
         ev.IsAllowed = false;
     }
 }
コード例 #2
0
 public async void OnHandcuffing(HandcuffingEventArgs ev)
 {
     if (Instance.Config.EventsToLog.HandcuffingPlayer && ((!ev.Cuffer.DoNotTrack && !ev.Target.DoNotTrack) || !Instance.Config.ShouldRespectDoNotTrack))
     {
         await Network.SendAsync(new RemoteCommand("log", "gameEvents", string.Format(Language.HasBeenHandcuffedBy, 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);
     }
 }
コード例 #3
0
ファイル: EventHandlers.cs プロジェクト: An4r3w/SCP-343
 public void onDetain(HandcuffingEventArgs ev)
 {
     if (EventHandlers.scp343.Contains(ev.Target))
     {
         ev.IsAllowed = false;
         ev.Cuffer.Broadcast(3, "You cannot cuff <color=red>SCP-343</color>", 0);
     }
 }
コード例 #4
0
 public void OnHandcuff(HandcuffingEventArgs ev)
 {
     if (!pCuffedDict.ContainsKey(ev.Cuffer))
     {
         pCuffedDict.Add(ev.Cuffer, ev.Target);
     }
     else
     {
         pCuffedDict[ev.Cuffer] = ev.Target;
     }
 }
コード例 #5
0
 public void OnHandcuffing(HandcuffingEventArgs ev)
 {
     if (SimpleCuffProtection.DisallowUncuffing && Handcuffs.ContainsKey(ev.Cuffer))
     {
         Handcuffs[ev.Cuffer] = ev.Target;
     }
     else if (SimpleCuffProtection.DisallowUncuffing)
     {
         Handcuffs.Add(ev.Cuffer, ev.Target);
     }
 }
コード例 #6
0
ファイル: Player.cs プロジェクト: 8-bit-gaming/SCP-Bit
 public async void OnHandcuffing(HandcuffingEventArgs ev)
 {
     if (ev.IsAllowed)
     {
         await _privateWebhook.ExecuteWebhook(
             $"{ev.Cuffer.Nickname} ({ev.Cuffer.UserId}) is handcuffing {ev.Target.Nickname} ({ev.Target.UserId})!",
             "SCP-Bot",
             false
             );
     }
 }
コード例 #7
0
        internal void Handcuffing(HandcuffingEventArgs ev)
        {
            if (Plugin.Instance.Config.Handcuffing == "")
            {
                return;
            }
            string message = Plugin.Instance.Config.Handcuffing.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
        private void OnCuffEvent(HandcuffingEventArgs ev)
        {
            RoleType source = ev.Cuffer.Role;
            RoleType target = ev.Target.Role;

            if (
                source == _ntfRole && target == RoleType.ClassD ||
                source == _chaosRole && target == RoleType.Scientist
                )
            {
                //Allowed to do cuffing
                Timing.RunCoroutine(RandomPlayerRespawn(ev.Target));
                string color = ev.Cuffer.Role == _chaosRole ? "green" : "blue";
                AnnounceUnthawing(ev.Cuffer, ev.Target, color, color);
            }
            else
            {
                ev.IsAllowed = false;
                ev.Cuffer.ShowHint("You cannot cuff that person! Bad!");
            }
        }
コード例 #9
0
ファイル: Player.cs プロジェクト: gamehunt/EXILED
 /// <summary>
 /// Invoked before handcuffing a player.
 /// </summary>
 /// <param name="ev">The <see cref="HandcuffingEventArgs"/> instance.</param>
 public static void OnHandcuffing(HandcuffingEventArgs ev) => Handcuffing.InvokeSafely(ev);
コード例 #10
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);
            }
        }
コード例 #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="OwnerHandcuffingEventArgs"/> class.
 /// </summary>
 /// <param name="item"><inheritdoc cref="Item"/></param>
 /// <param name="ev">The <see cref="HandcuffingEventArgs"/> instance.</param>
 public OwnerHandcuffingEventArgs(Item item, HandcuffingEventArgs ev)
     : this(item, ev.Cuffer, ev.Target, ev.IsAllowed)
 {
 }
コード例 #12
0
ファイル: Handcuffing.cs プロジェクト: zabszk/EXILED
        private static bool Prefix(Handcuffs __instance, GameObject target)
        {
            try
            {
                if (!__instance._interactRateLimit.CanExecute() || target == null ||
                    Vector3.Distance(target.transform.position, __instance.transform.position) >
                    __instance.raycastDistance * 1.10000002384186)
                {
                    return(false);
                }
                Handcuffs handcuffs = ReferenceHub.GetHub(target).handcuffs;
                if (handcuffs == null || __instance.MyReferenceHub.inventory.curItem != ItemType.Disarmer ||
                    (__instance.MyReferenceHub.characterClassManager.CurClass < RoleType.Scp173 ||
                     handcuffs.CufferId >= 0) || handcuffs.MyReferenceHub.inventory.curItem != ItemType.None)
                {
                    return(false);
                }
                Team team1 = __instance.MyReferenceHub.characterClassManager.Classes
                             .SafeGet(__instance.MyReferenceHub.characterClassManager.CurClass).team;
                Team team2 = __instance.MyReferenceHub.characterClassManager.Classes
                             .SafeGet(handcuffs.MyReferenceHub.characterClassManager.CurClass).team;
                bool flag = false;
                switch (team1)
                {
                case Team.MTF:
                    if (team2 == Team.CHI || team2 == Team.CDP)
                    {
                        flag = true;
                    }
                    if (team2 == Team.RSC && ConfigFile.ServerConfig.GetBool("mtf_can_cuff_researchers"))
                    {
                        flag = true;
                    }

                    break;

                case Team.CHI:
                    if (team2 == Team.MTF || team2 == Team.RSC)
                    {
                        flag = true;
                    }
                    if (team2 == Team.CDP && ConfigFile.ServerConfig.GetBool("ci_can_cuff_class_d"))
                    {
                        flag = true;
                    }

                    break;

                case Team.RSC:
                    if (team2 == Team.CHI || team2 == Team.CDP)
                    {
                        flag = true;
                    }

                    break;

                case Team.CDP:
                    if (team2 == Team.MTF || team2 == Team.RSC)
                    {
                        flag = true;
                    }

                    break;
                }

                if (!flag)
                {
                    return(false);
                }

                __instance.ClearTarget();

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

                Player.OnHandcuffing(ev);

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

                handcuffs.NetworkCufferId = __instance.MyReferenceHub.queryProcessor.PlayerId;

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

                return(true);
            }
        }
コード例 #13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="OwnerHandcuffingEventArgs"/> class.
 /// </summary>
 /// <param name="item"><inheritdoc cref="Item"/></param>
 /// <param name="ev">The <see cref="HandcuffingEventArgs"/> instance.</param>
 public OwnerHandcuffingEventArgs(Inventory.SyncItemInfo item, HandcuffingEventArgs ev)
     : this(item, ev.Cuffer, ev.Target, ev.IsAllowed)
 {
 }