Maison > interface Web > js tutoriel > Migration de Discord.js v11 vers v12 : quelles sont les principales modifications majeures et comment puis-je les corriger ?

Migration de Discord.js v11 vers v12 : quelles sont les principales modifications majeures et comment puis-je les corriger ?

Barbara Streisand
Libérer: 2024-12-02 11:06:11
original
609 Les gens l'ont consulté

Discord.js v11 to v12 Migration: What are the Key Breaking Changes and How Do I Fix Them?

La migration de Discord.js v11 vers la v12

La mise à niveau vers Discord.js v12 peut casser le code existant de la v11. Cet article mettra en évidence certaines des modifications les plus courantes et proposera des solutions.

Managers

Les collections précédemment mises en cache, telles que les utilisateurs #clients et les#rôles de guilde, sont désormais des managers. Pour accéder à 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 leurs 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

Collection

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

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

Les modifications supplémentaires apportées à Collection incluent la suppression de .exists, .deleteAll, .filterArray et .findAll.

RichEmbed/MessageEmbed

La classe RichEmbed est obsolète. Utilisez plutôt la classe MessageEmbed :

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

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

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

Voice

Toutes les méthodes VoiceConnection/VoiceBroadcast#play*** ont été unifiées sous une seule méthode de lecture :

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

Le client#createVoiceBroadcast a été déplacé vers le ClientVoiceManager :

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

URL d'image

Des propriétés telles que User#displayAvatarURL et Guild#iconURL sont désormais des méthodes qui peuvent utiliser un objet ImageURLOptions pour personnaliser la taille et le format :

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

Supplémentaire Ressources

Pour un aperçu plus complet des dernières modifications introduites dans Discord.js v12, reportez-vous au guide de mise à jour, au journal des modifications et à la documentation.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal