【问题标题】:client.guilds only works in the log and not chatclient.guilds 仅在日志中有效,在聊天中无效
【发布时间】:2020-06-22 22:10:18
【问题描述】:

所以我在我的 Discord.JS 机器人中添加了一个日志记录功能,并使用了console.log(client.guilds);,它在控制台中输出公会及其信息,但是,如果我这样做message.channel.send(client.guilds),它会发送object Objectundefined反而。所以我的问题是如何让我的机器人在聊天中发布client.guilds 的内容?

【问题讨论】:

  • 它说 [object Object] 因为client.guilds(V12 中的client.guilds.cache)是一个集合。我不建议在聊天中发送整个收藏集,您还需要考虑 2000 个字符的限制。 More information about Collections
  • 我知道这不是最好的方式,但我将如何在聊天中发送整个收藏?
  • 每个公会需要哪些信息?
  • 我想要整个系列。
  • 你可以这样做:let data = ""; client.guilds.cache.forEach(guild=>data.concat('\n'+guild)) message.channel.send(data);告诉我这是否有效

标签: javascript node.js bots discord discord.js


【解决方案1】:

Guild 它是一个包含许多集合的大型不和谐对象。所以你不能将所有数据都发送到消息中。但是您可以获取一些信息并将其发送。像这样

不和谐 v12

const Discord = require('discord.js')
const bot = new Discord.Client()
bot.on('message', async message => {
    let clientGuildsData = bot.guilds.cache.map(guild => `${guild.name} - ${guild.id}`).join('\n')
    message.channel.send(clientGuildsData)
})

不和谐 v11

const Discord = require('discord.js')
const bot = new Discord.Client()
bot.on('message', async message => {
    let clientGuildsData = bot.guilds.map(guild => `${guild.name} - ${guild.id}`).join('\n')
    message.channel.send(clientGuildsData)
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 2018-12-18
    相关资源
    最近更新 更多