📌  相关文章
📜  discord.js 匿名频道 - Javascript (1)

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

Discord.js 匿名频道

Discord.js是一个流行的Discord API的Node.js库,有着丰富的功能和易于使用的语法。本文将介绍如何在Discord.js中创建一个匿名频道,并向您展示如何编写代码以实现此功能。

创建匿名频道

首先,我们需要安装discord.js依赖包,您可以使用以下命令在终端中安装它:

npm install discord.js

然后,在您的代码中导入Discord.js模块并创建Discord客户端实例:

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

接下来,您需要监听'guildCreate'事件,并在该事件中创建匿名频道。

client.on('guildCreate', (guild) => {
  guild.channels.create('Anonymous', {
    type: 'text',
    permissionOverwrites: [
      {
        id: guild.id,
        deny: ['VIEW_CHANNEL'],
      },
    ],
  });
});

上述代码会在Bot加入新的服务器时创建一个名为'Anonymous'的文本频道,然后将所有人(包括服务器管理员)的查看频道权限设置为拒绝。

通过这样设置,您可以确保只有那些知道该频道存在并且有频道ID的成员才能访问该频道。

发送匿名消息

创建匿名频道后,您可能还需要向该频道中发送消息。但是,您需要确保消息中不包含个人信息,以保护发送者的隐私。

为了达到这个目的,我们可以使用Discord.js中的MessageEmbed对象。

client.on('message', async (message) => {
  if (message.channel.name === 'Anonymous') {
    const targetChannel = message.guild.channels.cache.find(
      (channel) => channel.id !== message.channel.id
    ); // 找到一个频道以发送消息

    const embed = new Discord.MessageEmbed()
      .setColor('#0099ff')
      .setDescription(message.content)
      .setAuthor('Anonymous', 'https://i.imgur.com/wSTFkRM.png');

    await targetChannel.send(embed);
    await message.delete();
  }
});

上述代码将监听所有从'Anonymous'频道收到的消息。如果消息是从该频道发送的,代码将创建一个新的MessageEmbed对象,将消息内容添加到其描述字段中,并将其发送到服务器中的另一个频道中。(通过message.guild.channels.cache.find()方法找到其他的频道)

最后,您需要删除发送者在'Anonymous'频道中发送的原始消息以确保匿名。通过使用message.delete()方法立即将其删除。

现在,您已经可以在Discord.js中创建具有匿名功能的频道了。如果您想要尝试更多有趣的Discord.js功能,请查看官方文档(cuda-discord.js.tractionquestion.com/)。