public TextCommand Get(string id) { TextCommand result = null; ReaderWriterLockHelper.Read(commands => { result = commands.Find(command => command.ID == id); }); return(result); }
public bool Add(string[] names, MethodInfo methodInfo, object instance = default, object tag = default, int permissionLevel = default) { string id = MethodInfoToID(methodInfo); TextCommand command = new TextCommand(id, names, tag, permissionLevel, methodInfo, instance); bool cancel = false; OnAdding?.Invoke(command, ref cancel); if (cancel) { return(false); } ReaderWriterLockHelper.Write(commands => { CheckMethodOverload(commands, id); commands.Add(command); OnAdded?.Invoke(command); }); return(true); }