【问题标题】:Discord.JS - How do i see if message.content is in an array?Discord.JS - 我如何查看 message.content 是否在数组中?
【发布时间】:2019-07-14 20:53:50
【问题描述】:

所以我正在创建一个 Discord 用户验证机器人,它会在你加入服务器时生成一个 2048 位密钥,如果你的帐户被黑或被盗,它将用于验证,这样你就可以知道新帐户是以前的人。

我已关闭密钥生成,但我无法查看 message.content 是否在某个数组中

client.on("message", (message) => {
var array = fs.readFileSync('./keys.txt').toString().split("\n");
})

我正在将一个文本文件转换为一个数组,但是我很难过。 假设该机器人会检查所有消息中的密钥,如果找到,它将告诉所有用户新用户已被验证为频道中的旧用户。 有人可以告诉我如何检查消息是否来自数组吗?谢谢。

【问题讨论】:

  • “检查消息是否来自数组?”是什么意思?如果用户发送的消息是一个数组的值?
  • 抱歉没有说明清楚。我试图检查每条消息,看看他们所说的是否在我设置的数组中。

标签: javascript arrays node.js discord discord.js


【解决方案1】:

如果我猜对了,您想检查发送的消息是否是您存储在文件 keys.txt 中的密钥之一。
那么以下应该可以解决问题:

client.on("message", (message) => {
  var array = fs.readFileSync('./keys.txt').toString().split("\n");

  if (array.includes(message.content)) {
    message.channel.send('User verified, let's proceed...');
  } else {
    message.channel.send('User not recognized');
  }
});

.includes() 检查数组中是否存在元素。更多信息请查看the documentation

【讨论】:

  • 谢谢你!完全按预期工作,但我不得不稍微修复一下您的代码。 client.on("message", (message) => { if (message.author.bot) return; var array = fs.readFileSync('./keys.txt').toString().split("\n"); if (array.includes(message.content)) { message.channel.send('User verified, lets proceed...'); } else { message.channel.send('User not recognized'); } });
  • @CollierPlays 我没有把它说出来,因为它与问题无关,但你是对的,始终确保你没有用你的机器人创建循环
【解决方案2】:

您可以使用以下javascript函数:

Array.isArray(message.content);

它将返回truefalse

【讨论】:

  • 感谢您的回答,但似乎我无法从我之前制作的数组中提取:var array = fs.readFileSync('./keys.txt').toString().split("\n"); 我正在尝试获取所有密钥,让我们从该文件中说 1 并检查 message.content有 1 如果消息包含“1”消息,则另一个频道表明他已被验证为他的旧用户
猜你喜欢
  • 2020-07-08
  • 2022-12-10
  • 2022-11-14
  • 2021-03-29
  • 2019-04-08
  • 1970-01-01
  • 2023-03-27
  • 2015-01-18
  • 2013-03-31
相关资源
最近更新 更多