我试图让我的机器人用一个词来回答多种不同的信息:
const bomba = new Discord.Client();
const a = "bomba" || "bomb" || "bob";
const b = "hey" || "sup" || "hello" || "hi";
bomba.on("message", message => {
if (message.author == bomba.user) return;
if (message.content.toLowerCase() === a + b) {
bomba.channels.cache.get(`${message.channel.id}`).send("Hi!");
};
});
我该怎么做?
您可以使用正则表达式和。match()
函数根据几个单词检查消息内容。请看下面的代码并尝试一下:
const bomba = new Discord.Client();
const clientNames = ["bomba", "bomb", "bob"].join('|');
const greetings = ["hey", "sup", "hello", "hi"].join('|');
const regex = new RegExp(`^(${clientNames})\\s(${greetings})$`, 'gi');
bomba.on("message", message => {
if (message.author == bomba.user) return;
if (message.content.match(regex)) {
bomba.channels.cache.get(`${message.channel.id}`).send("Hi!");
}
});
有关正则表达式的更多信息,请查看此stackoverflow问题/答案
您可以使用Array.includes()
:
if (["bomba", "bomb", "bob"].includes(message.content.toLowerCase())) {
message.channel.send("Hi!");
};
请注意,最好按用户比较用户。id
属性,而不是检查它们是否引用了与代码中相同的实例。
if (message.author.id == bomba.user.id) return;
关于==
运算符的MDN文档:
如果两个操作数都是对象,则仅当两个操作数引用同一对象时,才返回true。
问题内容: 我在SQS中有多个消息。即使有数十个可见代码(不在运行中),以下代码也 始终 仅返回一个。 我认为setMaxNumberOfMessages允许一次使用多个..我误解了吗? 我也尝试使用withMaxNumberOfMessages,但没有任何运气: 我怎么知道队列中有消息?大于1? 上面的代码总是在运行之前给我> 1 感谢您的输入 问题答案: AWS API参考指南:Query /
我试图在不和谐的情况下每隔x秒发送一条消息。js机器人。我知道如何做到这一点,但我遇到的问题是,即使我启用了slowmode,它也会发送垃圾邮件。我怎样才能解决这个问题?
我正在创建一个嵌入,您可以通过响应在页面中导航。通过遵循一个教程,我想到了这一点,但问题是:当用户对它做出反应时,它会删除所有相同类型的反应(基本上,如果我使用❤️, 机器人消除了我和他们的反应,让⚙️ 是唯一可用的反应) 希望你能理解我的问题,我只是想让机器人消除我的反应,而不是全部。
如何在一条消息中发送多个嵌入?像这样发送多个: 输出: 我找不到任何关于发送多个嵌入的文档,在discord.js文件中提到了它,发送了一个嵌入列表。虽然我试过这个,但它也不起作用。
问题内容: 我一般只是开始使用RabbitMQ和AMQP。 我有一条消息队列 我有多个消费者,我想用 同一条消息 做不同的事情。 RabbitMQ的大多数文档似乎都集中在循环上,即单个消息由单个使用者使用,而负载则分散在每个使用者之间。我确实是这种行为。 例如:生产者只有一个队列,每2秒发送一次消息: 这是一个消费者: 如果我启动使用者两次,则 可以看到每个使用者都以循环方式使用替代消息。 例如,
我见过很多不和谐的嵌入代码,比如: (这是一个老问题,我是新来的,所以…) 所以,我不明白的是什么是触发因素?就像你应该打字一样。乒乓球对吗?那么,我应该键入什么来获取我的bot类型呢?