首頁 > web前端 > js教程 > Discord.js v11 到 v12 的遷移:有哪些關鍵的重大變更以及如何修復它們?

Discord.js v11 到 v12 的遷移:有哪些關鍵的重大變更以及如何修復它們?

Barbara Streisand
發布: 2024-12-02 11:06:11
原創
669 人瀏覽過

Discord.js v11 to v12 Migration: What are the Key Breaking Changes and How Do I Fix Them?

從 Discord.js v11 遷移到 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

現在的Collection 類別對於.find 和 .findKey,僅接受函數,而不接受屬性鍵和值:

// v11: collection.find('property', 'value')
collection.find(item => item.property === 'value');
登入後複製

Collection 的其他更改包括刪除 .exists、.deleteAll、.filterArray和.findAll.

RichEmbed/MessageEmbed

RichEmbed 類別已棄用。請改用 MessageEmbed 類別:

const {MessageEmbed} = require('discord.js');
const embed = new MessageEmbed();
登入後複製

addBlankField 方法也已被刪除。若要新增空白字段,請使用:

embed.addField('\u200B', '\u200B');
登入後複製

語音

所有VoiceConnection/VoiceBroadcast#play*** 方法已統一在單一🎜 >

const dispatcher = connection.play('./music.mp3');
登入後複製
Client#createVoiceBroadcast已移至ClientVoiceManager:

const broadcast = client.voice.createVoiceBroadcast();
登入後複製

映像URL

User#displayAvatarURL 和Guild#iconURL 等屬性現在是可以採用ImageURLOptions 物件來自訂大小和Guild#iconURL 等屬性現在是可以採用ImageURLOptions 物件來自訂大小和格式的物件方法:

const avatar = user.displayAvatarURL();
const icon = message.guild.iconURL();
登入後複製

額外資源

有關 Discord.js v12 中引入的重大變更的更全面概述,請參閱更新指南、變更日誌和文件。

以上是Discord.js v11 到 v12 的遷移:有哪些關鍵的重大變更以及如何修復它們?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板