#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. Хорошо, но теперь статус бота не изменится, но команда будет выполнена успешно. Правка: неважно, для обновления потребовалась всего минута.