首頁 >web前端 >js教程 >如何成功地將我的 Discord.js 機器人從 v11 遷移到 v12?

如何成功地將我的 Discord.js 機器人從 v11 遷移到 v12?

DDD
DDD原創
2024-11-24 17:12:151066瀏覽

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

Discord.js v12 遷移指南:從v11 到v12 的程式碼遷移

遷移到Discord.js v12 可能會因重大變更而導致錯誤。這是解決這些問題並確保順利遷移的指南。

管理者

先前快取的屬性(如 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

Collection 類別現在使用函數對於.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 替換,現在使用MessageEmbed對於所有嵌入:

const {MessageEmbed} = require('discord.js');
const embed = new MessageEmbed();

addBlankField 方法已被刪除。要添加空白字段,請使用:

embed.addField('\u200B', '\u200B');

語音

所有播放方法現在統一在一個播放方法下:

const dispatcher = connection.play('./music.mp3');

Client#createVoiceBroadcast已移至ClientVoiceManager:

const broadcast = client.voice.createVoiceBroadcast();

StreamDispatcher 擴充了 Node.js 的流。可寫,因此使用dispatcher.destroy() 而不是dispatcher.end()。

圖像 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn