Reacord API完全参考:从基础到高级功能的详细文档

Reacord API完全参考:从基础到高级功能的详细文档

【免费下载链接】reacordCreate interactive Discord messages using React. ⚛项目地址: https://gitcode.com/gh_mirrors/re/reacord

Reacord 是一个允许开发者使用 React 创建交互式 Discord 消息的强大工具。通过 Reacord API,你可以轻松构建动态、响应式的 Discord 机器人界面,将 React 的声明式编程模型与 Discord 的丰富交互能力相结合。

快速入门:安装与基础配置

要开始使用 Reacord,首先需要将其添加到你的项目中。Reacord 依赖于 React 和 Discord.js,因此需要同时安装这些包。

安装步骤

你可以使用 npm、yarn 或 pnpm 安装 Reacord 及其依赖:

# npm npm install reacord react discord.js # yarn yarn add reacord react discord.js # pnpm pnpm add reacord react discord.js

基础配置

安装完成后,需要创建 Discord.js 客户端和 Reacord 实例:

import { Client, Events } from "discord.js" import { ReacordDiscordJs } from "reacord" const client = new Client() const reacord = new ReacordDiscordJs(client) client.once(Events.ClientReady, () => { console.log("Ready!") }) await client.login(process.env.BOT_TOKEN)

核心功能:发送消息与管理实例

Reacord 的核心功能是创建和管理消息实例。通过这些实例,你可以发送消息、更新内容,并处理用户交互。

创建消息实例

使用createChannelMessage方法创建一个消息实例,并通过render方法渲染内容:

client.once(Events.ClientReady, () => { const channel = await client.channels.fetch("abc123deadbeef") reacord.createChannelMessage(channel).render("Hello, world!") })

你可以渲染字符串、数字或任何 React 可渲染的内容,包括 JSX:

import { useEffect, useState } from "react" function Uptime() { const [startTime] = useState(Date.now()) const [currentTime, setCurrentTime] = useState(Date.now()) useEffect(() => { const interval = setInterval(() => { setCurrentTime(Date.now()) }, 3000) return () => clearInterval(interval) }, []) return <>this message has been shown for {currentTime - startTime}ms</> } client.once(Events.ClientReady, () => { const instance = reacord.createChannelMessage(channel) instance.render(<Uptime />) })

实例管理

你可以多次调用render方法更新消息内容:

interface HelloProps { subject: string } const Hello = ({ subject }: HelloProps) => <>Hello, {subject}!</> client.once(Events.ClientReady, () => { const instance = reacord.createChannelMessage(channel) instance.render(<Hello subject="World" />) instance.render(<Hello subject="Moon" />) })

消息实例可以通过以下方法进行清理:

  • instance.destroy(): 删除消息
  • instance.deactivate(): 保留消息但禁用组件和交互监听

你还可以在创建 Reacord 实例时配置最大实例数,以自动管理内存:

const reacord = new ReacordDiscordJs(client, { maxInstances: 3, // 最多同时活跃 3 个实例 })

高级功能:交互组件与命令处理

Reacord 提供了丰富的交互组件,如按钮、选择菜单等,并支持处理 Discord 应用命令。

嵌入消息

使用<Embed />组件创建富文本嵌入消息:

import { Embed } from "reacord" interface FancyMessageProps { title: string description: string } function FancyMessage({ title, description }: FancyMessageProps) { return ( <Embed title={title} description={description} color={0x00ff00} timestamp={Date.now()} /> ) }

你还可以使用更细粒度的嵌入组件,如<EmbedTitle />,实现组件化的嵌入消息构建:

import { Embed, EmbedTitle } from "reacord" function FancyDetails({ title, description }) { return ( <> <EmbedTitle>{title}</EmbedTitle> {description} </> ) } function FancyMessage({ children }) { return ( <Embed color={0x00ff00} timestamp={Date.now()}> {children} </Embed> ) }

处理应用命令

使用createInteractionReply方法回复命令交互:

client.on(Events.InteractionCreate, (interaction) => { if (interaction.isCommand() && interaction.commandName === "ping") { reacord.createInteractionReply(interaction).render(<>pong!</>) } })

你可以创建辅助函数简化命令注册和处理:

function handleCommands(client, commands) { client.once(Events.ClientReady, () => { for (const { name, description } of commands) { client.application?.commands.create({ name, description }) } }) client.on(Events.InteractionCreate, (interaction) => { if (interaction.isCommand()) { for (const command of commands) { if (interaction.commandName === command.name) { command.run(interaction) } } } }) }

特殊类型回复

支持创建临时回复(仅对命令发起者可见)和文本转语音回复:

// 临时回复 reacord.createInteractionReply(interaction, { ephemeral: true }).render(<>(pong)</>) // 文本转语音回复 reacord.createInteractionReply(interaction, { tts: true }).render(<>pong!</>)

总结与资源

Reacord 提供了一个直观而强大的 API,让开发者能够使用 React 的强大功能创建交互式 Discord 消息。通过本文档,你已经了解了 Reacord 的基础安装、消息发送、实例管理以及高级交互功能。

要深入学习 Reacord,可以参考项目中的指南文档:

  • Getting Started
  • Sending Messages
  • Embeds
  • Buttons
  • Select Menus

开始使用 Reacord,构建你的第一个 React 驱动的 Discord 机器人吧!

【免费下载链接】reacordCreate interactive Discord messages using React. ⚛项目地址: https://gitcode.com/gh_mirrors/re/reacord

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考