Пример #1
0
        public async Task InitializeBridge(bool initIrc = true, bool initDiscord = true)
        {
            config = ConfigHelper.LoadConfig();
            if (initIrc)
            {
                IrcLink = new IrcService(Logger, config.IRCServer);
            }
            if (initDiscord)
            {
                DiscordLink = new DiscordService(Logger, config.DiscordServer);
            }
            glue = new BridgeService(IrcLink, DiscordLink, config);

            if (initDiscord)
            {
                DiscordLink.OnChannelMessage += glue.DiscordChannelMessage;
                DiscordLink.OnGuildConnected += glue.DiscordGuildConnected;
                DiscordLink.OnUserUpdated    += glue.DiscordUserUpdated;
                DiscordLink.OnUserJoin       += glue.DiscordUserJoined;
                DiscordLink.OnUserLeave      += glue.DiscordUserLeave;
            }

            if (initIrc)
            {
                IrcLink.OnChannelMessage   += glue.IrcChannelMessage;
                IrcLink.OnPrivateMessage   += glue.IrcPrivateMessage;
                IrcLink.OnServerDisconnect += glue.IrcServerDisconnect;
                IrcLink.OnServerConnect    += glue.IrcServerConnect;
            }

            // Start the Async Processing
            if (initDiscord)
            {
                DiscordLink.MainAsync().GetAwaiter();
            }
            if (initIrc)
            {
                IrcLink.StartBridge(); // Sort of Async.. Fix this later
            }
        }