Maison > interface Web > js tutoriel > Comment migrer mon code Discord.js v11 vers la v12 ?

Comment migrer mon code Discord.js v11 vers la v12 ?

DDD
Libérer: 2024-11-27 13:38:10
original
750 Les gens l'ont consulté

How to Migrate My Discord.js v11 Code to v12?

Migration de votre code vers Discord.js v12 à partir de la v11 : un guide complet

Après la mise à niveau vers Discord.js v12, vous pouvez rencontrer des erreurs en raison de changements importants par rapport à la v11. Cet article vous guidera à travers les modifications les plus courantes et vous fournira des solutions pour migrer votre code avec succès.

Modifications du gestionnaire

Plusieurs propriétés sur les objets client et de guilde sont désormais accessibles via des gestionnaires (par exemple, client.users, guild.roles). Pour obtenir la collection mise en cache, utilisez la propriété cache :

const user = client.users.cache.get('123456789012345678');
const role = message.guild.roles.cache.find(r => r.name === 'Admin');
Copier après la connexion

Des méthodes telles que GuildMember#addRole, Guild#createChannel et TextBasedChannel#fetchMessages ont été déplacées vers les gestionnaires respectifs :

await message.member.roles.add(role);
await message.guild.channels.create('welcome');
const messages = await message.channel.messages.fetch();
Copier après la connexion

Mises à jour de la collection

La classe Collection n'accepte désormais que les fonctions pour .find et .findKey. Remplacez les clés et les valeurs de propriété par des fonctions :

// v11: collection.find('property', 'value')
collection.find(item => item.property === 'value');
Copier après la connexion

Autres méthodes de collecte supprimées inclure :

  • .exists
  • .deleteAll
  • .filterArray
  • .findAll

RichEmbed à MessageEmbed

La classe RichEmbed est remplacé par MessageEmbed. Toutes les intégrations, y compris celles reçues, utilisent désormais MessageEmbed :

const {MessageEmbed} = require('discord.js');
const embed = new MessageEmbed();
Copier après la connexion

La méthode addBlankField est supprimée. Pour ajouter un champ vide, utilisez :

embed.addField('\u200B', '\u200B');
Copier après la connexion

Changements vocaux

Toutes les méthodes VoiceConnection/VoiceBroadcast#play* sont regroupées en une seule méthode de lecture :

const dispatcher = connection.play('./music.mp3');
Copier après la connexion

Client#createVoiceBroadcast est déplacé vers le ClientVoiceManager :

const broadcast = client.voice.createVoiceBroadcast();
Copier après la connexion

StreamDispatcher étend le stream.Writable de Node.js, utilisez donc dispatcher.destroy() au lieu de dispatcher.end().

URL d'image

Les propriétés telles que User#displayAvatarURL et Guild#iconURL sont désormais méthodes :

const avatar = user.displayAvatarURL();
const icon = message.guild.iconURL();
Copier après la connexion

Pour plus de détails et les modifications importantes, reportez-vous à la documentation officielle de Discord.js.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal