internal void OnDeactivateWorkstation(DeactivatingWorkstationEventArgs ev) { if (!config.Workstation.canDeactivateWorkstationGlobal && !config.Workstation.canDeactivateWorkstation[ev.Player.Role]) { ev.IsAllowed = false; } }
private static bool Prefix(WorkStation __instance, GameObject taker) { try { if (!__instance.CanTake(taker) || __instance._animationCooldown > 0f) { return(false); } DeactivatingWorkstationEventArgs ev = new DeactivatingWorkstationEventArgs(Exiled.API.Features.Player.Get(taker), __instance); Player.OnDeactivatingWorkstation(ev); if (ev.IsAllowed) { taker.GetComponent <Inventory>().AddNewItem(ItemType.WeaponManagerTablet, -4.65664672E+11f, 0, 0, 0); __instance.Network_playerConnected = null; __instance.NetworkisTabletConnected = false; __instance._animationCooldown = 3.5f; } return(false); } catch (Exception exception) { API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.DeactivatingWorkstation: {exception}\n{exception.StackTrace}"); return(true); } }
/// <summary> /// Called before a workstation is deactivated. /// </summary> /// <param name="ev">The <see cref="DeactivatingWorkstationEventArgs"/> instance.</param> public static void OnDeactivatingWorkstation(DeactivatingWorkstationEventArgs ev) => DeactivatingWorkstation.InvokeSafely(ev);