【问题标题】:Discord.js sending a message to every channel id stored in the databaseDiscord.js 向存储在数据库中的每个频道 ID 发送消息
【发布时间】:2021-07-02 09:33:45
【问题描述】:

我正在尝试创建一个命令,向使用 quick.db 存储的每个频道 ID 发送消息

db.set(`channelID_${message.guıld.ıd}`, message.channel.id)

这就是我存储频道 ID 的方式有没有一种可能的方法可以向使用此存储的每个频道 ID 发送消息,我一直在尝试但失败了

编辑:我尝试使用

const channelIDs = db.all() 
  .filter(e => e.ID.startsWith("channeltest"));

channelIDs.forEach(async (id) => {
  try {
    
    const channel = await client.channels.fetch(id);
    channel.send('test');
  }
});

得到错误channel_id:值“[object Object]”不是雪花。

【问题讨论】:

  • 也许将它存储在一个数组中,然后您可以运行 forEach 循环。
  • 欢迎发布您尝试发送这些消息的方式。 db.set 方法看起来有点奇怪。我认为您只设置了一个密钥,没有设置数据。

标签: javascript discord.js quick.db


【解决方案1】:

首先,我认为您的代码中有一点错字。您设置了密钥但没有数据。这是我的更正:

db.set(`channelID_${message.guıld.ıd}`, message.channel.id)

我建议使用Array.forEach() 循环遍历您的频道 ID 数据库条目:

array1.forEach(async databaseElement => {
const fetchedChannel = await client.channels.fetch('ENTER CHANNEL ID');
fetchedChannel.send('Test message. It worked!')
});

【讨论】:

    【解决方案2】:

    您可能应该像 Worthy Alpaca 提到的那样设置一组频道 ID。

    db.set(`channelID_${message.guild.id}`, ['859324671543153', '859320171505419'])
    

    您可以稍后使用push() 方法添加新 ID:

    db.push(`channelID_${message.guild.id}`, message.channel.id)
    

    设置好数据库后,您可以使用.get() 方法获取ID 数组,并使用.forEach() 方法对其进行迭代。对于每个频道 ID,您可以使用.fetch() 获取频道。它返回一个承诺,所以你需要先解决它(这就是为什么有 await 关键字)。获得频道后,您可以使用channel.send() 方法向该频道发送消息:

    // get the array of IDs from the database
    const channelIDs = db.get(`channelID_${message.guild.id}`);
    
    // for every ID stored, send a message
    channelIDs.forEach(async (id) => {
      try {
        // fetch the channel by its ID
        const channel = await client.channels.fetch(id);
        channel.send('Minus officiis dolore eveniet');
      } catch (error) {
        console.log(error);
      }
    });
    

    【讨论】:

    • 我收到错误 TypeError: Cannot read property 'forEach' of null 我正在用我尝试做的方式编辑我的问题,但失败了
    • 我不确定您为什么使用db.all(),也不确定您在数据库中存储的内容和方式。看起来您没有在其中存储频道 ID。
    猜你喜欢
    • 2021-07-27
    • 1970-01-01
    • 2021-02-06
    • 2021-08-21
    • 2020-04-04
    • 2020-05-22
    • 2021-05-17
    • 2021-04-27
    相关资源
    最近更新 更多