Beispiel #1
0
        // Message was received
        private async Task OnMessageReceived(SocketMessage messageParam)
        {
            if (messageParam.Author.Username == _client.CurrentUser.Username &&
                messageParam.Author.Discriminator == _client.CurrentUser.Discriminator)
            {
                return;
            }

            var message = messageParam as SocketUserMessage;

            if (message == null)
            {
                _logger.LogDebug("message was null");
                return;
            }

            var channel = message.Channel as SocketGuildChannel;
            var prefix  = String.Empty;

            if (channel != null) // Not a DM
            {
                prefix = await _servers.GetGuildPrefix(channel.Guild.Id);

                if (prefix == null)
                {
                    prefix = _settings.DefaultPrefix;
                }
                var server = await _servers.GetServer(channel.Guild);

                await ServerHelper.CheckForServerInvites(message, server);

                if (server != null && server.ProfanityFilterMode != ProfanityFilterMode.FilterOff)
                {
                    await ProfanityHelper.HandleProfanity(message, server, _apiService);
                }
            }

            var context  = new SocketCommandContext(_client, message);
            int position = 0;

            if (message.HasStringPrefix(prefix, ref position) ||
                message.HasMentionPrefix(_client.CurrentUser, ref position))
            {
                if (message.Content.StartsWith("!d "))
                {
                    // Ignore Disboard bumps
                    return;
                }

                _logger.LogInformation("Command received: {command}", message.Content);

                if (message.Author.IsBot)
                {
                    _logger.LogDebug("Command ({command}) was sent by another bot, ignoring", message.Content);
                    return;
                }

                await _commands.ExecuteAsync(context, position, _serviceProvider);
            }
        }
Beispiel #2
0
        // Message was edited
        private async Task OnMessageUpated(Cacheable <IMessage, ulong> before, SocketMessage after, ISocketMessageChannel channelArg)
        {
            var message = after as SocketUserMessage;

            if (message == null ||
                after.Author.Username == _client.CurrentUser.Username &&
                after.Author.Discriminator == _client.CurrentUser.Discriminator)
            {
                return;
            }

            var channel = channelArg as SocketGuildChannel;

            if (channel != null) // Not a DM
            {
                var server = await _servers.GetServer(channel.Guild);

                await ServerHelper.CheckForServerInvites(after as SocketUserMessage, server);

                if (server != null && server.ProfanityFilterMode != ProfanityFilterMode.FilterOff)
                {
                    await ProfanityHelper.HandleProfanity(message, server, _apiService);
                }
            }
        }