我想创建一个在调用命令后运行的命令 这是我的代码:
ownerID = "12042";
if (message.content.startsWith(config.prefix+"afk on")) {
afk = true;
if (afk == true) {
message.channel.send("Turned on AFK mode");
if (message.content.includes(config.ownerID)) {
message.reply(`X is away. Try again later.`);
}
}
}
if (message.content.startsWith(config.prefix+"afk off")) {
afk = false;
if (afk == false) {
message.channel.send("Turned off AFK mode");
}
}
我尝试在此处制作“AFK模式”命令,如果我发送afk on
,只要有人输入X is away
,它就会回复12042
。
使用该代码,我根本得不到答案,但如果我做到了
if (message.content.includes(config.ownerID)) {
message.reply(`X is away. Try again later.`);
}
它会毫无问题地回复,但它会一直回复,因为我们都知道
答案 0 :(得分:1)
您的机器人应该寻找三种类型的消息:<prefix>afk on
,<prefix>afk off
以及包括12042
在内的任何消息。您的代码仅处理<prefix>afk on
和<prefix>afk off
,12042
作为“on”消息的特例。 (如果您尝试发送<prefix>afk on 12042
,则应该会看到离开的消息。)重新构建代码以检查所有三种情况。最简单(但不一定是最好的)方式就像
if (message.content.startsWith(config.prefix+"afk on")) {
// turn on afk mode
} else if (message.content.startsWith(config.prefix+"afk off")) {
// turn off afk mode
} else if (message.content.includes(config.ownerID)) {
// send the afk message if afk mode is on
}