Heim > Artikel > Web-Frontend > Wie migriere ich meinen Discord.js-Bot erfolgreich von v11 auf v12?
Discord.js v12-Migrationsleitfaden: Codemigration von v11 auf v12
Die Migration auf Discord.js v12 kann aufgrund von Breaking Changes zu Fehlern führen . Hier ist eine Anleitung, um diese Probleme zu beheben und eine reibungslose Migration sicherzustellen.
Manager
Zuvor zwischengespeicherte Eigenschaften wie client.users und Guild#roles sind jetzt Manager. Greifen Sie über die Cache-Eigenschaft auf die zwischengespeicherte Sammlung zu:
const user = client.users.cache.get('123456789012345678'); const role = message.guild.roles.cache.find(r => r.name === 'Admin');
Methoden wie GuildMember#addRole, Guild#createChannel und TextBasedChannel#fetchMessages wurden zu ihren jeweiligen Managern verschoben:
await message.member.roles.add(role); await message.guild.channels.create('welcome'); const messages = await message.channel.messages.fetch();
Collection
Die Collection-Klasse verwendet jetzt Funktionen für .find und .findKey:
// v11: collection.find('property', 'value') collection.find(item => item.property === 'value');
Methoden wie .exists, .deleteAll und .filterArray wurden entfernt:
// v11: collection.exists('property', 'value') collection.some(item => item.property === 'value'); // v11: collection.deleteAll() Promise.all(collection.map(item => item.delete()));
. Führt jetzt eine Funktion für die Sammlung selbst aus, nicht für ihre Elemente:
// 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
Die RichEmbed-Klasse wurde durch MessageEmbed ersetzt, das jetzt verwendet wird für alle Einbettungen:
const {MessageEmbed} = require('discord.js'); const embed = new MessageEmbed();
Die addBlankField-Methode wurde entfernt. Um ein leeres Feld hinzuzufügen, verwenden Sie:
embed.addField('\u200B', '\u200B');
Stimme
Alle Spielmethoden sind jetzt unter einer einzigen Spielmethode vereint:
const dispatcher = connection.play('./music.mp3');
Client#createVoiceBroadcast wurde zum ClientVoiceManager:
const broadcast = client.voice.createVoiceBroadcast();
StreamDispatcher verschoben erweitert den stream.Writable von Node.js, also verwenden Sie „dispatcher.destroy()“ anstelle von „dispatcher.end()“.
Bild-URLs
Eigenschaften wie User#displayAvatarURL und Guild#iconURL sind jetzt Methoden, die ein ImageURLOptions-Objekt zurückgeben Anpassung:
const avatar = user.displayAvatarURL(); const icon = mesage.guild.iconURL();
Weitere Informationen
Weitere Details zu den bahnbrechenden Änderungen finden Sie im [Aktualisierungsleitfaden](https://discordjs.guide/additional -info/changes/v12.html) und [Änderungsprotokoll](https://github.com/discordjs/discord.js/blob/main/CHANGELOG.md#v1200). Die [Discord.js-Dokumentation](https://discord.js.org/#/docs) bietet ebenfalls wertvolle Hilfe.
Das obige ist der detaillierte Inhalt vonWie migriere ich meinen Discord.js-Bot erfolgreich von v11 auf v12?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!