.on(“ ready”)用mysql定义行会ID

时间:2019-12-18 21:35:49

标签: mysql node.js discord.js

我试图使用命令遍历数据库“ mysql”编写一个简单的自定义统计信息,但我仍然无法在“就绪”函数中定义guildID进行定义,或者我需要搜索其他解决方案

const Discord = require("discord.js")
const { bot } = require('../index');
const { mysql } = require('../index')

bot.on('ready', async () => {
  setInterval(function() {
    let sql = 'SELECT * FROM stats WHERE guildID = ?'
    mysql.query(sql, [guild.id], (err, results) => {
      let allchannels = results.channelID
      let guildid = results.guildID
      setInterval(() => {
        const guild = bot.guild.get(`${guildid}`)
        var userCount = guild.memberCount;
        const totalUsers = bot.channels.get(`${allchannels}`)
        totalUsers.setName(`total members = ${userCount}`)
      }, 20000);
      })    
  }, 15000);
})
  

connection.query(sql,[gui​​ld.id],(err,results)=> {
  ReferenceError:公会未定义

我想编写类似StartIT v4 bot的统计信息,但是idk是否可以准备就绪?我不希望重新启动我的机器人使用命令,如!start statistic等, 我很高兴有人知道如何解决它或有任何解决方案

1 个答案:

答案 0 :(得分:0)

您的问题是未定义公会,机器人对象只有guildguilds的集合中列出了所有公会。您可以获取特定服务器的ID并过滤集合,或者我认为对您的case循环更好的方法是抛出Hole集合并设置统计信息。

对于可能的情况,您可以在guildCreateguildDelete上使用bot.on来监听当bot加入新服务器或离开服务器时的情况。我不知道您想要在统计信息中包含什么值,但是如果您希望对所有运行于服务器之上的服务器进行概述,那么我将使用create and delete事件。

在这里您可以看到客户端(您的机器人)没有属性guild discord.js Client