Heim >Web-Frontend >js-Tutorial >Upgrade von Discord.js v13 auf v14: Wie behebe ich die häufigsten Fehler?
Beim Upgrade von Discord.js v13 auf v14 können verschiedene Fehler auftreten. Lassen Sie uns jedes Problem angehen und Lösungen anbieten.
Die Nachrichten- und Interaktionsereignisse wurden entfernt. Verwenden Sie stattdessen messageCreate und interactionCreate:
// v13 client.on('message', (message) => {}); client.on('interaction', (interaction) => {}); // v14 client.on('messageCreate', (message) => {}); client.on('interactionCreate', (interaction) => {});
v14 verwendet die neue GatewayIntentBits-Enumeration. Aktualisieren Sie Ihren Code entsprechend:
// v13 const intents = [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]; // v14 const intents = [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages];
Einige Interaktionstypschutzvorrichtungen wurden entfernt. Vergleichen Sie „interaction.type“ mit der InteractionType-Enumeration:
// 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) {}
Typschutz für Kanäle wurde entfernt. Verwenden Sie die ChannelType-Enumeration, um Kanäle einzugrenzen:
// 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();
MessageEmbed wurde in EmbedBuilder umbenannt. MessageAttachment wurde in AttachmentBuilder umbenannt und verwendet ein AttachmentData-Objekt:
// 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' });
MessageComponent-Builder wurden umbenannt und haben ein Builder-Suffix:
// 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();
v14 erfordert Zahlen für Enum-Parameter:
// Wrong new ButtonBuilder() .setCustomId('verification') .setStyle('PRIMARY') // Fixed new ButtonBuilder() .setCustomId('verification') .setStyle(ButtonStyle.Primary)
setPresence-Aktivitätstyp kann nur auf „PLAYING“ festgelegt werden.
Wenn message.content leer ist, stellen Sie sicher, dass GatewayIntentBits.MessageContent in Ihrem Intent-Array enthalten ist .
Eine umfassende Liste der wichtigsten Änderungen finden Sie im Discord.js-Leitfaden: https://discordjs.guide/additional-info/changes-in-v14.html
Das obige ist der detaillierte Inhalt vonUpgrade von Discord.js v13 auf v14: Wie behebe ich die häufigsten Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!