首页 >web前端 >js教程 >如何将我的 Discord.js 机器人从 v13 迁移到 v14?

如何将我的 Discord.js 机器人从 v13 迁移到 v14?

Patricia Arquette
Patricia Arquette原创
2024-12-06 03:15:14986浏览

How to Migrate My Discord.js Bot from v13 to v14?

Discord.js v14:重大更改和迁移指南

简介

从 Discord.js v13 到 v14 的升级引入了许多重大更改,其中一些其中可能会对现有代码产生重大影响。本文将指导您完成关键更改,并提供解决方案来解决迁移过程中遇到的任何错误。

重大更改

1.消息和交互事件

  • 消息和交互事件已被删除。
  • 改用 messageCreate 和 interactionCreate 事件。

2.意图

  • 意图已更新为使用 GatewayIntentBits 枚举。
  • 将字符串或数字意图替换为相应的 GatewayIntentBits 标志。

3。交互

  • 交互类型保护(例如,isCommand、isMessageComponent)已被删除。
  • 改用与 InteractionType 枚举的比较。

4.通道

  • 通道类型保护(例如 isDM、isText)已被删除。
  • 将 channel.type 与匹配的 ChannelType 枚举进行比较。

5。构建器和嵌入

  • MessageEmbed 已重命名为 EmbedBuilder。
  • MessageAttachment 使用 AttachmentData 对象而不是名称作为第二个参数。
  • MessageComponents 具有已重命名并需要带有 Builder 后缀的 Builder(例如 ButtonBuilder、 ActionRowBuilder)。

6。枚举

  • 所有枚举参数现在只接受数字。

7.活动类型

  • setPresence 活动类型只能设置为“PLAYING”。

8.消息内容

  • 如果 message.content 为空,请将 GatewayIntentBits.MessageContent 添加到意图数组中。

迁移指南

为了缓解重大变更,请考虑以下事项步骤:

  • 更新节点版本:升级到 Node 16.9 或更高版本。
  • 更新意图:

    // v13
    client.on('GUILDS', 'GUILD_MESSAGES', 'GUILD_MESSAGE_REACTIONS');
    // v14
    client.on(GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.GuildMessageReactions);
  • 重构交互守卫:

    // v13
    if (interaction.isCommand()) {}
    // v14
    if (interaction.type === InteractionType.ApplicationCommand) {}
  • 更新类型守卫者通道:

    // v13
    if (message.channel.isText()) {}
    // v14
    if (channel.type === ChannelType.GuildText) {}
  • 重命名嵌入和构建器:

    // v13
    const embed = new MessageEmbed();
    const button = new MessageButton();
    // v14
    const embed = new EmbedBuilder();
    const button = new ButtonBuilder();
  • 使用基于数字的常量:

    // v13
    new ButtonBuilder().setStyle('PRIMARY');
    // v14
    new ButtonBuilder().setStyle(ButtonStyle.Primary);

通过遵循这些准则,您可以成功将代码迁移到 Discord.js v14 并避免任何潜在的错误或中断。有关更改的全面概述,请参阅 Discord.js 指南:https://discordjs.guide/additional-info/changes-in-v14.html。

以上是如何将我的 Discord.js 机器人从 v13 迁移到 v14?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn