private async void InitializeSocketClient(IEventsHandler eventsHandler) { var client = CreateClient(); AddEventHandlers(client, eventsHandler); await Start(client); client.Ready += () => Client_Ready(client); }
public void Add(IEventsHandler eventsHandler) { _eventsHandlers.Add(eventsHandler); if (_chpHandler != null) { eventsHandler.ChpHandler = _chpHandler; eventsHandler.UserPrefsHandler = _userPrefsHandler; } }
/// <summary> /// Subscribes all IEventHandler derivations located in the given assembly. /// </summary> /// <param name="assembly">The assembly to search for IEventHandler derivations.</param> /// <param name="eventsHandlerFactory">A factory capable of producing a concrete implementation of each IEventHandler.</param> public static void Subscribe(IBus bus, Assembly assembly, Func <Type, IEventsHandler> eventsHandlerFactory) { IEnumerable <Type> handlers = assembly.GetExportedTypes().Where(x => x.GetInterfaces().Any(y => y.IsGenericType && y.GetGenericTypeDefinition() == typeof(IEventHandler <>))); foreach (Type handlerType in handlers) { IEventsHandler eventsHandler = eventsHandlerFactory(handlerType); if (eventsHandler == null) { throw new InvalidOperationException(string.Format("No handler for {0} found in the eventsHandlerFactory", handlerType.FullName)); } else { bus.Subscribe(eventsHandler); } } }
private void AddEventHandlers(DiscordSocketClient client, IEventsHandler eventsHandler) { client.GuildAvailable += guild => eventsHandler.TriggerGuildAvailable(client, guild); client.MessageReceived += eventsHandler.TriggerMessage; client.Log += message => { ConsoleHelper.Log(message); return(Task.CompletedTask); }; }
public SocketClientHandler(IEventsHandler eventsHandler) { InitializeSocketClient(eventsHandler); }
public void Remove(IEventsHandler eventsHandler) { _eventsHandlers.Remove(eventsHandler); }