private async Task WelcomeAsync(SocketGuildUser user)
        {
            var guild = user.Guild;

            _loggingService.Log($"{user.GetFullnameOrDefault()} ({user.Id}) joined {guild} ({guild.Id}).",
                                LogSeverity.Verbose);

            var record = await _coreSettings.GetOrCreateGreetingsAsync(guild).ConfigureAwait(false);

            if (!record.IsJoinEnabled)
            {
                return;
            }
            var channel = guild.GetTextChannel(record.ChannelId);

            if (channel == null)
            {
                return;
            }
            string formattedMessage = record.WelcomeMessage
                                      .Replace("{mention}", user.Mention)
                                      .Replace("{username}", user.Username)
                                      .Replace("{discrim}", user.Discriminator)
                                      .Replace("{guild}", guild.Name)
                                      .Replace("{date}", DateTime.UtcNow.ToString(CultureInfo.InvariantCulture));
            var _ = channel.SendMessageAsync(formattedMessage);
        }