Skip to content

Commit b3564e1

Browse files
authored
fix: Escaping Exiled and LabAPI bug different way (#589)
* . * .
1 parent c782ee2 commit b3564e1

2 files changed

Lines changed: 4 additions & 5 deletions

File tree

EXILED/Exiled.Events/EventArgs/Player/EscapingEventArgs.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public EscapingEventArgs(ReferenceHub referenceHub, RoleTypeId newRole, EscapeSc
3939
Player = Player.Get(referenceHub);
4040
NewRole = newRole;
4141
EscapeScenario = escapeScenario;
42-
IsAllowed = true;
42+
IsAllowed = escapeScenario is not EscapeScenario.None;
4343
}
4444

4545
/// <summary>

EXILED/Exiled.Events/Patches/Events/Player/EscapingAndEscaped.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@ namespace Exiled.Events.Patches.Events.Player
1313
using System.Collections.Generic;
1414
using System.Reflection.Emit;
1515

16-
using API.Enums;
1716
using API.Features;
1817
using API.Features.Pools;
1918
using EventArgs.Player;
2019
using Exiled.API.Features.Roles;
2120
using Exiled.Events.Attributes;
2221
using HarmonyLib;
23-
using PlayerRoles.FirstPersonControl;
22+
using LabApi.Events.Arguments.PlayerEvents;
2423

2524
using static HarmonyLib.AccessTools;
2625

@@ -41,8 +40,8 @@ private static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstructi
4140
LocalBuilder ev = generator.DeclareLocal(typeof(EscapingEventArgs));
4241
LocalBuilder role = generator.DeclareLocal(typeof(Role));
4342

44-
int offset = -3;
45-
int index = newInstructions.FindIndex(instruction => instruction.opcode == OpCodes.Newobj) + offset;
43+
int offset = 2;
44+
int index = newInstructions.FindIndex(i => i.opcode == OpCodes.Callvirt && i.operand == (object)PropertyGetter(typeof(PlayerEscapingEventArgs), nameof(PlayerEscapingEventArgs.EscapeScenario))) + offset;
4645

4746
newInstructions.InsertRange(
4847
index,

0 commit comments

Comments
 (0)