[英]Discord.js v13 kick command not working can someone help me?
嗨,我为我的不和谐机器人创建了一个踢命令
这是代码
client.on("message", (message) => {
if (message.content.startsWith("!kick")){
}
var utenteKick = message.mentions.members.first();
if(!message.member.permissions.has("KICK_MEMBERS")){
message.channel.send("Non hai il permesso");
return;
}
if(!utenteKick.kickable) {
message.channel.send("Il bot non ha il permesso");
return;
}
if(!utenteKick){
message.channel.send("Non hai menzionato nessun utente");
return;
}
utenteKick.kick()
.then(() => message.channel.send("<@" + utenteKick + "> è stato kickato"))
})
这是错误:
C:\Users\Admin\Desktop\Discord bot\MiningMC\index.js:50
if(!utenteKick.kickable) {
^
TypeError: Cannot read properties of undefined (reading 'kickable')
at Client.<anonymous> (C:\Users\Admin\Desktop\Discord bot\MiningMC\index.js:50:25)
at Client.emit (node:events:527:28)
at MessageCreateAction.handle (C:\Users\Admin\Desktop\Discord bot\MiningMC\node_modules\discord.js\src\client\actions\MessageCreate.js:34:18)
at module.exports [as MESSAGE_CREATE] (C:\Users\Admin\Desktop\Discord bot\MiningMC\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\Admin\Desktop\Discord bot\MiningMC\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31)
at WebSocketShard.onPacket (C:\Users\Admin\Desktop\Discord bot\MiningMC\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\Admin\Desktop\Discord bot\MiningMC\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\Admin\Desktop\Discord bot\MiningMC\node_modules\ws\lib\event-target.js:199:18)
at WebSocket.emit (node:events:527:28)
at Receiver.receiverOnMessage (C:\Users\Admin\Desktop\Discord bot\MiningMC\node_modules\ws\lib\websocket.js:1160:20)
有人能帮我吗? 我正在使用 Visual Studio 代码 discord.js 版本 v13 https://github.com/UnsavorySpirit/MiningMC-Bot
在开始使用新的不和谐版本之前,请花一些时间阅读文档,版本之间存在一些差异。 消息事件已重命名为 messageCreate,以使库符合 Discord 的命名约定。 使用 message 仍然有效,但在您切换之前,您会收到弃用警告。
注意第一行的区别:
- client.on("message", message => { ... });
+ client.on("messageCreate", message => { ... });
在对它进行任何操作之前,您应该检查utentekick
是否未定义:
client.on("messageCreate", (message) => {
if (message.content.startsWith("!kick")){
//} <- this was also a problem : move it to the end
var utenteKick = message.mentions.members.first();
if(!message.member.permissions.has("KICK_MEMBERS")){
message.channel.send("Non hai il permesso");
return;
}
if(!utenteKick){ // this before the other
message.channel.send("Non hai menzionato nessun utente");
return;
}
if(!utenteKick.kickable) {
message.channel.send("Il bot non ha il permesso");
return;
}
utenteKick.kick()
.then(() => message.channel.send("<@" + utenteKick + "> è stato kickato"))
} // this must be here
})
大括号也有问题(踢某人的代码不在条件范围内,每条消息都会触发踢)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.