Exemple #1
0
        /// <summary>
        /// Function that uses <paramref name="Client"/> to help aid in sending messages to a channel.
        /// We use
        /// </summary>
        /// <param name="Client"></param>
        public async void DetermineDelivery(DiscordSocketClient Client)
        {
            Console.WriteLine(ConsoleWriteOverride.AddTimeStamp("### Delivery Check Successfully Started. ###"));
            var serverInformation = MoversShakersJSONController.ReadRegisteredDiscordGuilds();

            foreach (var guild in serverInformation.ListOfRegisteredDiscordGuilds)
            {
                var currentGuildInformation = MoversShakersJSONController.ReadMoversShakersConfig(guild);

                foreach (var format in currentGuildInformation.ListOfFormats)
                {
                    Enum.TryParse(format, out MTGFormatsEnum parsedEnumValue);
                    UpdateScrapeTime(parsedEnumValue);
                    var lastScrapeTime           = GetCurrentScrapeTime(parsedEnumValue);
                    var currentLastDeliveredTime = GetLastDeliveredTime(parsedEnumValue, guild);
                    if (lastScrapeTime != currentLastDeliveredTime)
                    {
                        Console.WriteLine(ConsoleWriteOverride.AddTimeStamp($"{lastScrapeTime.ToString("hh:mm:ss")} not equal to {currentLastDeliveredTime.ToString("hh:mm:ss")}. Delivering {format.ToString()} to {guild}"));
                        currentGuildInformation = UpdateLastDeliveredTime(currentGuildInformation, parsedEnumValue, lastScrapeTime);
                        MoversShakersJSONController.UpdateServerInfo(currentGuildInformation);
                        await DeliverMoversOutputAsync(Client, format, guild);
                    }
                }
            }
            Console.WriteLine(ConsoleWriteOverride.AddTimeStamp("### Delivery Check Successfully Completed. ###"));
        }
Exemple #2
0
        private async Task Client_MessageRecieved(SocketMessage messageParam)
        {
            if (!(messageParam is SocketUserMessage message))
            {
                return;
            }
            var context = new SocketCommandContext(Client, message);
            var getCard = new MTGCardOutput();

            if (context.Message == null || context.Message.Content == "")
            {
                return;
            }
            if (context.User.IsBot)
            {
                return;
            }
            if (context.User.Id == 129804455964049408 && context.Guild.Id == 596104949503361050)
            {
                await ReactWithEmoteAsync(context.Message, "<:WeebsOut:627783662708064256>");
            }
            if (message != null && (message.Content.Contains("[") && message.Content.Contains("]")))
            {
                try
                {
                    Regex           rx      = new Regex(@"\[\[(.*?)\]\]", RegexOptions.Compiled | RegexOptions.IgnoreCase);
                    MatchCollection matches = rx.Matches(message.Content);
                    foreach (var item in matches)
                    {
                        var dataOutput = new UserMessageController(item.ToString());
                        await context.Channel.SendMessageAsync("", false, dataOutput.MessageOutput.Build());
                    }
                }
                catch (Exception msg)
                {
                    Console.WriteLine(ConsoleWriteOverride.AddTimeStamp(msg.Message));
                    await context.Channel.SendMessageAsync("", false, getCard.DetermineFailure(3).Build());
                }
            }

            var argPos = 0;

            if (!(message.HasStringPrefix("mtg!", ref argPos) || message.HasMentionPrefix(Client.CurrentUser, ref argPos)))
            {
                return;
            }

            var result = await Commands.ExecuteAsync(context, argPos, null);

            if (!result.IsSuccess)
            {
                Console.WriteLine(ConsoleWriteOverride.AddTimeStamp($"Something went wrong with executing command. Text: {context.Message.Content} | Error: {result.ErrorReason}"));
            }
        }
Exemple #3
0
        private async Task MtgMainAsync()
        {
            Console.WriteLine(ConsoleWriteOverride.AddTimeStamp("Loading Filters."));
            LegalityDictionary.LoadLegalityDict();

            //var aTimer = new Timer(1800000); //thirty minutes in milliseconds
            //aTimer.BeginInit();
            //aTimer.Elapsed += OnTimedEvent;
            //aTimer.EndInit();
            //aTimer.Start();
            var logRepository = LogManager.GetRepository(typeof(Program).Assembly);

            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
            await MainAsync(Token);

            await Commands.AddModulesAsync(typeof(Program).Assembly, null);

            Client.MessageReceived += Client_MessageRecieved;
            Client.Ready           += Client_Ready;

            //Thread.Sleep(10000); //10 seconds, sleeps a different thread from the bot so that it can finish loading before we begin.
            //new MTGMoversShakersOutput().DetermineDelivery(Client);
            await Task.Delay(-1);
        }