我目前正在使用命令处理程序在Discord机器人上工作,因此所有命令都位于单独的文件中。我无法弄清楚如何在命令文件中使用像Discord
和client
这样的索引中的变量。
这是命令的样子:
module.exports = {
commands: ['say', 'say'],
expectedArgs: 'Announcement...',
minArgs: 1,
permissions: ['ADMINISTRATOR'],
requiredRoles: [],
callback: async (message, args, text) => {
const { member } = message
const tag = `<@${member.id}>`
const announce = new Discord.MessageEmbed()
.setColor('RANDOM')
.setTitle(`ANNOUNCMENT!`)
.setFooter(config.footer)
.setDescription(`${tag} __Announces:__\n **${args}**`)
.setThumbnail(config.logo)
message.delete()
message.channel.send(announce)
},
}
答案 0 :(得分:0)
我不确定这是否是最好的方法,但是我通过导出主文件Client
中的module.exports
,您的情况下的索引并在其中导入索引来解决了此问题。命令文件。
// Your index file.
const Discord = require("discord.js");
const client = new Discord.Client();
client.login(process.env.DISCORD_AUTH_TOKEN);
module.exports.client = client;
// Command file.
const Discord = require("discord.js");
const Index = require("path to index");
module.exports = {
commands: ['say', 'say'],
expectedArgs: 'Announcement...',
minArgs: 1,
permissions: ['ADMINISTRATOR'],
requiredRoles: [],
callback: async (message, args, text) => {
console.log(`Running as ${Index.client.user.tag}!`);
},
}
另一种方法是在运行client
函数时,将message
变量与args
,text
和callback
一起传递。