我有一个commands文件夹,其中包含含有斜杠命令的文件,我必须将客户端示例从index.js导入到另一个文件中,但在执行此操作时:module.exports = client;它会执行整个index.js脚本!我不知道我做错了什么,我尝试在index.js之外的另一个文件中创建示例,然后在index中导入示例,但它不起作用。有人能帮帮我吗?
module.exports = client;
jjjwad0x1#
至少从我的理解来看,(假设您已经注册了命令并设置了客户端对象)您可以将client作为一个参数传递到command.execute()中(在代码片段的第10行):在index.js中:
client.on(Events.InteractionCreate, async interaction => { if (!interaction.isChatInputCommand()) return; const command = interaction.client.commands.get(interaction.commandName); if (!command) { console.error(`No command matching ${interaction.commandName} was found.`); return; } try { console.log(`running command "${interaction.commandName}"!`); await command.execute(interaction,client); } catch (error) { console.error(error); await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true }); } });
然后在命令的模块中使用该参数:在命令/您的命令.js中:
module.exports = { //[...] other slash command setup bits and bobs async execute(interaction,client) { //your code here } }
[discordjs指南片段的修改版本]你可以问是否有任何需要详细说明或澄清的地方;希望这有帮助&干杯!
1条答案
按热度按时间jjjwad0x1#
至少从我的理解来看,(假设您已经注册了命令并设置了客户端对象)您可以将client作为一个参数传递到command.execute()中(在代码片段的第10行):
在index.js中:
然后在命令的模块中使用该参数:
在命令/您的命令.js中:
[discordjs指南片段的修改版本]
你可以问是否有任何需要详细说明或澄清的地方;希望这有帮助&干杯!