ホームページ > ウェブフロントエンド > jsチュートリアル > Discord.js ボットを v11 から v12 に正常に移行するにはどうすればよいですか?

Discord.js ボットを v11 から v12 に正常に移行するにはどうすればよいですか?

DDD
リリース: 2024-11-24 17:12:15
オリジナル
1065 人が閲覧しました

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

Discord.js v12 移行ガイド: v11 から v12 へのコードの移行

Discord.js v12 への移行は破壊的な変更によりエラーが発生する可能性があります。これらの問題に対処し、スムーズな移行を確実にするためのガイドを次に示します。

マネージャー

client.users や Guild#role など、以前にキャッシュされたプロパティはマネージャーになりました。キャッシュ プロパティを通じてキャッシュされたコレクションにアクセスします:

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();
ログイン後にコピー

コレクション

コレクションクラスは .find と .findKey の関数を使用するようになりました:

// v11: collection.find('property', 'value')
collection.find(item => item.property === 'value');
ログイン後にコピー

.exists、.deleteAll、.filterArray などのメソッドは削除されました:

// v11: collection.exists('property', 'value')
collection.some(item => item.property === 'value');

// v11: collection.deleteAll()
Promise.all(collection.map(item => item.delete()));
ログイン後にコピー

。アイテムではなくコレクション自体に対して関数を実行するようになりました:

// 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

RichEmbed クラスは MessageEmbed に置き換えられ、現在使用されています。すべての埋め込みの場合:

const {MessageEmbed} = require('discord.js');
const embed = new MessageEmbed();
ログイン後にコピー

addBlankField メソッドには削除されました。空白のフィールドを追加するには、次を使用します:

embed.addField('\u200B', '\u200B');
ログイン後にコピー

Voice

すべての再生メソッドが 1 つの再生メソッドに統合されました:

const dispatcher = connection.play('./music.mp3');
ログイン後にコピー

Client#createVoiceBroadcast は、 ClientVoiceManager:

const broadcast = client.voice.createVoiceBroadcast();
ログイン後にコピー

StreamDispatcher は Node.js の stream.Writable を拡張するため、dispatcher.end() の代わりにdispatcher.destroy() を使用します。

画像 URL

User#displayAvatarURL などのプロパティGuild#iconURL はメソッドになり、カスタマイズ用に ImageURLOptions オブジェクトを返します。

const avatar = user.displayAvatarURL();
const icon = mesage.guild.iconURL();
ログイン後にコピー

詳細情報

重大な変更の詳細については、[更新中] を参照してください。ガイド](https://discordjs.guide/Additional-info/changes/v12.html) および[変更ログ](https://github.com/discordjs/discord.js/blob/main/CHANGELOG.md#v1200)。 [Discord.js ドキュメント](https://discord.js.org/#/docs) も貴重なサポートを提供します。

以上がDiscord.js ボットを v11 から v12 に正常に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート