Пользователь не определен при изменении присутствия бота discord

#node.js #discord.js

Вопрос:

Я пытаюсь изменить присутствие моего бота, используя следующий код:

 const Discord = require('discord.js');
const client = new Discord.Client();

module.exports = {
    name: 'setstatus', //command name
    description: "Sets the bot's presence", //command description
    args: true, //needs arguments? delete line if no
    usage: `<online|invisible|dnd|idle>`, //usage instructions w/o command name and prefix
    cooldown: 5, //cooldown in seconds, defaults to 3
    ownerOnly: true, //need to be the owner? delete line if no
    aliases: [],
    execute(message, args, prefix, user) { //inside here command stuff
        if (args[0] === 'online') {
            client.user.setPresence({ status: 'online' })
            message.channel.send(`Status set to ${args[0]}`)
        } else if (args[0] === 'idle') {
            client.user.setPresence({ status: 'idle' })
            message.channel.send(`Status set to ${args[0]}`)
        } else if (args[0] === 'invisible') {
            client.user.setPresence({ status: 'invisible' })
            message.channel.send(`Status set to ${args[0]}`)
        } else if (args[0] === 'dnd') {
            client.user.setPresence({ status: 'dnd' })
            message.channel.send(`Status set to ${args[0]}`)
        } else {
            message.channel.send(`Invalid argument: ${args[0]}. Valid arguments are:nonline, idle, invisible, dnd`)
        }
    },
};
 

Но при выполнении этого я получаю ошибку «пользователь не определен». Есть идеи?

Комментарии:

1. Я думаю, вам следует использовать клиент из вашего основного файла. Используйте <message>.client , чтобы получить его.

Ответ №1:

Вам не нужно повторять первоначальный клиент при каждой команде, так как он уже прикреплен к вашему сообщению, и вы можете легко получить его с помощью message.client.user

Так что эта строка const client = new Discord.Client(); бесполезна, так как ваш бот является начальным, но он даже еще не вошел, чтобы получить подробную информацию

Комментарии:

1. Хорошо, но теперь статус бота не изменится, но команда будет выполнена успешно. Правка: неважно, для обновления потребовалась всего минута.