Heim > Web-Frontend > js-Tutorial > Upgrade von Discord.js v13 auf v14: Wie behebe ich die häufigsten Fehler?

Upgrade von Discord.js v13 auf v14: Wie behebe ich die häufigsten Fehler?

Mary-Kate Olsen
Freigeben: 2025-01-04 05:43:40
Original
688 Leute haben es durchsucht

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

Discord.js v14: Umgang mit Upgrade-Fehlern

Beim Upgrade von Discord.js v13 auf v14 können verschiedene Fehler auftreten. Lassen Sie uns jedes Problem angehen und Lösungen anbieten.

Nachrichten- und Interaktionsereignisse

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) => {});
Nach dem Login kopieren

Intents

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];
Nach dem Login kopieren

Interaktionen

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) {}
Nach dem Login kopieren

Kanäle

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();
Nach dem Login kopieren

Builder und Embeds

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' });
Nach dem Login kopieren

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();
Nach dem Login kopieren

Enums

v14 erfordert Zahlen für Enum-Parameter:

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

// Fixed
new ButtonBuilder()
  .setCustomId('verification')
  .setStyle(ButtonStyle.Primary)
Nach dem Login kopieren

Aktivität Typen

setPresence-Aktivitätstyp kann nur auf „PLAYING“ festgelegt werden.

Nachrichteninhalt

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage