v11에서 Discord.js 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 클래스는 .find 및 .findKey에 대한 함수만 허용합니다. 속성 키와 값을 함수로 대체:
// v11: collection.find('property', 'value') collection.find(item => item.property === 'value');
기타 제거된 컬렉션 방법 포함:
RichEmbed 에게 MessageEmbed
RichEmbed 클래스는 MessageEmbed로 대체되었습니다. 수신된 삽입을 포함한 모든 삽입은 이제 MessageEmbed를 사용합니다.
const {MessageEmbed} = require('discord.js'); const embed = new MessageEmbed();
addBlankField 메서드가 제거되었습니다. 빈 필드를 추가하려면 다음을 사용하세요.
embed.addField('\u200B', '\u200B');
Voice Changes
모든 VoiceConnection/VoiceBroadcast#play* 메소드가 단일로 통합됩니다. 놀다 메서드:
const dispatcher = connection.play('./music.mp3');
Client#createVoiceBroadcast가 ClientVoiceManager:
const broadcast = client.voice.createVoiceBroadcast();
StreamDispatcher로 이동되어 Node.js의 stream.Writable을 확장하므로 디스패처 대신 Dispatcher.destroy()를 사용하세요. end().
이미지 URL
User#displayAvatarURL 및 Guild#iconURL과 같은 속성은 이제 메소드입니다.
const avatar = user.displayAvatarURL(); const icon = message.guild.iconURL();
자세한 내용과 주요 변경 사항은 공식 Discord.js 문서를 참조하세요.
위 내용은 내 Discord.js v11 코드를 v12로 마이그레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!