using System.Reflection;
using HarmonyLib;
using UnityEditor;
using UnityEngine;

[InitializeOnLoad]
public static class VRCFAllowRootFeatures {
    static VRCFAllowRootFeatures() {
        var harmony = new Harmony("gay.lilyy.VRCFAllowRootFeatures");
        var featureFinderType = AccessTools.TypeByName("VF.Feature.Base.FeatureFinder");

        if (featureFinderType == null) {
            Debug.LogError("FeatureFinder type not found");
            return;
        }

        var method = AccessTools.Method(featureFinderType, "AllowRootFeatures");
        if (method == null) {
            Debug.LogError("AllowRootFeatures method not found");
            return;
        }

        var prefix = typeof(VRCFAllowRootFeatures).GetMethod(nameof(Prefix), BindingFlags.Static | BindingFlags.NonPublic);
        harmony.Patch(method, prefix: new HarmonyMethod(prefix));
    }

    private static bool Prefix(object gameObject, object avatarObject, ref bool __result) {
        __result = true;
        return false;
    }
}
