Exemplo n.º 1
0
        private async void InitializeSocketClient(IEventsHandler eventsHandler)
        {
            var client = CreateClient();

            AddEventHandlers(client, eventsHandler);
            await Start(client);

            client.Ready += () => Client_Ready(client);
        }
Exemplo n.º 2
0
 public void Add(IEventsHandler eventsHandler)
 {
     _eventsHandlers.Add(eventsHandler);
     if (_chpHandler != null)
     {
         eventsHandler.ChpHandler       = _chpHandler;
         eventsHandler.UserPrefsHandler = _userPrefsHandler;
     }
 }
Exemplo n.º 3
0
    /// <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);
            }
        }
    }
Exemplo n.º 4
0
 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); };
 }
Exemplo n.º 5
0
 public SocketClientHandler(IEventsHandler eventsHandler)
 {
     InitializeSocketClient(eventsHandler);
 }
Exemplo n.º 6
0
 public void Remove(IEventsHandler eventsHandler)
 {
     _eventsHandlers.Remove(eventsHandler);
 }