📌  相关文章
📜  discord.js 在服务器上的不同频道中发送文本 - Javascript (1)

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

Discord.js 在服务器上的不同频道中发送文本

介绍

Discord.js 是一个用于开发 Discord 机器人的 Node.js 库,它通过 WebSocket 实现了与 Discord API 的通信,具有丰富的功能和灵活的配置选项。本文将介绍如何使用 Discord.js 在不同频道中发送文本消息。

前提条件

在继续之前,你需要已经创建了一个 Discord 机器人应用,并取得了相应的 bot token。如果你还没有创建,可以参考本文进行操作。

发送文本消息

在 Discord.js 中,要发送文本消息非常简单,只需要使用 TextChannel.send() 方法即可,在此方法中指定要发送的文本内容。首先需要通过 bot 客户端获取某个频道的对象,然后可以在此对象上调用 send() 方法来发送指定的消息。

// 获取频道对象
const channel = client.channels.cache.get('channelID');

// 发送消息
channel.send('欢迎来到我的频道!');

上面的代码示例中,我们通过 client.channels.cache.get() 方法获取了指定 ID 的频道对象,然后在此对象上调用了 send() 方法,发送了一条文本消息。

发送 Markdown 消息

为了在消息中使用 Markdown 格式,我们需要在文本字符串前后使用 Markdown 标记,将其转换成合法的 Markdown 语法,例如:

const channel = client.channels.cache.get('channelID');

// 发送使用 Markdown 格式的消息
channel.send(
  '### 标题\n\n' +
  '> 引用\n\n' +
  '1. 列表项\n' +
  '2. 列表项\n\n' +
  '`console.log("Hello World!");`\n\n' +
  '**加粗文本**\n\n' +
  '*斜体文本*\n\n' +
  '~~删除线~~\n\n' +
  '[链接](https://www.example.com/)'
);

上面的代码示例中,我们使用了多种不同的 Markdown 标记来生成消息,包括标题、引用、列表、代码块、加粗、斜体、删除线、链接等等,这些标记将在 Discord 消息中正确地显示为相应的样式。

发送消息到不同频道

你可以通过 bot 客户端获取所有可用的频道列表,并通过 TextChannel 类型的对象来发送消息到不同的频道上。例如:

// 获取所有频道列表
client.channels.cache.forEach(channel => {
  // 如果是文本频道,则发送消息
  if (channel.type === 'text') {
    channel.send('这是一条全频道广播消息!');
  }
});

上面的代码示例中,我们通过 client.channels.cache.forEach() 方法遍历了所有可用的频道,在每个文本频道上都发送了一条相同的广播消息。

Markdown 标记参考

以下是一些常用的 Markdown 标记及其用法:

  • # 标题:共有六个不同的标题级别,使用一个或多个 # 符号表示不同的级别。
  • > 引用:使用大于号 > 表示引用其他人的话。
  • `1. * 列表项:有序(数字)和无序(符号)两种列表类型,使用数字或符号加空格开头即可,加粗斜体等样式也可应用。
  • ```` 代码块:使用三个 "" 符号表示代码块,可指定语言类型以实现代码高亮效果。
  • ** 加粗:使用两个星号 ** 表示加粗文本。
  • * 斜体:使用一个星号 * 表示斜体文本。
  • ~~ 删除线:使用两个波浪号 ~~ 表示删除线文本。
  • []() 链接:使用中括号 [] 表示链接文字,后跟小括号 () 表示链接目标。
总结

在 Discord.js 中,我们可以使用 TextChannel.send() 方法轻松地在指定频道中发送文本消息,可以使用 Markdown 标记来格式化消息内容,还可以获取所有可用的频道列表,向每个频道发送不同的消息。在实际开发中,我们可以将这些功能与其他 Discord API 结合使用,来实现各种有趣的机器人应用。