Rumah >hujung hadapan web >tutorial js >Peningkatan Discord.js v13 hingga v14: Bagaimana Saya Membetulkan Ralat Biasa?

Peningkatan Discord.js v13 hingga v14: Bagaimana Saya Membetulkan Ralat Biasa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-04 05:43:40631semak imbas

Discord.js v13 to v14 Upgrade: How Do I Fix the Common Errors?

Discord.js v14: Menangani Ralat Peningkatan

Apabila menaik taraf daripada Discord.js v13 kepada v14, anda mungkin menghadapi pelbagai ralat. Mari kita atasi setiap isu dan berikan penyelesaian.

Peristiwa Mesej dan Interaksi

Mesej dan peristiwa interaksi telah dialih keluar. Sebaliknya, gunakan messageCreate dan interactionCreate:

// v13
client.on('message', (message) => {});
client.on('interaction', (interaction) => {});

// v14
client.on('messageCreate', (message) => {});
client.on('interactionCreate', (interaction) => {});

Intents

v14 menggunakan enum GatewayIntentBits baharu. Kemas kini kod anda dengan sewajarnya:

// v13
const intents = [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES];

// v14
const intents = [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages];

Interaksi

Sesetengah pengawal jenis interaksi telah dialih keluar. Bandingkan interaction.type dengan enum InteractionType:

// v13
if (interaction.isCommand()) {}
if (interaction.isAutocomplete()) {}
if (interaction.isMessageComponent()) {}
if (interaction.isModalSubmit()) {}

// v14
if (interaction.type === InteractionType.ApplicationCommand) {}
if (interaction.type === InteractionType.ApplicationCommandAutocomplete) {}
if (interaction.type === InteractionType.MessageComponent) {}
if (interaction.type === InteractionType.ModalSubmit) {}

Saluran

Pengadang jenis untuk saluran telah dialih keluar. Gunakan enum ChannelType untuk mengecilkan saluran:

// v13
if (message.channel.isText()) {}
if (message.channel.isVoice()) {}
if (message.channel.isDM()) {}
if (message.channel.isCategory()) {}

// v14
if (channel.type === ChannelType.GuildText) {}
if (channel.type === ChannelType.GuildVoice) {}
if (channel.type === ChannelType.DM) {}
if (channel.type === ChannelType.GuildCategory) {}

// New type guards
channel.isDMBased();
channel.isTextBased();
channel.isVoiceBased();

Pembina dan Benam

MessageEmbed telah dinamakan semula kepada EmbedBuilder. MessageAttachment telah dinamakan semula kepada AttachmentBuilder dan menggunakan objek AttachmentData:

// v13
const embed = new MessageEmbed();
const attachment = new MessageAttachment(buffer, 'image.png');

// v14
const embed = new EmbedBuilder();
const attachment = new AttachmentBuilder(buffer, { name: 'image.png' });

Pembina MessageComponent telah dinamakan semula dan mempunyai akhiran Builder:

// v13
const button = new MessageButton();
const actionRow = new MessageActionRow();
const selectMenu = new MessageSelectMenu();
const textInput = new TextInputComponent();

// v14
const button = new ButtonBuilder();
const actionRow = new ActionRowBuilder();
const selectMenu = new SelectMenuBuilder();
const textInput = new TextInputBuilder();

Enums

v14 memerlukan nombor untuk enum parameter:

// Wrong
new ButtonBuilder()
  .setCustomId('verification')
  .setStyle('PRIMARY')

// Fixed
new ButtonBuilder()
  .setCustomId('verification')
  .setStyle(ButtonStyle.Primary)

Jenis Aktiviti

setPresence jenis aktiviti hanya boleh ditetapkan kepada "MAIN."

Kandungan Mesej

Jika message.content ialah kosong, pastikan GatewayIntentBits.MessageContent disertakan dalam tatasusunan niat anda.

Rujuk kepada Panduan Discord.js untuk senarai komprehensif perubahan pecah: https://discordjs.guide/additional-info/changes-in-v14.html

Atas ialah kandungan terperinci Peningkatan Discord.js v13 hingga v14: Bagaimana Saya Membetulkan Ralat Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:React Lifecycle dalam inutesArtikel seterusnya:React Lifecycle dalam inutes