Home >Web Front-end >JS Tutorial >How to Migrate My Discord.js v11 Code to v12?
Migrating Your Code to Discord.js v12 from v11: A Comprehensive Guide
After upgrading to Discord.js v12, you may encounter errors due to breaking changes from v11. This article will guide you through the most common breaking changes and provide solutions to migrate your code successfully.
Manager Changes
Several properties on client and guild objects are now accessed through managers (e.g., client.users, guild.roles). To obtain the cached collection, use the cache property:
const user = client.users.cache.get('123456789012345678'); const role = message.guild.roles.cache.find(r => r.name === 'Admin');
Methods such as GuildMember#addRole, Guild#createChannel, and TextBasedChannel#fetchMessages have been moved to the respective managers:
await message.member.roles.add(role); await message.guild.channels.create('welcome'); const messages = await message.channel.messages.fetch();
Collection Updates
The Collection class now only accepts functions for .find and .findKey. Replace property keys and values with functions:
// v11: collection.find('property', 'value') collection.find(item => item.property === 'value');
Other removed Collection methods include:
RichEmbed to MessageEmbed
The RichEmbed class is replaced by MessageEmbed. All embeds, including received ones, now use MessageEmbed:
const {MessageEmbed} = require('discord.js'); const embed = new MessageEmbed();
The addBlankField method is removed. To add a blank field, use:
embed.addField('\u200B', '\u200B');
Voice Changes
All VoiceConnection/VoiceBroadcast#play* methods are consolidated into a single play method:
const dispatcher = connection.play('./music.mp3');
Client#createVoiceBroadcast is moved to the ClientVoiceManager:
const broadcast = client.voice.createVoiceBroadcast();
StreamDispatcher extends Node.js' stream.Writable, so use dispatcher.destroy() instead of dispatcher.end().
Image URLs
Properties like User#displayAvatarURL and Guild#iconURL are now methods:
const avatar = user.displayAvatarURL(); const icon = message.guild.iconURL();
For more details and breaking changes, refer to the official Discord.js documentation.
The above is the detailed content of How to Migrate My Discord.js v11 Code to v12?. For more information, please follow other related articles on the PHP Chinese website!