private static bool Prefix(WorkStation __instance, GameObject tabletOwner) { try { if (!__instance.CanPlace(tabletOwner) || __instance._animationCooldown > 0f) { return(false); } var player = tabletOwner.GetPlayer(); var station = __instance.GetWorkStation(); foreach (var item in player.Inventory.Items) { if (item.ItemType == ItemType.WeaponManagerTablet && !station.IsTabletConnected) { try { Event.Get.Player.InvokePlayerConnectWorkstation(player, item, station, out var allow); Event.Get.Player.InvokePlayerItemUseEvent(player, item, Api.Events.SynapseEventArguments.ItemInteractState.Finalizing, ref allow); if (!allow) { continue; } } catch (Exception e) { Synapse.Api.Logger.Get.Error($"Synapse-Event: PlayerConnectWorkstation Event failed!!\n{e}\nStackTrace:\n{e.StackTrace}"); } item.Despawn(); station.ConnectedTablet = item; station.TabletOwner = tabletOwner.GetPlayer(); } } } catch (Exception e) { Logger.Get.Error($"Synapse-Item: Connect Workstation Tablet failed!!\n{e}\nStackTrace:\n{e.StackTrace}"); } return(false); }
private static bool Prefix(WorkStation __instance, GameObject tabletOwner) { try { if (!__instance.CanPlace(tabletOwner) || __instance._animationCooldown > 0f) { return(false); } Inventory component = tabletOwner.GetComponent <Inventory>(); foreach (Inventory.SyncItemInfo syncItemInfo in component.items) { if (syncItemInfo.id == ItemType.WeaponManagerTablet) { ActivatingWorkstationEventArgs ev = new ActivatingWorkstationEventArgs(Exiled.API.Features.Player.Get(tabletOwner), __instance); Player.OnActivatingWorkstation(ev); if (ev.IsAllowed) { component.items.Remove(syncItemInfo); __instance.NetworkisTabletConnected = true; __instance._animationCooldown = 6.5f; __instance.Network_playerConnected = tabletOwner; } break; } } return(false); } catch (Exception exception) { API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.ActivatingWorkstation: {exception}\n{exception.StackTrace}"); return(true); } }