>웹 프론트엔드 >JS 튜토리얼 >내 Discord.js 봇을 v11에서 v12로 성공적으로 마이그레이션하는 방법은 무엇입니까?

내 Discord.js 봇을 v11에서 v12로 성공적으로 마이그레이션하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-24 17:12:151013검색

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로 대체되었습니다. 모든 삽입의 경우:

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의 stream.Writable을 확장하므로 dispatcher.end() 대신 dispatcher.destroy()를 사용하십시오.

이미지 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으로 문의하세요.