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); } }
public void OnRemovingHandcuff(RemovingHandcuffsEventArgs ev) { if (pCuffedDict.ContainsKey(ev.Cuffer) && pCuffedDict[ev.Cuffer] != null) { pCuffedDict[ev.Cuffer] = null; } }
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); } }
public void OnRemovingHandcuffs(RemovingHandcuffsEventArgs ev) { if (SimpleCuffProtection.DisallowUncuffing) { ev.IsAllowed = false; } }
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); }
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); } }
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); }
/// <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);
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); } }