Discord.js v12 如何获取对特定消息做出反应的人的 id?

Posted

技术标签:

【中文标题】Discord.js v12 如何获取对特定消息做出反应的人的 id?【英文标题】:Discord.js v12 How to get the id of a person who reacted on a specific message? 【发布时间】:2020-12-10 06:38:19 【问题描述】:

我现在正在制作自己的票务机器人!所以首先机器人发送了一个嵌入,如果你想创建一张票,你可以在其中做出反应(当你做出反应时,机器人将在特定类别中创建一个新频道)。我更改了这个类别的权限,所以@everyone 看不到那个频道。

我的问题是如何更改权限,以便做出反应的用户可以写和查看他的票务频道。

我的代码是:

client.on('messageReactionAdd', async (reactionReaction, user) => 

    const message = reactionReaction.message;
    const verifyChannel = message.guild.channels.cache.get('724929149755719751');
    const member = message.guild.members.cache.get(user.id);
    const guild = message.guild;
    if (member.user.bot) return;
    if (reactionReaction.emoji.name === '????' && message.channel.id === verifyChannel.id) 
        guild.channels.create('Factions',  type: 'text', parent: '724929049612386375' );
        await reactionReaction.users.remove(member).catch(console.error);
    
);

感谢您的帮助!

【问题讨论】:

【参考方案1】:

您可以使用GuildChannel.create(name, options) method 中的options.permissionOverwrites[]

client.on("messageReactionAdd", async (reactionReaction, user) => 
  const message = reactionReaction.message;
  const verifyChannel = message.guild.channels.cache.get("724929149755719751");
  const member = message.guild.members.cache.get(user.id);
  const guild = message.guild;
  if (member.user.bot) return;
  if (
    reactionReaction.emoji.name === "?" &&
    message.channel.id === verifyChannel.id
  ) 
    guild.channels.create("Factions", 
      type: "text",
      parent: "724929049612386375",
      permissionOverwrites: [
        
          id: user.id,
          allow: ["VIEW_CHANNEL", "SEND_MESSAGES"],
        ,
      ],
    );
    await reactionReaction.users.remove(member).catch(console.error);
  
);

【讨论】:

以上是关于Discord.js v12 如何获取对特定消息做出反应的人的 id?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查用户是不是具有特定角色 discord.js v12? [复制]

Discord js v12 如果有人对嵌入做出反应,则发送消息

从反应 discord.js 中获取消息 ID

如何获取对特定消息做出反应的用户的不和谐 ID discord.js

如何让 DIScord.js 机器人真正回复消息?

如何在 Discord.JS v12 中查看用户正在玩的游戏