Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menghijrahkan Kod Discord.js v11 Saya kepada v12?

Bagaimana untuk Menghijrahkan Kod Discord.js v11 Saya kepada v12?

DDD
DDDasal
2024-11-27 13:38:10717semak imbas

How to Migrate My Discord.js v11 Code to v12?

Memindahkan Kod Anda ke Discord.js v12 daripada v11: Panduan Komprehensif

Selepas menaik taraf kepada Discord.js v12, anda mungkin menghadapi ralat disebabkan perubahan pecah dari v11. Artikel ini akan membimbing anda melalui perubahan pecah yang paling biasa dan menyediakan penyelesaian untuk memindahkan kod anda dengan jayanya.

Perubahan Pengurus

Beberapa sifat pada objek klien dan guild kini diakses melalui pengurus (cth., client.users, guild.roles). Untuk mendapatkan koleksi cache, gunakan sifat cache:

const user = client.users.cache.get('123456789012345678');
const role = message.guild.roles.cache.find(r => r.name === 'Admin');

Kaedah seperti GuildMember#addRole, Guild#createChannel dan TextBasedChannel#fetchMessages telah dialihkan ke pengurus masing-masing:

await message.member.roles.add(role);
await message.guild.channels.create('welcome');
const messages = await message.channel.messages.fetch();

Kemas Kini Koleksi

Koleksi kelas kini hanya menerima fungsi untuk .find dan .findKey. Gantikan kunci dan nilai sifat dengan fungsi:

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

Kaedah Pengumpulan lain yang dialih keluar termasuk:

  • .wujud
  • .deleteAll
  • .filterArray
  • .findAll

RichEmbed kepada MessageEmbed

The Kelas RichEmbed digantikan dengan MessageEmbed. Semua benaman, termasuk yang diterima, kini menggunakan MessageEmbed:

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

Kaedah addBlankField dialih keluar. Untuk menambah medan kosong, gunakan:

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

Perubahan Suara

Semua Kaedah VoiceConnection/VoiceBroadcast#play* disatukan menjadi satu kaedah main:

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

Pelanggan#createVoiceBroadcast ialah dipindahkan ke ClientVoiceManager:

const broadcast = client.voice.createVoiceBroadcast();

StreamDispatcher memanjangkan strim Node.js. Boleh ditulis, jadi gunakan dispatcher.destroy() bukannya dispatcher.end().

URL Imej

Sifat seperti User#displayAvatarURL dan Guild#iconURL kini ialah kaedah:

const avatar = user.displayAvatarURL();
const icon = message.guild.iconURL();

Untuk butiran lanjut dan perubahan terkini, rujuk dokumentasi Discord.js rasmi.

Atas ialah kandungan terperinci Bagaimana untuk Menghijrahkan Kod Discord.js v11 Saya kepada v12?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn