merhabalar elimdeki kod iyi çalışıyor fakat sadece discord sunucu kanallarında.
buda oluşturulan hesapları herkesin görmesini saglıyor .
bota özel mesaj gönderilerek çalışmasını istiyorum yardımcı olursanız sevinirim

const Discord = require('discord.js');
const sql = require('mssql');
const tls = require('tls');

// TLS ServerName uyarısını önlemek için aşağıdaki satırı ekleyin
tls.DEFAULT_SERVERNAME = 'example.com';

const client = new Discord.Client({
    intents: [
        'GUILDS',
        'GUILD_MESSAGES',
        'DIRECT_MESSAGES'
        // Diğer intents'ler buraya eklenebilir
    ]
});
const config = {
    token: 'bot tokeni yaz',
    prefix: '!',
    sql: {
        user: 'kadı',
        password: 'şifre',
        server: 'localhost',
        database: 'dbismi',
        options: {
            // Kendi imzalı sertifikaları kabul etmek için aşağıdaki satırı ekleyin
            trustServerCertificate: true
        }
    }
};

client.on('ready', () => {
    console.log(`Bot is ready as: ${client.user.tag}`);
});

client.on('messageCreate', async message => {
    if (message.author.bot) return;
    if (message.channel.type === 'dm') { // Özel mesajları kontrol et
        // Burada gelen özel mesajı işleyebilirsiniz
        return message.author.send("Özel mesaj aldım!");
    }
    
    if (!message.content.startsWith(config.prefix)) return;

    const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
    const command = args.shift().toLowerCase();

    if (command === 'createaccount') {
        const [strNexonID, strPassword, strEmail] = args;
        if (!strNexonID || !strPassword || !strEmail) {
            return message.reply('Lütfen tüm argümanları sağlayın: !createaccount <strNexonID> <strPassword> <strEmail>');
        }

        try {
            const pool = await sql.connect(config.sql);
            
            // Kullanıcı adının zaten var olup olmadığını kontrol edin
            const userCheck = await pool.request()
                .input('strNexonID', sql.NVarChar, strNexonID)
                .query(`SELECT * FROM [COMBATARMS].[dbo].[CBT_UserAuth] WHERE strNexonID = @strNexonID`);
            
            if (userCheck.recordset.length > 0) {
                return message.reply('Bu kullanıcı adı zaten alınmış. Lütfen başka bir kullanıcı adı deneyin.');
            }

            const result = await pool.request()
                .input('strNexonID', sql.NVarChar, strNexonID)
                .input('strLNexonID', sql.NVarChar, strNexonID.toLowerCase())
                .input('strPassword', sql.VarBinary, Buffer.from(strPassword, 'utf8'))
                .input('strEmail', sql.NVarChar, strEmail)
                .input('bIsMailActive', sql.Bit, 1)
                .input('BlockStartDate', sql.DateTime, null)
                .input('BlockEndDate', sql.DateTime, null)
                .input('RegDate', sql.DateTime, new Date())
                .input('UpdDate', sql.DateTime, null)
                .input('strLastMacAddress', sql.NVarChar, null)
                .query(`INSERT INTO [COMBATARMS].[dbo].[CBT_UserAuth] (
                    [strNexonID],
                    [strLNexonID],
                    [strPassword],
                    [strEmail],
                    [bIsMailActive],
                    [BlockStartDate],
                    [BlockEndDate],
                    [RegDate],
                    [UpdDate],
                    [strLastMacAddress]
                    )
                    VALUES
                    (
                    @strNexonID,
                    @strLNexonID,
                    HASHBYTES('SHA1', @strPassword),
                    @strEmail,
                    @bIsMailActive,
                    @BlockStartDate,
                    @BlockEndDate,
                    @RegDate,
                    @UpdDate,
                    @strLastMacAddress
                    )`);
            message.reply('Hesap başarıyla oluşturuldu!');
        } catch (err) {
            console.error(err);
            message.reply('Bir hata oluştu, lütfen daha sonra tekrar deneyin.');
        }
    }
    if (command === 'changepassword') {
    const [strNexonID, oldPassword, newPassword] = args;
    if (!strNexonID || !oldPassword || !newPassword) {
        return message.reply('Lütfen tüm argümanları sağlayın: !changepassword <strNexonID> <oldPassword> <newPassword>');
    }

    try {
        const pool = await sql.connect(config.sql);
        
        // Kullanıcı adının ve eski şifrenin doğru olup olmadığını kontrol edin
        const userCheck = await pool.request()
            .input('strNexonID', sql.NVarChar, strNexonID)
            .input('oldPassword', sql.VarBinary, Buffer.from(oldPassword, 'utf8'))
            .query(`SELECT * FROM [COMBATARMS].[dbo].[CBT_UserAuth] WHERE strNexonID = @strNexonID AND strPassword = HASHBYTES('SHA1', @oldPassword)`);
        
        if (userCheck.recordset.length === 0) {
            return message.reply('Kullanıcı adı veya eski şifre yanlış. Lütfen tekrar deneyin.');
        }

        // Yeni şifreyi güncelleyin
        const result = await pool.request()
            .input('strNexonID', sql.NVarChar, strNexonID)
            .input('newPassword', sql.VarBinary, Buffer.from(newPassword, 'utf8'))
            .query(`UPDATE [COMBATARMS].[dbo].[CBT_UserAuth] SET strPassword = HASHBYTES('SHA1', @newPassword) WHERE strNexonID = @strNexonID`);
        
        message.reply('Şifre başarıyla değiştirildi!');
    } catch (err) {
        console.error(err);
        message.reply('Bir hata oluştu, lütfen daha sonra tekrar deneyin.');
    }
}
});

client.login(config.token);