📜  discord js stats 命令 - Javascript (1)

📅  最后修改于: 2023-12-03 14:40:44.484000             🧑  作者: Mango

Discord JS Stats 命令

该命令可用于显示 Discord 服务器的统计信息,包括服务器人数、在线人数、活跃用户和频道信息。可以很容易地集成到 Discord.js 机器人中。

安装

在终端上运行以下命令安装 discord.js 库:

npm install discord.js

在您的 Discord.js bot 中,使用 message 事件监听消息并解析指令:

bot.on('message', message => {
  if (message.content === '!stats') { // Check if message is "!stats"
    const guild = message.guild;
    const embed = createEmbed(guild); // Create embed
    message.channel.send(embed); // Send embed
  }
});
创建嵌入消息

嵌入消息是指在聊天中显示的可视化信息。我们可以使用 Discord.js 库中 MessageEmbed 类来创建并发送嵌入消息。

以下是一个示例 createEmbed 函数,用于创建代表服务器统计信息的嵌入消息:

const { MessageEmbed } = require('discord.js');
function createEmbed(guild) {
  const embed = new MessageEmbed()
    .setColor('AQUA')
    .setTitle(`统计信息:${guild.name}`)
    .setThumbnail(guild.iconURL())
    .addFields(
      { name: '成员', value: guild.memberCount, inline: true },
      { name: '在线', value: guild.members.cache.filter(member => member.presence.status !== 'offline').size, inline: true },
      { name: '活跃用户', value: guild.members.cache.filter(member => member.roles.cache.size > 1).size, inline: true },
      { name: '文本频道', value: guild.channels.cache.filter(channel => channel.type === 'text').size, inline: true },
      { name: '语音频道', value: guild.channels.cache.filter(channel => channel.type === 'voice').size, inline: true },
    )
    .setTimestamp()
    .setFooter('统计信息');
  return embed;
}

该函数接收一个 guild 对象,然后通过该对象计算出所需的数据,并使用 MessageEmbed 创建嵌入消息。函数返回这个嵌入消息对象,可以在 message.channel.send 中使用。

返回格式

该命令返回的消息是嵌入消息,格式如下:

# 统计信息:{服务器名称}
{服务器图标}

- 成员: {成员数}, 在线: {在线人数}, 活跃用户: {活跃用户数}
- 文本频道: {文本频道数}, 语音频道: {语音频道数}

统计信息
示例

结论

通过 discord.js 库中的 MessageEmbed 类,我们可以在 Discord 聊天中创建具有可视化效果的信息。使用结构化的代码可以轻松地构建具有丰富功能的消息。通过此功能代码示例,可以帮助开发者更好地了解如何使用 discord.js 向 Discord 服务器发送消息。