private static bool Prefix(WorkStation __instance, GameObject taker) { try { if (!__instance.CanTake(taker) || __instance._animationCooldown > 0f) { return(false); } var player = taker.GetPlayer(); var station = __instance.GetWorkStation(); try { Event.Get.Player.InvokePlayerUnonnectWorkstation(player, station, out var allow); if (!allow) { return(false); } } catch (Exception e) { Synapse.Api.Logger.Get.Error($"Synapse-Event: PlayerConnectWorkstation Event failed!!\n{e}\nStackTrace:\n{e.StackTrace}"); } station.TabletOwner = player; station.IsTabletConnected = false; } catch (Exception e) { Logger.Get.Error($"Synapse-Item: Disconnect Workstation Tablet failed!!\n{e}\nStackTrace:\n{e.StackTrace}"); } return(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); } }