首頁 >web前端 >js教程 >如何將我的 Discord.js 機器人從 v13 遷移到 v14?

如何將我的 Discord.js 機器人從 v13 遷移到 v14?

Patricia Arquette
Patricia Arquette原創
2024-12-06 03:15:14983瀏覽

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 活動類型只能設定為「播放」。

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