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
DDDoriginal
2024-11-27 13:38:10715parcourir

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');

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();

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');

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();

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

embed.addField('\u200B', '\u200B');

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');

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

const broadcast = client.voice.createVoiceBroadcast();

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();

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!

Déclaration:
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