Maison > interface Web > js tutoriel > Comment réussir la migration de mon bot Discord.js de la v11 vers la v12 ?

Comment réussir la migration de mon bot Discord.js de la v11 vers la v12 ?

DDD
Libérer: 2024-11-24 17:12:15
original
1120 Les gens l'ont consulté

How to Successfully Migrate My Discord.js Bot from v11 to v12?

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');
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 utilise désormais des fonctions pour .find et .findKey :

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

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()));
Copier après la connexion

. 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`));
Copier après la connexion

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();
Copier après la connexion

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

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

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');
Copier après la connexion

Le client#createVoiceBroadcast a été déplacé vers 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

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();
Copier après la connexion

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!

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