🤖 6. Az Első Bot Kód
Most készítsd el a bot.js fájlt. Ez lesz a bot szíve!
const { Client, GatewayIntentBits, EmbedBuilder } = require('discord.js');
require('dotenv').config();
// Bot kliens létrehozása intents-tel
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent
]
});
// Bejelentkezés
client.on('ready', () => {
console.log(`✅ Bot bejelentkezve: ${client.user.tag}`);
// Bot státusza beállítása
client.user.setActivity('Discord Botok', { type: 'PLAYING' });
});
// Üzenet küldésének kezelése
client.on('messageCreate', async (message) => {
// Ignorálj bot üzeneteket
if (message.author.bot) return;
// !ping parancs
if (message.content === '!ping') {
await message.reply(`🏓 Pong! Latency: ${client.ws.ping}ms`);
}
// !hello parancs
if (message.content === '!hello') {
await message.reply(`👋 Szia ${message.author.username}!`);
}
// !help parancs
if (message.content === '!help') {
const embed = new EmbedBuilder()
.setColor(0x00d4ff)
.setTitle('📚 Bot Parancsok')
.setDescription('Az összes elérhető parancs:')
.addFields(
{ name: '!ping', value: 'Megmutatja a bot latencyét' },
{ name: '!hello', value: 'A bot üdvözli' },
{ name: '!help', value: 'Ez a parancs (mutatja az összes parancsot)' }
);
await message.reply({ embeds: [embed] });
}
});
// Új tag csatlakozása
client.on('guildMemberAdd', (member) => {
console.log(`✅ ${member.user.tag} csatlakozott a szerverhez!`);
// Üdvözlő üzenet keresése és küldése
const channel = member.guild.channels.cache.find(ch => ch.name === 'general');
if (channel) {
channel.send(`🎉 Üdvözlünk ${member}!`);
}
});
// Tag elhagyása
client.on('guildMemberRemove', (member) => {
console.log(`❌ ${member.user.tag} elhagyta a szervert!`);
});
// Hiba kezelése
client.on('error', error => {
console.error('Bot hiba:', error);
});
// Token beolvasása és belépés
const token = process.env.DISCORD_TOKEN;
if (token) {
client.login(token);
} else {
console.error('❌ HIBA: DISCORD_TOKEN nem található a .env fájlban!');
}