十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【计算机工具类-协作工具Skills】discord-bot-architect 技能

【计算机工具类-协作工具Skills】discord-bot-architect 技能 专门用于构建生产级Discord机器人的技能。涵盖Discord.jsJavaScript和PycordPython包括网关意图、斜杠命令、交互组件、速率限制和分片技术。技能概述discord-bot-architect 技能是一个专业的技能包旨在帮助开发者构建高质量、可扩展的Discord机器人。该技能提供了完整的最佳实践和代码模式支持JavaScript/TypeScriptDiscord.js v14和PythonPycord两种主流开发框架。下载地址https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/discord-bot-architect主要功能多语言支持支持Discord.jsJavaScript/TypeScript和PycordPython两种主流框架斜杠命令现代的Discord命令系统优于传统的消息解析交互组件按钮、选择菜单、模态框等丰富的用户界面组件速率限制处理优雅地处理Discord API的速率限制分片技术支持大规模机器人的分片架构2500服务器必需延迟响应模式处理耗时操作而不超时嵌入消息构建创建专业外观的富文本消息核心原则最佳实践原则优先使用斜杠命令而非消息解析Message Content Intent已弃用始终在3秒内确认交互仅请求必需的意图最小化特权意图使用指数退避策略优雅处理速率限制从一开始就规划分片2500服务器时必需使用组件按钮、选择菜单、模态框提供丰富的用户体验先使用服务器命令测试准备好后再部署全局命令主要模式1. Discord.js v14 基础架构使用Discord.js v14和斜杠命令构建现代Discord机器人的基础设置。适用场景使用JavaScript/TypeScript构建Discord机器人需要完整的网关连接和事件处理构建具有复杂交互的机器人// src/index.jsconst { Client, Collection, GatewayIntentBits, Events } require(discord.js);const fs require(node:fs);const path require(node:path);require(dotenv).config();// 使用最小必需意图创建客户端const client new Client({intents: [GatewayIntentBits.Guilds,// 仅添加所需内容// GatewayIntentBits.GuildMessages,// GatewayIntentBits.MessageContent, // 特权意图 - 尽可能避免]});// 加载命令client.commands new Collection();const commandsPath path.join(__dirname, commands);const commandFiles fs.readdirSync(commandsPath).filter(f f.endsWith(.js));for (const file of commandFiles) {const filePath path.join(commandsPath, file);const command require(filePath);if (data in command execute in command) {client.commands.set(command.data.name, command);}}client.login(process.env.DISCORD_TOKEN);2. Pycord 机器人基础使用PycordPython和应用程序命令构建Discord机器人。适用场景使用Python构建Discord机器人偏好async/await模式需要良好的斜杠命令支持# main.pyimport osimport discordfrom discord.ext import commandsfrom dotenv import load_dotenvload_dotenv()# 配置意图 - 仅启用所需内容intents discord.Intents.default()# intents.message_content True # 特权意图 - 尽可能避免bot commands.Bot(command_prefix!,intentsintents)bot.eventasync def on_ready():print(fLogged in as {bot.user})# 斜杠命令bot.slash_command(nameping, description检查机器人延迟)async def ping(ctx: discord.ApplicationContext):latency round(bot.latency * 1000)await ctx.respond(fPong! 延迟: {latency}ms)bot.run(os.environ[DISCORD_TOKEN])3. 交互组件模式使用按钮、选择菜单和模态框创建丰富的用户体验。适用场景需要交互式用户界面收集超出斜杠命令选项的用户输入构建菜单、确认对话框或表单组件限制每条消息/模态框最多5个ActionRow每个ActionRow最多5个按钮每个ActionRow最多1个选择菜单占用所有5个槽位每条消息最多5个选择菜单每个选择菜单最多25个选项模态框必须是第一个响应不能先延迟4. 延迟响应模式处理耗时操作而不超时。适用场景操作耗时超过3秒数据库查询、API调用、LLM响应文件处理或生成时间限制初始响应3秒延迟后续响应15分钟临时消息只能在初始响应时设置之后无法更改5. 嵌入消息构建模式创建专业外观的富文本消息。适用场景显示格式化信息状态更新、帮助菜单、日志结构化数据字段、图像嵌入消息限制每条消息最多10个嵌入消息所有嵌入消息总共6000字符标题最多256字符描述最多4096字符每个嵌入消息最多25个字段字段名称最多256字符字段值最多1024字符6. 速率限制处理模式优雅地处理Discord API速率限制。适用场景高容量操作批量消息或角色分配任何重复的API调用项目结构discord-bot/├── src/│ ├── index.js # 主入口点│ ├── deploy-commands.js # 命令注册脚本│ ├── commands/ # 斜杠命令处理器│ │ └── ping.js│ └── events/ # 事件处理器│ ├── ready.js│ └── interactionCreate.js├── .env└── package.json使用建议开发流程建议先使用服务器命令Guild Commands进行测试即时生效测试完成后部署全局命令Global Commands可能需要1小时传播仅请求必需的意图避免使用特权意图为大规模应用提前规划分片架构使用队列模式处理批量操作避免触发速率限制技术要点框架版本Discord.js v14、Pycord最新版命令系统斜杠命令Slash Commands意图管理最小化特权意图请求交互响应3秒内确认延迟响应最长15分钟分片要求2500服务器必需速率限制每秒约50个请求安全边际40个
返回列表