📜  discord js 检查消息作者是否为管理员 - Javascript (1)

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

在 Discord.js 中,我们可以通过检查消息的作者是否为管理员来执行一些特殊操作。下面是一个使用 Discord.js 的示例代码片段,它演示了如何检查消息作者是否为管理员:

const Discord = require('discord.js');
const client = new Discord.Client();

client.on('message', (message) => {
  if (message.author.bot) return; // 不处理机器人发出的消息
  
  const isAuthorAdmin = message.member.hasPermission('ADMINISTRATOR');
  
  const response = `消息 ${message.content} 的作者是管理员吗? ${isAuthorAdmin ? '是' : '不是'}`;
  
  const embed = new Discord.MessageEmbed()
    .setTitle('管理员检查结果')
    .setDescription(response)
    .setColor('#f54242');

  message.channel.send(embed);
});

client.login('YOUR_DISCORD_BOT_TOKEN');

在上面的代码中,我们首先引入 Discord.js 模块,并创建一个新的 Discord 客户端实例。然后我们监听消息事件,并检查消息的作者是否为管理员。

message.member 可以用来获取消息的作者成员对象。hasPermission() 方法用于检查成员是否具有指定的权限,我们以字符串 'ADMINISTRATOR' 作为参数来检查是否为管理员。如果成员具有管理员权限,isAuthorAdmin 变量将为 true,否则为 false。

接下来,我们创建一个包含检查结果的消息响应。我们使用 Discord.MessageEmbed 类来创建一个嵌入式消息,并设置标题、描述和颜色。如果作者是管理员,描述中将显示 "是",否则将显示 "不是"

最后,我们通过 message.channel.send() 方法将响应消息发送到消息的频道中。

请记得将代码中的 'YOUR_DISCORD_BOT_TOKEN' 替换为您实际的 Discord 机器人令牌。

以上代码片段返回一个包含检查结果的嵌入式消息,并使用 Markdown 标记进行格式化。