Я только начал учить discord.js и не понимаю почему бот не реагирует на команды хотя вроде все верно и интенты подключены (вроде верно). Вот код (Написано на сайте replit)
const Discord = require("discord.js")
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages] });
const config = require("./config.json")
client.on("ready", () => {
console.log("Loaded up!")
});
client.on("message", message => {
if (message.author.bot) return;
if (message.content.indexOf(config.prefix) !== 0) return;
const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase()
if (command === "help") {
const helpEmbed = new Discord.MessageEmbed()
.setTitle(`Команды ${bot.user.username}`)
.setDescription(`**Префикс:** ${config.prefix}`)
.addField(`\`ping\``, `Проверяет пинг бота`)
.addField(`\`kick\``, `Использование: **${config.prefix}kick [@User]**\n**${config.prefix}kick [@User] [@User]**`)
.addField(`\`ban\``, `Использование: **${config.prefix}ban [@User]**\n**${config.prefix}ban [@User][Reason]**`)
.addField(`\`add\``, `Добавляет роль пользователю \nИспользование: **${config.prefix}add [@User] [Role]**`)
.addField(`\`remove\``, `Убирает роль у пользователя \nИспользование: **${config.prefix}remove [@User] [Role]**`)
.addField(`\`clear\``, `Удаляет сообщения от 2 до 100 \nИспользование: **${config.prefix}clear [число]**`)
.addField(`\`rps\``, `Игра камень ножницы бумага`)
.addField(`\`say\``, `Дает боту сказать что-то`)
message.channel.send(helpEmbed)
}
if (command === "ping") {
message.channel.send(`Понг **(${Date.now() - message.createdTimestamp}ms)**`)
}
if (command === "kick") {
if (!message.member.hasPermission('KICK_MEMBERS'))
return message.channel.send("Нужны права `Kick members`").then(msg => {
msg.delete({ timeout: 30000 })
})
const member = message.mentions.members.first();
if (!member)
return message.channel.send("Вы не указали пользователя").then(msg => {
msg.delete({ timeout: 30000 })
})
if (!member.kickable)
return message.channel.send("Этого пользователя невозможно выгнать").then(msg => {
msg.delete({ timeout: 30000 })
})
const reason = args.slice(1).join(" ")
if (member) {
if (!reason) return member.kick().then(member => {
message.channel.send(`${member.user.tag} был по причине: не указано`);
})
if (reason) return member.kick().then(member => {
message.channel.send(`${member.user.tag} был выгнан за ${reason}`);
})
}
}
if (command === "ban") {
if (!message.member.hasPermission('BAN_MEMBERS'))
return message.channel.send("Нужны права `Ban members`").then(msg => {
msg.delete({ timeout: 30000 })
})
const member = message.mentions.members.first();
if (!member)
return message.channel.send("Вы не указали пользователя").then(msg => {
msg.delete({ timeout: 30000 })
})
if (!member.bannable)
return message.channel.send("Этого пользователя невозможно забанить").then(msg => {
msg.delete({ timeout: 30000 })
})
const reason = args.slice(1).join(" ")
if (member) {
if (!reason) return member.ban().then(member => {
message.channel.send(`${member.user.tag} был забанен по причине: не указано`);
})
if (reason) return member.ban(reason).then(member => {
message.channel.send(`${member.user.tag} Был забанен за ${reason}`);
})
}
}
if (command === "add") {
if (!message.member.hasPermission('MANAGE_ROLES'))
return message.channel.send("Нужны права `Manage roles`").then(msg => {
msg.delete({ timeout: 30000 })
})
const member = message.mentions.members.first()
if (!member)
return message.channel.send("Вы не указали пользователя").then(msg => {
msg.delete({ timeout: 30000 })
})
const add = args.slice(1).join(" ")
if (!add)
return message.channel.send("Вы не указали роль").then(msg => {
msg.delete({ timeout: 30000 })
})
const roleAdd = message.guild.roles.cache.find(role => role.name === add)
if (!roleAdd)
return message.channel.send("Роли не существует").then(msg => {
msg.delete({ timeout: 30000 })
})
if (member.roles.cache.get(roleAdd.id))
return message.channel.send(`У этого пользователя уже есть ${add} роль`).then(msg => {
msg.delete({ timeout: 30000 })
})
member.roles.add(roleAdd.id).then((member) => {
message.channel.send(`${add} добавлено ${member.displayName}`)
})
}
if (command === "remove") {
if (!message.member.hasPermission('MANAGE_ROLES'))
return message.channel.send("Нужны права `Manage roles`)").then(msg => {
msg.delete({ timeout: 30000 })
})
const member = message.mentions.members.first()
if (!member)
return message.channel.send("Вы не упомянули человека").then(msg => {
msg.delete({ timeout: 30000 })
})
const remove = args.slice(1).join(" ")
if (!remove)
return message.channel.send("Вы должны написать роль которую надо забрать").then(msg => {
msg.delete({ timeout: 30000 })
})
const roleRemove = message.guild.roles.cache.find(role => role.name === remove)
if (!roleRemove)
return message.channel.send("Этой роли не существует").then(msg => {
msg.delete({ timeout: 30000 })
})
if (!member.roles.cache.get(roleRemove.id))
return message.channel.send(`У этого участника нету ${remove} роли`).then(msg => {
msg.delete({ timeout: 30000 })
})
member.roles.remove(roleRemove.id).then((member) => {
message.channel.send(`${remove} забрано у ${member.displayName}`)
})
}
if (command === "say") {
const text = args.join(" ")
if(!text) return message.channel.send("Вы должны написать что то!").then(msg => {
msg.delete({ timeout: 30000 })
})
message.channel.send(text)
}
if (command === "clear") {
if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send("Нужны права `Manage messages`").then(msg => {
msg.delete({ timeout: 30000 })
})
const number = args.join(" ")
if(!number) return message.channel.send("Вы не указали число для удаления").then(msg => {
msg.delete({ timeout: 30000 })
})
message.channel.bulkDelete(number).catch(console.error)
}
if (command === "rps") {
const options = [
"rock :shell: ",
"paper :newspaper2:",
"scissors :scissors: "
]
const option = options[Math.floor(Math.random() * options.length)]
message.channel.send(`You got ${option}`)
}
});
client.login(process.env.TOKEN);