private void OnPluginUnloaded(PointBlankPlugin plugin) { foreach (KeyValuePair <DetourAttribute, DetourWrapper> kvp in Detours.Where(a => a.Key.Method.DeclaringType.Assembly == plugin.GetType().Assembly&& !a.Value.Local)) { kvp.Value.Revert(); Detours.Remove(kvp.Key); } }
private void OnPluginUnloaded(PointBlankPlugin plugin) { PluginWrapper wrapper = PM.Plugins.First(a => a.PluginClass == plugin); foreach (KeyValuePair <DetourAttribute, DetourWrapper> kvp in Detours.Where(a => a.Key.Method.DeclaringType.Assembly == wrapper.PluginAssembly && !a.Value.Local)) { kvp.Value.Revert(); Detours.Remove(kvp.Key); } }
public override void Unload() { if (!Initialized) { return; } // Main code while (Detours.Count > 0) { DetourAttribute att = Detours.Keys.ElementAt(0); Detours[att].Revert(); Detours.Remove(att); } // Set the variables Initialized = false; }
public override void Unload() { if (!Initialized) { return; } // Unload the events PointBlankPluginEvents.OnPluginLoaded -= OnPluginLoaded; PointBlankPluginEvents.OnPluginUnloaded -= OnPluginUnloaded; // Main code while (Detours.Count > 0) { DetourAttribute att = Detours.Keys.ElementAt(0); Detours[att].Revert(); Detours.Remove(att); } // Set the variables Initialized = false; }