我试图使用命令遍历数据库“ 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,[guild.id],(err,results)=> {
ReferenceError:公会未定义
我想编写类似StartIT v4 bot的统计信息,但是idk是否可以准备就绪?我不希望重新启动我的机器人使用命令,如!start statistic等, 我很高兴有人知道如何解决它或有任何解决方案
答案 0 :(得分:0)
您的问题是未定义公会,机器人对象只有guild
仅guilds
的集合中列出了所有公会。您可以获取特定服务器的ID并过滤集合,或者我认为对您的case循环更好的方法是抛出Hole集合并设置统计信息。
对于可能的情况,您可以在guildCreate
和guildDelete
上使用bot.on来监听当bot加入新服务器或离开服务器时的情况。我不知道您想要在统计信息中包含什么值,但是如果您希望对所有运行于服务器之上的服务器进行概述,那么我将使用create and delete事件。
在这里您可以看到客户端(您的机器人)没有属性guild
discord.js Client