Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

discord.js does not respond to commands

I have done discord.js bot recently, but it does not respond to commands, like !greeting.
Here is a code of index.js

const { Client, GatewayIntentBits } = require('discord.js');
const robot = new Client
({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages ] });
const comms = require("./comms.js"); 
const fs = require('fs'); 
let config = require('./config.json'); 
let prefix = config.prefix;
let token = config.token; 

robot.on("ready", function() {
  console.log(robot.user.username + " пробудився, і готовий ділитися мудрістю...");
});


robot.on('message', (msg) => { 
  if (msg.author.username != robot.user.username && msg.author.discriminator != robot.user.discriminator) {
    var comm = msg.content.trim() + " ";
    var comm_name = comm.slice(0, comm.indexOf(" "));
    var messArr = comm.split(" ");
    for (comm_count in comms.comms) {
      var comm2 = prefix + comms.comms[comm_count].name;
      if (comm2 == comm_name) {
        comms.comms[comm_count].out(robot, msg, messArr);
      }
    }
  }
});

robot.login(token);

And here is comms.js

const Discord = require('discord.js'); 
let config = require('./config.json');
let prefix = config.prefix;

function test(robot, mess, args) {
  mess.channel.send('Test!')
}
function greeting(robot, mess, args) {
  mess.reply("Вітаю тебе! Почуй мою мудрість, і ставатимеш як я...")
}

var comms_list = [
  {
  name: "test",
  out: test,
  about: "Тестова команда"
  }];

    comms_list.push({
    name: "greeting",
    out: greeting,
    about: "Команда для вітання"
  });

module.exports.comms = comms_list;

What I should to do??? I with my friend sit on it for three days.
Looking forward to hearing from you!

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

You forgot to add the MessageContent intent as well in your client. This flag is required if you want to read the contents of a message as well. Also you are using a deprecated event, you should use messageCreate instead:

robot.on('messageCreate', (msg) => { 

And while you’re at it, you are trying to read the author / user object that’s within the message collection. In order to read this, you also have to enable two other intents:

GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildPresences

So, the final client initialization should look like this:

const robot = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.GuildMembers,
        GatewayIntentBits.GuildPresences
    ]
});

Also make sure to enable the intents on the Discord Developer Console as well otherwise you won’t be able to receive the events.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading