HideDress/SkinHide/Patches/PlayerPatch.cs
2022-11-07 11:03:15 +08:00

51 lines
1.2 KiB
C#

using Aki.Reflection.Patching;
using Aki.Reflection.Utils;
using System.Reflection;
using System.Threading.Tasks;
using Comfort.Common;
using EFT;
namespace SkinHide.Patches
{
public class PlayerPatch : ModulePatch
{
private static readonly bool Is231Up;
static PlayerPatch()
{
Is231Up = typeof(Player).GetProperty("IsYourPlayer").GetSetMethod() == null;
}
protected override MethodBase GetTargetMethod()
{
return typeof(Player).GetMethod("Init", PatchConstants.PrivateFlags);
}
[PatchPostfix]
private async static void PatchPostfix(Task __result, Player __instance)
{
await __result;
bool isYouPlayer;
if ((bool)Is231Up)
{
isYouPlayer = __instance.IsYourPlayer;
}
else
{
isYouPlayer = __instance == Singleton<GameWorld>.Instance.AllPlayers[0];
}
if (isYouPlayer)
{
SkinHidePlugin.Player = __instance.PlayerBody;
}
else
{
SkinHidePlugin.Bot.Add(__instance.PlayerBody);
}
}
}
}