33 lines
1.2 KiB
C#
Raw Normal View History

using Aki.Reflection.Patching;
using BepInEx;
using EFT.UI;
using System.Reflection;
2024-03-05 22:48:21 +02:00
namespace IcyClawz.ItemAttributeFix;
[BepInPlugin("com.IcyClawz.ItemAttributeFix", "IcyClawz.ItemAttributeFix", "1.3.0")]
2024-03-05 22:48:21 +02:00
public class Plugin : BaseUnityPlugin
{
2024-03-05 22:48:21 +02:00
private void Awake() =>
new CompactCharacteristicPanelPatch().Enable();
}
2024-03-05 22:48:21 +02:00
internal class CompactCharacteristicPanelPatch : ModulePatch
{
private static readonly FieldInfo ItemAttributeField =
typeof(CompactCharacteristicPanel).GetField("ItemAttribute", BindingFlags.NonPublic | BindingFlags.Instance);
2024-03-05 22:48:21 +02:00
private static readonly FieldInfo StringField =
typeof(CompactCharacteristicPanel).GetField("string_0", BindingFlags.NonPublic | BindingFlags.Instance);
2024-03-05 22:48:21 +02:00
protected override MethodBase GetTargetMethod() =>
typeof(CompactCharacteristicPanel).GetMethod("SetValues", BindingFlags.Public | BindingFlags.Instance);
[PatchPostfix]
private static void PatchPostfix(ref CompactCharacteristicPanel __instance)
{
if (ItemAttributeField.GetValue(__instance) is ItemAttributeClass attribute)
StringField.SetValue(__instance, attribute.FullStringValue());
}
}