7945.js
Version:
Discord botlarını basit ve eforsuz yazmak için modül
159 lines (130 loc) • 4.7 kB
JavaScript
const { createBot } = require('../index.js');
const bot = createBot({
token: 'BOT_TOKENINIZ',
prefix: '!'
});
// JSON veritabanı (varsayılan)
// bot.database.use('json', { path: './data.json' });
// MySQL veritabanı
// bot.database.use('mysql', {
// host: 'localhost',
// user: 'root',
// password: 'password',
// database: '7945js'
// });
// MongoDB veritabanı
// bot.database.use('mongodb', {
// url: 'mongodb://localhost:27017',
// database: '7945js'
// });
// SQLite veritabanı
bot.database.use('sqlite', { path: './bot-data.sqlite' });
// Veritabanı komutları
bot.commands.add({
name: 'kaydet',
description: 'Veritabanına veri kaydeder',
usage: '!kaydet <anahtar> <değer>',
execute: async (message, args) => {
if (args.length < 2) {
return message.reply('❌ Kullanım: !kaydet <anahtar> <değer>');
}
const key = args[0];
const value = args.slice(1).join(' ');
await bot.database.set(key, value);
message.reply(`✅ **${key}** anahtarına **${value}** değeri kaydedildi!`);
}
});
bot.commands.add({
name: 'al',
description: 'Veritabanından veri alır',
usage: '!al <anahtar>',
execute: async (message, args) => {
if (!args.length) {
return message.reply('❌ Lütfen bir anahtar girin!');
}
const key = args[0];
const value = await bot.database.get(key, 'Değer bulunamadı');
message.reply(`📁 **${key}**: ${value}`);
}
});
bot.commands.add({
name: 'sil',
description: 'Veritabanından veri siler',
usage: '!sil <anahtar>',
execute: async (message, args) => {
if (!args.length) {
return message.reply('❌ Lütfen bir anahtar girin!');
}
const key = args[0];
const deleted = await bot.database.delete(key);
if (deleted) {
message.reply(`🗑️ **${key}** anahtarı silindi!`);
} else {
message.reply('❌ Anahtar bulunamadı!');
}
}
});
bot.commands.add({
name: 'profil',
description: 'Kullanıcı profilini kaydeder/gösterir',
execute: async (message, args) => {
const userId = message.author.id;
const key = `user_${userId}`;
if (args.length === 0) {
// Profili göster
const profile = await bot.database.get(key, {});
if (!profile.name) {
return message.reply('❌ Profiliniz bulunamadı! Profil oluşturmak için: `!profil <isim> <yaş> <şehir>`');
}
message.reply(`👤 **Profil Bilgileri:**\n**İsim:** ${profile.name}\n**Yaş:** ${profile.age}\n**Şehir:** ${profile.city}`);
} else {
// Profili kaydet
if (args.length < 3) {
return message.reply('❌ Kullanım: !profil <isim> <yaş> <şehir>');
}
const profile = {
name: args[0],
age: args[1],
city: args.slice(2).join(' '),
updatedAt: new Date().toISOString()
};
await bot.database.set(key, profile);
message.reply('✅ Profiliniz kaydedildi!');
}
}
});
bot.commands.add({
name: 'seviye',
description: 'Kullanıcı seviye sistemi',
execute: async (message) => {
const userId = message.author.id;
const key = `level_${userId}`;
// Seviyeyi artır
const newLevel = await bot.database.increment(key, 1);
message.reply(`🎉 **Tebrikler!**\nSeviye atladın: **${newLevel}**. seviye`);
}
});
bot.commands.add({
name: 'istatistik',
description: 'Bot istatistiklerini gösterir',
execute: async (message) => {
const stats = {
komutSayisi: bot.commands.all.length,
calismaSuresi: process.uptime(),
bellekKullanimi: process.memoryUsage().heapUsed / 1024 / 1024
};
await bot.database.set('bot_stats', stats);
message.reply(
`📊 **Bot İstatistikleri:**\n` +
`🛠️ Komut Sayısı: ${stats.komutSayisi}\n` +
`⏱️ Çalışma Süresi: ${Math.round(stats.calismaSuresi)}s\n` +
`💾 Bellek: ${stats.bellekKullanimi.toFixed(2)}MB\n` +
`✅ İstatistikler veritabanına kaydedildi!`
);
}
});
bot.on('ready', () => {
console.log('🗄️ Veritabanı botu çevrimiçi!');
});
bot.createWebPanel(3002);
bot.login();