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);