"If" 语句类似于 "While" 循环
"If" Statement Acting Like "While" Loop
我已经开始创建 Discord 机器人。问题在于:机器人正在发送垃圾邮件。我希望他在条件为真时只发送一条消息。我使用的是 if
语句,但它的作用类似于 while
循环。这是代码:
const Discord = require("discord.js");
const client = new Discord.Client();
const token = 'TotallyNotMyRealToken';
client.login(token);
client.on('message', message =>
{
if(message.content.includes("text"))
{
message.channel.send(" reply text");
}
})
当我键入 "text"(例如)时,它会发送 "reply" 直到脚本停止。
你能帮我解决这个问题吗?
再次阅读我的代码后,问题是回复包含 "text"。
我找到了解决方案:
const Discord = require("discord.js");
const bot = new Discord.Client();
const token = 'NDA1ODQxMjg5NzU0NTc0ODQ5.DUqQww.HwSaa8TagR1mMGsVpdMDUm6-7tI';
bot.login(token);
bot.on('message', message =>
{
messageInput = message.content.toLowerCase();
botId = bot.user.discriminator
userId = message.author.discriminator
console.log(botId)
console.log(userId)
console.log(messageInput)
if(userId !== botId)
{
if(messageInput.includes("text"))
{
message.channel.send(" reply text ");
}
}
})
您正在发送一条消息 "reply text",其中本身包含单词 "text"。
更改示例以使用不同的短语。
client.on('message', message =>
{
if(message.content.includes("text"))
{
message.channel.send(" this is a reply");
}
})
此外,根据评论中的进一步讨论,如果您希望客户端忽略自己的消息,您可以尝试类似的方法:
client.on('message', message =>
{
if(message.content.includes("text") && message.author.user.id !== client.user.id)
{
message.channel.send(" reply text");
}
})
见https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=client
我已经开始创建 Discord 机器人。问题在于:机器人正在发送垃圾邮件。我希望他在条件为真时只发送一条消息。我使用的是 if
语句,但它的作用类似于 while
循环。这是代码:
const Discord = require("discord.js");
const client = new Discord.Client();
const token = 'TotallyNotMyRealToken';
client.login(token);
client.on('message', message =>
{
if(message.content.includes("text"))
{
message.channel.send(" reply text");
}
})
当我键入 "text"(例如)时,它会发送 "reply" 直到脚本停止。
你能帮我解决这个问题吗?
再次阅读我的代码后,问题是回复包含 "text"。
我找到了解决方案:
const Discord = require("discord.js");
const bot = new Discord.Client();
const token = 'NDA1ODQxMjg5NzU0NTc0ODQ5.DUqQww.HwSaa8TagR1mMGsVpdMDUm6-7tI';
bot.login(token);
bot.on('message', message =>
{
messageInput = message.content.toLowerCase();
botId = bot.user.discriminator
userId = message.author.discriminator
console.log(botId)
console.log(userId)
console.log(messageInput)
if(userId !== botId)
{
if(messageInput.includes("text"))
{
message.channel.send(" reply text ");
}
}
})
您正在发送一条消息 "reply text",其中本身包含单词 "text"。
更改示例以使用不同的短语。
client.on('message', message =>
{
if(message.content.includes("text"))
{
message.channel.send(" this is a reply");
}
})
此外,根据评论中的进一步讨论,如果您希望客户端忽略自己的消息,您可以尝试类似的方法:
client.on('message', message =>
{
if(message.content.includes("text") && message.author.user.id !== client.user.id)
{
message.channel.send(" reply text");
}
})
见https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=client