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
Lepaskan: 2025-01-04 05:43:40
asal
640 orang telah melayarinya

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) => {});
Salin selepas log masuk

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];
Salin selepas log masuk

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) {}
Salin selepas log masuk

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();
Salin selepas log masuk

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' });
Salin selepas log masuk

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();
Salin selepas log masuk

Enums

v14 memerlukan nombor untuk enum parameter:

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

// Fixed
new ButtonBuilder()
  .setCustomId('verification')
  .setStyle(ButtonStyle.Primary)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan