Discord.js v14 重大變更:詳細分析
重大變更概述
Discord . js v14 引入了許多重大更改,主要是由於它過渡到Discord API v10。這些變更需要 Node 16.9 或更高版本,並影響庫的各個方面,包括訊息和互動事件、意圖、互動、通道、建構器和嵌入、枚舉以及活動類型。
訊息和互動事件
訊息和互動事件已被刪除。相反,您可以分別使用 messageCreate 和 interactionCreate 事件。
Intents
Intents 現在需要 GatewayIntentBits 列舉而不是 FLAGS。例如,要存取 GUILDS 和 GUILD_MESSAGES,您可以使用:
const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, ], });
互動
互動類型防護已被刪除。相反,將 interaction.type 與 InteractionType 枚舉進行比較:
const { InteractionType } = require('discord.js'); // v14 if (interaction.type === InteractionType.ApplicationCommand) {}
Channels
頻道類型防護已被刪除。將channel.type與ChannelType枚舉進行比較:
const { ChannelType } = require('discord.js'); // v14 if (channel.type === ChannelType.GuildText) {}
建構器和嵌入
MessageEmbed已重新命名為EmbedBuilder。 MessageAttachment 已重新命名為 AttachmentBuilder,並接受 AttachmentData 物件而不是第二個參數。 MessageComponents 已重新命名,以刪除 Message 前綴並添加 Builder 後綴:
// v14 const { EmbedBuilder } = require('discord.js'); const embed = new EmbedBuilder(); // v14 const { AttachmentBuilder } = require('discord.js'); const attachment = new AttachmentBuilder(buffer, { name: 'image.png' }); // v14 const { ButtonBuilder } = require('discord.js'); const button = new ButtonBuilder();
Enums
Enums 現在只接受數字。任何先前接受字串或數字的區域現在都需要數字:
// Fixed const { ButtonStyle } = require('discord.js'); new ButtonBuilder() .setCustomId('verification') .setStyle(ButtonStyle.Primary)
活動類型
setPresence 中的活動類型現在只能設定為“PLAYING” 。 「
額外資訊
有關重大更改的更全面信息,請參閱Discord.js 指南:https://discordjs.guide/additional-info/changes- in-v14.html。
以上是Discord.js v14 有哪些關鍵的重大變化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!