>웹 프론트엔드 >JS 튜토리얼 >Discord.js v11에서 v12로 마이그레이션: 주요 변경 사항은 무엇이며 어떻게 해결합니까?

Discord.js v11에서 v12로 마이그레이션: 주요 변경 사항은 무엇이며 어떻게 해결합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-02 11:06:11655검색

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();

컬렉션

컬렉션 클래스는 이제 .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');

Voice

모든 VoiceConnection/VoiceBroadcast#play*** 메소드가 단일 재생 메소드로 통합되었습니다.

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

Client#createVoiceBroadcast가 다음으로 이동되었습니다. ClientVoiceManager:

const broadcast = client.voice.createVoiceBroadcast();

이미지 URL

User#displayAvatarURL 및 Guild#iconURL과 같은 속성은 이제 ImageURLOptions 개체를 사용하여 크기와 형식을 사용자 정의할 수 있는 메서드입니다.

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

추가 리소스

Discord.js v12에 도입된 주요 변경 사항에 대한 보다 포괄적인 개요를 보려면 업데이트 가이드, 변경 로그 및 문서를 참조하세요.

위 내용은 Discord.js v11에서 v12로 마이그레이션: 주요 변경 사항은 무엇이며 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.