Updating HarmonyHub to v0.3.0.
Adding untested Harmony command action.
     3 using System.Collections.Generic;
 
     4 using System.ComponentModel;
 
     6 using System.Reflection;
 
     7 using System.Runtime.Serialization;
 
    11 namespace SharpLib.Ear
 
    14     /// Event Action Router (Ear) is a generic and extensible framework allowing users to execute actions in response to events. 
 
    15     /// Users can implement their own events and actions.
 
    18     [KnownType("DerivedTypes")]
 
    22         /// Our events instances.
 
    25         public List<Event> Events;
 
    36         /// Executes after internalization took place.
 
    42                 Events = new List<Event>();
 
    48         /// Trigger the given event.
 
    50         /// <param name="aEventType"></param>
 
    51         public void TriggerEvent<T>() where T: class
 
    53             //Only trigger enabled events matching the desired type
 
    54             foreach (Event e in Events.Where(e => e.GetType() == typeof(T) && e.Enabled))
 
    62         /// Remove the specified action from the event it belongs too.
 
    64         /// <param name="aAction"></param>
 
    65         public void RemoveAction(Action aAction)
 
    67             foreach (Event e in Events)
 
    69                 if (e.Actions.Remove(aAction))
 
    71                     //We removed our action, we are done here.
 
    78         /// Allow extending our data contract.
 
    79         /// See KnownType above.
 
    81         /// <returns></returns>
 
    82         private static IEnumerable<Type> DerivedTypes()
 
    84             return SharpLib.Utils.Reflection.GetDerivedTypes<Manager>();