【发布时间】:2021-04-16 19:57:37
【问题描述】:
我在命令中做出响应。我在尝试踢自己并工作时做出了响应,但现在我尝试在尝试踢机器人时做出响应并且它不起作用。
踢命令代码:
module.exports = {
name: 'kick',
aliases: ["k"],
description: "kick a member",
execute(message, Discord, client) {
if(message.member.permissions.has("KICK_MEMBERS")){
const member = message.mentions.members.first();
let mention = message.mentions.members.first();
if (message.mentions.members.size < 1) return message.reply('You must mention someone to kick them.').catch(console.error);
if (message.mentions.members.first().id === message.author.id) return message.reply("I can't let you do that, self-harm is bad:facepalm:");
if (message.mentions.members.id === client.member.id) return message.reply("You pleblord, how can you use a bot to kick itself?:joy:");
if (message.mentions.members.first().id === "521311050193436682") return message.reply("You can't kick my Developer:wink:");
if (reason.length < 1) reason = 'No reason supplied';
if (!message.guild.member(user).kickable) return message.reply('I cannot kick that member');
const embed = new Discord.MessageEmbed()
.setColor(0x0000FF)
.setTimestamp()
.addField('Action:', 'Kick')
.addField('User:', `${user.username}#${user.discriminator} (${user.id})`)
.addField('Moderator:', `${message.author.username}#${message.author.discriminator}`)
.addField('Reason', reason)
.setFooter(`© Cryptonix X Mod Bot by ${customisation.ownername}`);
if(user.bot) return;
message.mentions.users.first().send({embed}).catch(e =>{
if(e) return;
});
message.guild.member(user).kick();
let logchannel = message.guild.channels.cache.find(x => x.name = 'logs');
if (!logchannel){
message.channel.send({embed});
}else{
client.channels.cache.get(logchannel.id).send({embed});
message.channel.send({embed});
}
if(user.bot) return;
message.mentions.users.first().send({embed}).catch(e =>{
if(e) return ;
});
}
else{
let newEmbed = new MessageEmbed()
.setColor('#e4e265')
.setTitle('')
.setURL('')
.setDescription("Eeeh wait! You can't use that command <a:yepaa:797528125894295567>")
.setImage('')
.setFooter('');
message.channel.send(newEmbed).then(r => r.delete({ timeout: 10000 }));
}
}
};
这是我在不和谐聊天中尝试运行命令时遇到的错误
TypeError: Cannot read property 'member' of undefined
at Object.execute (C:\Users\ayman\Desktop\sharky music\commands\kick.js:15:56)
(kick.js:15:16 是尝试踢机器人时机器人响应的行)
【问题讨论】:
-
错误是说
client是未定义的。你确定客户端参数被传递给execute还是你只是把它塞进函数声明中并希望?也许尝试将client.member.id更改为message.client.member.id,因为message肯定存在并且第二个提示here 说“message.client”是访问客户端的一种方式。 -
谢谢我试试
-
嗨。我做了你所说的但仍然没有工作,所以我尝试将 client.member.id 替换为“是机器人”并工作。但是现在我想踢一个人,它告诉我原因没有定义,我不知道如何定义它
标签: javascript node.js json discord discord.js