Discord.js: Ошибка типа: Не удается прочитать свойство «setPresence» null

#node.js #discord #discord.js #bots

Вопрос:

Это мой дискордбот, который я пытаюсь создать, но он продолжает ошибаться в client.user.setPresence({ activities: [{ name: 'Test' }], status: 'online' });

 const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => res.send('Hello World!'));

app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`));

// ================= START BOT CODE ===================
const Discord = require('discord.js');
const client = new Discord.Client();
const dcToken = process.env['DcT3enE4JJf']
  ;

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

client.on('message', msg => {
  if (msg.content === '/ping') {
    msg.reply('Pong!');
  }

  if (msg.channel.id === '833702368637616191') {
      if (!msg.attachments.size) {
        msg.author.send(`Your message ("${msg}") was deleted, Please only send images in the #images channel`);
        msg.guild.channels.cache.get('883581919835615232').send(`A message "**${msg}**" by <@${msg.author.id}> was deleted from <#${msg.channel.id}>`);

        msg.delete()
        console.log('A message was deleted from #images')
      }
  }

});

client.login(dcToken);

client.user.setPresence({ activities: [{ name: 'Test' }], status: 'online' });
 

ошибки в выводе

 TypeError: Cannot read property 'setPresence' of null
    at /home/runner/DiscordBot1/index.js:38:13
    at Script.runInContext (vm.js:130:18)
    at Object.<anonymous> (/run_dir/interp.js:209:20)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
    at internal/main/run_main_module.js:17:47
 

Ответ №1:

Вы можете сделать это только после того, как ваш бот будет готов.

 client.on('ready', () => {
   console.log(`Logged in as ${client.user.tag}!`);
   client.user.setPresence({ activities: [{ name: 'Test' }], status: 'online' });
});