예제 #1
0
        private async Task MessageReceievedAsync(SocketMessage message)
        {
            if (message.Author.Id == _client.CurrentUser.Id)
            {
                return;
            }


            await DiscordChannel.CreateOrGetAsync(message.Channel);

            await DiscordMessage.CreateAsync(message);

            try
            {
                if (message.Content.StartsWith(triggerCharacter))
                {
                    var cmd = message.Content.Substring(1, message.Content.Length - 1).Split(' ').First();
                    switch (cmd)
                    {
                    case "ping":
                        await message.Channel.SendMessageAsync("pong!");

                        break;

                    case "test":
                        break;

                    case "csv":
                        await CmdCsvAsync(message);

                        break;

                    case "stats":
                        await CmdStatsAsync(message);

                        break;

                    case "quote":
                        await Quotes.Execute(message);

                        break;

                    case "reload":
                        if (message.Author.IsAdmin())
                        {
                            var _db = new ApplicationDataContext();
                            _discordUsers = await _db.DiscordUser.ToListAsync();

                            _discordVoiceChannels = await _db.DiscordVoiceChannel.ToListAsync();
                        }
                        else
                        {
                            await message.Channel.SendMessageAsync("You do not have permission to do that");
                        }
                        break;

                    default:
                        await message.Channel.SendMessageAsync("Unrecognized Commaned");

                        break;
                    }
                    await Log.LogAsync(message.Author, $"Recieved: {message.Content}");
                }
            } catch (Exception ex)
            {
                await message.Channel.SendMessageAsync("An Error Occured");

                await Log.LogAsync(ex.Message + "\n" + ex.StackTrace);
            }
        }