TypeError: client.commands.get(…).execute不是一个函数(discord.js 1



我不断收到这个错误消息,我不知道是什么问题。当我调用命令$eval input时出现此错误。

我尝试了几种不同的代码,不是说它可能有帮助,但我一直收到相同的错误,我检查了ID是正确的。

误差:TypeError: client.commands.get(…).execute is not a function

  • Eval文件
const { Client, Message, MessageEmbed } = require("discord.js");
const Discord = require("discord.js");
module.exports = {
name: 'eval',
run: async (client, message, args) => {
if (message.author.id !== 'ID HERE') return;
const embed = new MessageEmbed()
.setTitle('Evaluating...')
const msg = await message.channel.send(embed);
try {
const data = eval(args.join(' ').replace(/```/g, ''));
const embed = new MessageEmbed()
.setTitle('Output: ')
.setDescription(await data)
await msg.edit(embed)
await msg.react('✅')
await msg.react('❌')
const filter = (reaction, user) => (reaction.emoji.name === '❌' || reaction.emoji.name === '✅') && (user.id === message.author.id);
msg.awaitReactions(filter, { max: 1 })
.then((collected) => {
collected.map((emoji) => {
switch (emoji._emoji.name) {
case '✅':
msg.reactions.removeAll();
break;
case '❌':
msg.delete()
break;
}
})
})
} catch (e) {
const embed = new MessageEmbed()
.setTitle('An Error has occured')
return await msg.edit(embed);
}
}
}
  • 索引文件。
const Discord = require("discord.js");
const translate = require("@k3rn31p4nic/google-translate-api");
const client = new Discord.Client();
const fs = require("fs");
const { MessageEmbed } = require("discord.js");
const config = require("./config.json");
const BOT_TOKEN = config.BOT_TOKEN;
const guildInvites = new Map();
const nodemon = require('nodemon')
const PREFIX = config.PREFIX
client.commands = new Discord.Collection();
const commandFiles = fs
.readdirSync("./commands/")
.filter((file) => file.endsWith(".js"));
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
client.commands.set(command.name, command);
}
// Discord Presence
client.on("ready", () => {
console.log("Ready!");
client.user.setActivity("$help", { type: "PLAYING" }).catch(console.error);
});
client.on("message", (message) => {
if (!message.content.startsWith(PREFIX) || message.author.bot) return;
const args = message.content.slice(PREFIX.length).trim().split(/ +/);
const command = args.shift().toLowerCase();
if (!client.commands.has(command)) return;
try {
client.commands.get(command).execute(message, args);
} catch (error) {
console.error(error);
}
});

// invite 
client.on('message', message => {
if(message.content === "$invites"){
var user = message.author;
message.guild.fetchInvites()
.then
(invites =>
{
const userInvites = invites.array().filter(o => o.inviter.id === user.id);
var userInviteCount = 0;
for(var i=0; i < userInvites.length; i++)
{
var invite = userInvites[i];
userInviteCount += invite['uses'];
}
message.reply(`You have ${userInviteCount} invites and currently have ${userInvites.length} active invite links.`);
}
)
}
});


client.login(BOT_TOKEN);

感谢你的帮助,提前感谢。

您正在使用

调用命令
client.commands.get(command).execute(message, args);

然而,您的eval-file没有导出成员/函数称为execute。要修复它,可以将命令调用更改为client.commands.get(command).run(message, args);,或者将eval文件中的运行方法重命名为execute。此外,在调用导出的函数时,应该将正确的参数传递给它。所以你最终会得到

module.exports = {
name: 'eval',
execute: async (message, args) =>
...
}

两种方法都可以。只要记住,每个命令必须有一个同名的导出函数,该函数总是可以由同名的调用。在你的索引文件

最新更新