コードを v11 から Discord.js v12 に移行する: 総合ガイド
Discord.js v12 にアップグレードした後、エラーが発生する場合がありますv11 からの重大な変更のため。この記事では、最も一般的な重大な変更について説明し、コードを正常に移行するためのソリューションを提供します。
マネージャーの変更
クライアントおよびギルド オブジェクトのいくつかのプロパティにアクセスできるようになりました。マネージャーを通じて (例: client.users、guild.roles)。キャッシュされたコレクションを取得するには、キャッシュ プロパティを使用します:
const user = client.users.cache.get('123456789012345678'); const role = message.guild.roles.cache.find(r => r.name === 'Admin');
GuildMember#addRole、Guild#createChannel、TextBasedChannel#fetchMessages などのメソッドは、それぞれのマネージャーに移動されました:
await message.member.roles.add(role); await message.guild.channels.create('welcome'); const messages = await message.channel.messages.fetch();
コレクション更新
Collection クラスは、.find および .findKey の関数のみを受け入れるようになりました。プロパティのキーと値を関数で置き換えます:
// v11: collection.find('property', 'value') collection.find(item => item.property === 'value');
その他の削除されたコレクション メソッドinclude:
RichEmbedにMessageEmbed
RichEmbed クラスは MessageEmbed に置き換えられます。受信したものを含むすべての埋め込みで MessageEmbed が使用されるようになりました:
const {MessageEmbed} = require('discord.js'); const embed = new MessageEmbed();
addBlankField メソッドが削除されました。空白のフィールドを追加するには、次を使用します。
embed.addField('\u200B', '\u200B');
Voice Changes
すべての VoiceConnection/VoiceBroadcast#play* メソッドは 1 つに統合されます。遊ぶMethod:
const dispatcher = connection.play('./music.mp3');
Client#createVoiceBroadcast は ClientVoiceManager:
const broadcast = client.voice.createVoiceBroadcast();
StreamDispatcher は Node.js の stream.Writable を拡張するため、dispatcher の代わりにdispatcher.destroy() を使用します。 end().
画像URL
User#displayAvatarURL や Guild#iconURL などのプロパティはメソッドになりました:
const avatar = user.displayAvatarURL(); const icon = message.guild.iconURL();
詳細と重大な変更については、公式の Discord.js ドキュメントを参照してください。
以上がDiscord.js v11 コードを v12 に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。