public void RegisterAbilityChain(AbilityChain abilityChain) { if (Main.Product != Product.Premium) { return; } if (HotkeysManager.Hotkeys.Any(o => o.Name == "Paws_" + abilityChain.Name)) { return; } AbilityChains.Add(abilityChain); var hotKey = HotkeysManager.Hotkeys.FirstOrDefault(o => o.Name == abilityChain.Name); if (hotKey != null) { HotkeysManager.Unregister(hotKey); } var registeredHotKey = HotkeysManager.Register("Paws_" + abilityChain.Name, abilityChain.HotKey, abilityChain.ModiferKey, KeyIsPressed); Log.AbilityChain(string.Format("Ability chain successfully registered ({0}: {1} + {2}).", registeredHotKey.Name, registeredHotKey.ModifierKeys, registeredHotKey.Key)); }
/// <summary> /// The internal method used to handle hotkeys that are pressed. This will subsequently call the Trigger method /// provided the various checks and balances pass. /// </summary> private void KeyIsPressed(Hotkey hotKey) { // Ability Chain Check... placing a "Paws_" prefix ensures that no other registered hotkeys are messed with in the system. var abilityChain = AbilityChains.SingleOrDefault(o => "Paws_" + o.Name == hotKey.Name); if (abilityChain == null) { return; } if (StyxWoW.Me.Specialization == abilityChain.Specialization) { // We have a triggered Ability Chain Trigger(abilityChain); } else { Log.AbilityChain( string.Format( "Hotkey detected, but your specialization must be {0} to trigger the {1} ability chain.", abilityChain.Specialization.ToString().Replace("Druid", string.Empty), hotKey.Name)); } }