mysql - .on("ready") 用mysql定义公会ID
问题描述
我试图用命令 trought 数据库“mysql”编写一个简单的自定义统计信息,我有关于在“Ready”函数中定义 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: guild is not defined
我想编写一个像 StartIT v4 bot 这样的统计数据,但是 idk 有可能准备好了吗?我不想在任何重启时使用我的机器人使用命令,例如!start statistic 等,如果有人知道如何修复它或有任何解决方案,我很高兴
解决方案
你的问题是公会没有定义,机器人对象guild
不仅guilds
有一个列出所有公会的集合。您可以获取特定服务器的 id 并过滤集合,或者我认为更适合您的案例循环的方法抛出空洞集合并设置统计信息。
至于它是否可能,您可以使用 bot.onguildCreate
并guildDelete
在机器人加入新服务器或离开服务器时进行监听。我不知道你想在你的统计数据中拥有什么值,但如果你想在你的机器人运行的所有服务器上进行概述,我会使用创建和删除事件。
在这里你可以看到客户端(你的机器人)没有属性guild
discord.js 客户端
推荐阅读
- java - 用Jsteg方法替换DCT中的LSB后如何保存jpeg图像?
- angular - MEAN (SPA) 简单授权
- merge - combineLatest 组合或合并 Observables 的替代方法
- spring - 为 Spring Web 客户端添加异常处理程序
- amazon-web-services - 添加的 SSL 不适用于使用 ACM 的 AWS 负载均衡器
- android - RTL 无法正常工作
- php - 无法将查询附加到以 /?user 结尾的 url
- angular - Angular 2 默认值在视图中
- visual-studio-2012 - 多条件切换
- android - Android Studio Error parsing XML: not well-formed (invalid token)