Guide de migration Discord.js v12 : migration du code de la v11 à la v12
La migration vers Discord.js v12 peut provoquer des erreurs en raison de modifications importantes . Voici un guide pour résoudre ces problèmes et assurer une migration fluide.
Managers
Les propriétés précédemment mises en cache telles que client.users et Guild#roles sont désormais des managers. Accédez à la collection mise en cache via 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 leurs gestionnaires respectifs :
await message.member.roles.add(role); await message.guild.channels.create('welcome'); const messages = await message.channel.messages.fetch();
Collection
La classe Collection utilise désormais des fonctions pour .find et .findKey :
// v11: collection.find('property', 'value') collection.find(item => item.property === 'value');
Des méthodes telles que .exists, .deleteAll et .filterArray ont été supprimées :
// v11: collection.exists('property', 'value') collection.some(item => item.property === 'value'); // v11: collection.deleteAll() Promise.all(collection.map(item => item.delete()));
. exécute désormais une fonction sur la collection elle-même, et non sur ses éléments :
// v11: collection.tap(item => console.log(item)) collection.each(item => console.log(item)); // New .tap behaviour: collection.tap(coll => console.log(`${coll.size} items`));
RichEmbed/MessageEmbed
La classe RichEmbed a été remplacée par MessageEmbed, qui est désormais utilisée pour toutes les intégrations :
const {MessageEmbed} = require('discord.js'); const embed = new MessageEmbed();
La méthode addBlankField a été supprimée. Pour ajouter un champ vide, utilisez :
embed.addField('\u200B', '\u200B');
Voix
Toutes les méthodes de jeu sont désormais unifiées sous une seule méthode de jeu :
const dispatcher = connection.play('./music.mp3');
Le client#createVoiceBroadcast a été déplacé vers 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
Propriétés telles que User#displayAvatarURL et Guild#iconURL sont désormais des méthodes, renvoyant un objet ImageURLOptions pour personnalisation :
const avatar = user.displayAvatarURL(); const icon = mesage.guild.iconURL();
Informations complémentaires
Pour plus de détails sur les dernières modifications, reportez-vous au [guide de mise à jour](https://discordjs.guide/additional -info/changes/v12.html) et [journal des modifications](https://github.com/discordjs/discord.js/blob/main/CHANGELOG.md#v1200). La [documentation Discord.js](https://discord.js.org/#/docs) fournit également une aide précieuse.
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!