Ban/kick 命令在使用时崩溃
Ban/kick command crashes on use
所以,我正在制作一个 public discord 机器人,但我的脚本的一部分有问题。我的 kick/ban 命令是用来完成的 $ban @user
它必须在 ping 中完成。由于这是 public,我真的很想解决这个问题。我不希望一个人搞砸并使它崩溃以致所有服务器都崩溃。如果有人不在 ping 中执行 $ban user
,它会使机器人崩溃。这是我的代码:
client.on("message", (message) => {
if (message.content.startsWith("$kick")) {
if (!message.member.roles.find("name", "MODS"))
return;
// Easy way to get member object though mentions.
var member = message.mentions.members.first();
// Kick
member.kick().then((member) => {
// Successmessage
message.channel.send(":wave: " + member.displayName + " has been successfully kicked :point_right: ");
}).catch(() => {
// Failmessage
message.channel.send("Access Denied");
});
}
});
我不希望我的 bot 一直崩溃以致破坏其他人的使用,有人可以帮忙吗?
我想当你输入 $ban user
时发生了什么(这没有被提及),后来当你分配 var member = message.mentions.members.first();
时它给你 null (因为没有人被提及)。尝试确保 message.mentions.members
不为空。
干杯:)
当你没有提及时你的代码崩溃了,因为你没有抓住这个用例。
添加一个简单的 catch,例如 return,应该适合您:
client.on("message", (message) => {
if (message.content.startsWith("$kick")) {
if(!message.member.roles.find("name", "MODS"))
return;
// Easy way to get member object though mentions.
var member= message.mentions.members.first();
// No mentions catch
if (member === undefined) return;
// Kick
member.kick().then((member) => {
// Successmessage
message.channel.send(":wave: " + member.displayName + " has been successfully kicked :point_right: ");
}).catch(() => {
// Failmessage
message.channel.send("Access Denied");
});
}
});
所以,我正在制作一个 public discord 机器人,但我的脚本的一部分有问题。我的 kick/ban 命令是用来完成的 $ban @user
它必须在 ping 中完成。由于这是 public,我真的很想解决这个问题。我不希望一个人搞砸并使它崩溃以致所有服务器都崩溃。如果有人不在 ping 中执行 $ban user
,它会使机器人崩溃。这是我的代码:
client.on("message", (message) => {
if (message.content.startsWith("$kick")) {
if (!message.member.roles.find("name", "MODS"))
return;
// Easy way to get member object though mentions.
var member = message.mentions.members.first();
// Kick
member.kick().then((member) => {
// Successmessage
message.channel.send(":wave: " + member.displayName + " has been successfully kicked :point_right: ");
}).catch(() => {
// Failmessage
message.channel.send("Access Denied");
});
}
});
我不希望我的 bot 一直崩溃以致破坏其他人的使用,有人可以帮忙吗?
我想当你输入 $ban user
时发生了什么(这没有被提及),后来当你分配 var member = message.mentions.members.first();
时它给你 null (因为没有人被提及)。尝试确保 message.mentions.members
不为空。
干杯:)
当你没有提及时你的代码崩溃了,因为你没有抓住这个用例。
添加一个简单的 catch,例如 return,应该适合您:
client.on("message", (message) => {
if (message.content.startsWith("$kick")) {
if(!message.member.roles.find("name", "MODS"))
return;
// Easy way to get member object though mentions.
var member= message.mentions.members.first();
// No mentions catch
if (member === undefined) return;
// Kick
member.kick().then((member) => {
// Successmessage
message.channel.send(":wave: " + member.displayName + " has been successfully kicked :point_right: ");
}).catch(() => {
// Failmessage
message.channel.send("Access Denied");
});
}
});