From 90f1d49887d5338e0b87f80b0872e10530334df4 Mon Sep 17 00:00:00 2001 From: Luke Date: Sat, 11 Jan 2025 14:39:14 +1000 Subject: [PATCH] Replace AchievementInitializer MM IL with static hook --- TShockAPI/TShock.cs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 054e31df..2be5cfe7 100644 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -447,7 +447,7 @@ namespace TShockAPI // Initialize the AchievementManager, which is normally only done on clients. Game._achievements = new AchievementManager(); - IL.Terraria.Initializers.AchievementInitializer.Load += OnAchievementInitializerLoad; + OTAPI.Hooks.Initializers.AchievementInitializerLoad += OnAchievementInitializerLoad; // Actually call AchievementInitializer.Load, which is also normally only done on clients. AchievementInitializer.Load(); @@ -496,11 +496,9 @@ namespace TShockAPI } } - private static void OnAchievementInitializerLoad(ILContext il) + private static void OnAchievementInitializerLoad(object sender, OTAPI.Hooks.Initializers.AchievementInitializerLoadEventArgs args) { - // Modify AchievementInitializer.Load to remove the Main.netMode == 2 check (occupies the first 4 IL instructions) - for (var i = 0; i < 4; i++) - il.Body.Instructions.RemoveAt(0); + args.ShouldLoad = true; } protected void CrashReporter_HeapshotRequesting(object sender, EventArgs e) @@ -524,7 +522,7 @@ namespace TShockAPI } SaveManager.Instance.Dispose(); - IL.Terraria.Initializers.AchievementInitializer.Load -= OnAchievementInitializerLoad; + OTAPI.Hooks.Initializers.AchievementInitializerLoad -= OnAchievementInitializerLoad; ModuleManager.Dispose();