Задать вопрос
@Curseddd

Почему бот не реагирует на команды?

Я только начал учить 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);
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
Syjalo
@Syjalo
Представьте себе бота
Ваш код — это микс из разных версий. Есть части для v14, v13 и v12. Рекомендую следовать официальному руководству.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы