【问题标题】:Reading contents of DB for channel.id为 channel.id 读取 DB 的内容
【发布时间】:2019-06-03 11:33:52
【问题描述】:

我的日志命令需要一个通道来发送消息,我使用>logging #channel-here 命令执行此操作,它存储在 better-sqlite3 上,我的问题是我不确定如何读取内容并将其转换为通道。

我已经为此工作了几天,并且尝试了几种不同的方法,这是我最近的尝试

  const id = sql.prepare(`SELECT channel FROM logging WHERE guildid = ${message.guild.id};`).get();
  const logs = client.channels.get(id);
  if (!logs) return;
  logs.send(`A message was deleted`);

const logs = 需要 = 如果 guildid 记录与删除消息的记录匹配,则您在频道记录中看到的频道 ID。

【问题讨论】:

  • 您能详细说明client.getScore() 究竟是什么吗?我不认为这是 Discord.js 功能。通常你会通过client.guilds.find()获得公会,然后你可以根据找到的公会对频道做同样的事情。
  • 我不知道为什么会在那里,一定是复制了错误的位。我已经用我目前的尝试更新了这个问题。

标签: node.js discord.js better-sqlite3


【解决方案1】:

您应该保存频道 ID,而不是保存频道提及。 <#channel-id> 用于提及频道,但 discord.js <guild>.channels.get() 只接受 ID。 因此,您应该只将频道 ID 存储在数据库中,在 >logging #channel-here 的代码中只需使用 const mentionedchannel = message.mentions.channels.first(); 然后在您的数据库中写入mentionedchannel.id,然后您的.get() 应该可以工作!

【讨论】:

  • message.mentions.channels.first(); 仍将频道存储为<#529093571815669770>
  • 使用message.mentions.channels.first().id
猜你喜欢
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 2019-10-19
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
相关资源
最近更新 更多