diff --git a/EXILED/Exiled.Events/Patches/Events/Player/TriggeringTesla.cs b/EXILED/Exiled.Events/Patches/Events/Player/TriggeringTesla.cs index 4034169a6a..f4070abf1e 100644 --- a/EXILED/Exiled.Events/Patches/Events/Player/TriggeringTesla.cs +++ b/EXILED/Exiled.Events/Patches/Events/Player/TriggeringTesla.cs @@ -55,8 +55,14 @@ private static IEnumerable Transpiler(IEnumerable Transpiler(IEnumerable.Pool.Return(newInstructions); } - private static void TriggeringTeslaEvent(BaseTeslaGate baseTeslaGate, ref bool inIdleRange, ref bool isTriggerable) + private static void TriggeringTeslaEvent(BaseTeslaGate baseTeslaGate, ref bool inIdleRange, ref bool isTriggerable, ref ReferenceHub stupid1, ref ReferenceHub stupid2) { - TeslaGate teslaGate = TeslaGate.Get(baseTeslaGate); + TeslaGate customTesla = TeslaGate.Get(baseTeslaGate); foreach (Player player in ReferenceHub.AllHubs.Select(Player.Get)) { - if (player is null || !teslaGate.CanBeIdle(player)) + if (player is null || !customTesla.CanBeIdle(player)) continue; - TriggeringTeslaEventArgs ev = new(player, teslaGate); - + TriggeringTeslaEventArgs ev = new(player, customTesla); Handlers.Player.OnTriggeringTesla(ev); if (ev.DisableTesla) @@ -85,14 +90,30 @@ private static void TriggeringTeslaEvent(BaseTeslaGate baseTeslaGate, ref bool i break; } - if (!ev.IsAllowed) - continue; - - if (ev.IsTriggerable && !isTriggerable) - isTriggerable = ev.IsTriggerable; + if (!inIdleRange) + { + if (ev.IsInIdleRange) + { + LabApi.Events.Arguments.PlayerEvents.PlayerIdlingTeslaEventArgs playerIdlingTeslaEventArgs = new(player.ReferenceHub, baseTeslaGate); + LabApi.Events.Handlers.PlayerEvents.OnIdlingTesla(playerIdlingTeslaEventArgs); + if (playerIdlingTeslaEventArgs.IsAllowed) + { + inIdleRange = true; + stupid1 = ev.Player.ReferenceHub; + } + } + } - if (ev.IsInIdleRange && !inIdleRange) - inIdleRange = ev.IsInIdleRange; + if (!isTriggerable && ev.IsTriggerable && !customTesla.IsShocking) + { + LabApi.Events.Arguments.PlayerEvents.PlayerTriggeringTeslaEventArgs playerTriggeringTeslaEventArgs = new(player.ReferenceHub, baseTeslaGate); + LabApi.Events.Handlers.PlayerEvents.OnTriggeringTesla(playerTriggeringTeslaEventArgs); + if (playerTriggeringTeslaEventArgs.IsAllowed) + { + stupid2 = ev.Player.ReferenceHub; + isTriggerable = true; + } + } } } }