.on("ready") 用mysql定义公会ID

Posted

技术标签:

【中文标题】.on("ready") 用mysql定义公会ID【英文标题】:.on("ready") define guild id with mysql 【发布时间】:2020-04-11 11:52:03 【问题描述】:

我尝试使用命令 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: 公会未定义

我想编写一个像 StartIT v4 bot 这样的统计数据,但我想知道是否可以准备好?我不想在任何重启时使用我的机器人使用命令,例如!start statistic 等, 如果有人知道如何解决它或有任何解决方案,我很高兴

【问题讨论】:

【参考方案1】:

你的问题是公会没有定义,机器人对象没有guild 只有guilds 一个集合,其中列出了所有公会。您可以获取特定服务器的 id 并过滤集合,或者我认为对您的案例循环更好的方法抛出空洞集合并设置统计信息。

至于是否可行,您可以使用 bot.on guildCreateguildDelete 来监听 bot 何时加入新服务器或离开服务器。我不知道你想在你的统计数据中拥有什么值,但是如果你想在你的机器人运行的所有服务器上进行概述,我会使用创建和删除事件。

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

【讨论】:

我在 bot.on(guildCreate) 上将 guildID 插入到 mysql 但 idk 如何为服务器定义特定的 channel.id 就像我有 50 台服务器并且每台服务器都使用我的统计信息 //sry 英语顺便说一句 所以你想在你的服务器上的一个频道中统计你所有 50 台服务器的统计数据? 没有。一台服务器可以使用来自他的服务器的统计信息,例如服务器 xyz 有 10 个公会成员,他们有一个名为“公会成员 10”的频道,我知道我可以使用 .on(“message”) 来做到这一点,但我不想让任何机器人重启使用类似的命令!statistic start 等,我尝试在 ("ready") 中使用它并从 mysql 定义 guild.id + channel.id

以上是关于.on("ready") 用mysql定义公会ID的主要内容,如果未能解决你的问题,请参考以下文章

用jquery如何点击button按钮调用后台方法查询数据返回到弹出框内

jquery中function怎么使用

JQUERY导航悬停

Errors running builder "Android Package Builder" on project "***"minvor version

php代码中如何放入js

Jquery中"$(document).ready(function(){ })"函数的使用详解