Ejemplo n.º 1
0
        public bool ApplyPatches(PatchWrapper patchWrapper)
        {
            // Disables the auto updater
            patchWrapper.NewPrefixPatch(
                AccessTools.Method(
                    typeof(NzbDrone.Core.Update.CheckUpdateService),
                    "AvailableUpdate"),

                AccessTools.Method(
                    typeof(GenericPatches.NOP),
                    "NoOperation")
                );

            /*
             * // Patches GetMovieFolder to always return a dot for current directory.
             * patchWrapper.NewPrefixPatch(
             *  AccessTools.Method(
             *      typeof(NzbDrone.Core.Organizer.FileNameBuilder),
             *      "GetMovieFolder"),
             *
             *  AccessTools.Method(
             *      typeof(NZBDrone.Versions._1_0_0_32922.Core.Organizer.FileNameBuilder),
             *      "GetMovieFolder")
             * );
             */

            patchWrapper.NewPostfixPatch(
                AccessTools.Method(
                    typeof(NzbDrone.Core.Movies.MoveMovieService), "Execute"),
                AccessTools.Method(
                    typeof(MovieMoveService), "Execute"));


            patchWrapper.NewPrefixPatch(
                AccessTools.Method(
                    typeof(NzbDrone.Core.Movies.MovieService),
                    "AddMovie"),

                AccessTools.Method(
                    typeof(NZBDrone.Versions._0_2_0_1358.Core.Movies.MovieService),
                    "AddMovie"));


            return(patchWrapper.ApplyPatches());
        }
Ejemplo n.º 2
0
        public bool ApplyPatches(PatchWrapper patchWrapper)
        {
            try
            {
                Util.Logger.Instance.Log($"[ApplyPatches] Attempting to create new patch for CheatMenu");

                patchWrapper.NewPrefixPatch(
                    AccessTools.Method(typeof(CheatMenu), "OnPanelPop"),
                    AccessTools.Method(typeof(NOP), "NoOperation"));

                patchWrapper.NewPostfixPatch(
                    AccessTools.Method(typeof(CheatMenu), "Awake"),
                    AccessTools.Method(typeof(CheatMenuPatch), "AwakePost"));

                patchWrapper.NewPrefixPatch(
                    AccessTools.Method(typeof(CheatMenu), "CreateMenu"),
                    AccessTools.Method(typeof(CheatMenuPatch), "CheatMenuPre"));

                patchWrapper.NewPrefixPatch(
                    AccessTools.Method(typeof(CheatCodeLogic), "Update"),
                    AccessTools.Method(typeof(CheatCodeLogicPatch), "Update"));

                patchWrapper.NewPrefixPatch(
                    AccessTools.Method(typeof(CheatCodeLogic), "UnlockAllLevels"),
                    AccessTools.Method(typeof(CheatCodeLogicPatch), "UnlockAllLevels"));

                patchWrapper.NewPrefixPatch(
                    AccessTools.Method(typeof(AkGameObj), "Update"),
                    AccessTools.Method(typeof(AkGameObjectPatch), "Update"));

                patchWrapper.NewPrefixPatch(
                    AccessTools.Method(typeof(SharpObject), "WasSharpEdgeHit"),
                    AccessTools.Method(typeof(SharpObjectPatch), "WasSharpEdgeHit"));

                patchWrapper.NewPostfixPatch(
                    AccessTools.Method(typeof(GameManager), "QuitGame"),
                    AccessTools.Method(typeof(GameManagerPatch), "QuitGame"));

                patchWrapper.NewPrefixPatch(
                    AccessTools.Method(typeof(Splittable), "TestAgainstLaser"),
                    AccessTools.Method(typeof(SplittablePatch), "TestAgainstLaser"));

                patchWrapper.NewPrefixPatch(
                    AccessTools.Method(typeof(WingCorruptionZone), "SetCorruptionEnabled"),
                    AccessTools.Method(typeof(WingCorruptionZonePatch), "SetCorruptionEnabled"));

                patchWrapper.NewPostfixPatch(
                    AccessTools.Method(typeof(StoryIntroCutsceneLogic), "OnEventPostLoad"),
                    AccessTools.Method(typeof(StoryIntroCutsceneLogicPatch), "OnEventPostLoad"));

                patchWrapper.NewPostfixPatch(
                    AccessTools.Method(typeof(PlayerDataLocal), "InitCarVirtual"),
                    AccessTools.Method(typeof(PlayerDataLocalPatch), "InitCarVirtual"));

                Util.Logger.Instance.Log($"[ApplyPatches] Applying them via Harmony now");
                return(patchWrapper.ApplyPatches());
            }
            catch (Exception ex)
            {
                Util.Logger.Instance.Log($"[ApplyPatches] {ex.Message}\r\n\r\n{ex.StackTrace}");
                return(false);
            }
        }