> 웹 프론트엔드 > JS 튜토리얼 > Discord.js v13에서 v14로 업그레이드: 일반적인 오류를 어떻게 수정합니까?

Discord.js v13에서 v14로 업그레이드: 일반적인 오류를 어떻게 수정합니까?

Mary-Kate Olsen
풀어 주다: 2025-01-04 05:43:40
원래의
667명이 탐색했습니다.

Discord.js v13 to v14 Upgrade: How Do I Fix the Common Errors?

Discord.js v14: 업그레이드 오류 처리

Discord.js v13에서 v14로 업그레이드할 때 다양한 오류가 발생할 수 있습니다. 각각의 문제를 해결하고 해결책을 제시해보겠습니다.

메시지 및 상호작용 이벤트

메시지 및 상호작용 이벤트가 삭제되었습니다. 대신 messageCreate 및 상호작용Create를 사용하세요.

// v13
client.on('message', (message) => {});
client.on('interaction', (interaction) => {});

// v14
client.on('messageCreate', (message) => {});
client.on('interactionCreate', (interaction) => {});
로그인 후 복사

Intents

v14는 새로운 GatewayIntentBits 열거형을 사용합니다. 이에 따라 코드를 업데이트하세요.

// v13
const intents = [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES];

// v14
const intents = [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages];
로그인 후 복사

상호작용

일부 상호작용 유형 가드가 제거되었습니다. InteractionType 열거형과 상호 작용 유형을 비교합니다.

// v13
if (interaction.isCommand()) {}
if (interaction.isAutocomplete()) {}
if (interaction.isMessageComponent()) {}
if (interaction.isModalSubmit()) {}

// v14
if (interaction.type === InteractionType.ApplicationCommand) {}
if (interaction.type === InteractionType.ApplicationCommandAutocomplete) {}
if (interaction.type === InteractionType.MessageComponent) {}
if (interaction.type === InteractionType.ModalSubmit) {}
로그인 후 복사

채널

채널에 대한 유형 가드가 제거되었습니다. ChannelType 열거형을 사용하여 채널 범위를 좁힙니다.

// v13
if (message.channel.isText()) {}
if (message.channel.isVoice()) {}
if (message.channel.isDM()) {}
if (message.channel.isCategory()) {}

// v14
if (channel.type === ChannelType.GuildText) {}
if (channel.type === ChannelType.GuildVoice) {}
if (channel.type === ChannelType.DM) {}
if (channel.type === ChannelType.GuildCategory) {}

// New type guards
channel.isDMBased();
channel.isTextBased();
channel.isVoiceBased();
로그인 후 복사

Builders 및 Embeds

MessageEmbed는 EmbedBuilder로 이름이 변경되었습니다. MessageAttachment는 AttachmentBuilder로 이름이 바뀌었고 AttachmentData 개체를 사용합니다.

// v13
const embed = new MessageEmbed();
const attachment = new MessageAttachment(buffer, 'image.png');

// v14
const embed = new EmbedBuilder();
const attachment = new AttachmentBuilder(buffer, { name: 'image.png' });
로그인 후 복사

MessageComponent 빌더의 이름이 바뀌었고 빌더 접미사가 있습니다.

// v13
const button = new MessageButton();
const actionRow = new MessageActionRow();
const selectMenu = new MessageSelectMenu();
const textInput = new TextInputComponent();

// v14
const button = new ButtonBuilder();
const actionRow = new ActionRowBuilder();
const selectMenu = new SelectMenuBuilder();
const textInput = new TextInputBuilder();
로그인 후 복사

Enums

v14에 필요합니다. 열거형의 숫자 매개변수:

// Wrong
new ButtonBuilder()
  .setCustomId('verification')
  .setStyle('PRIMARY')

// Fixed
new ButtonBuilder()
  .setCustomId('verification')
  .setStyle(ButtonStyle.Primary)
로그인 후 복사

활동 유형

setPresence 활동 유형은 "PLAYING"으로만 설정할 수 있습니다.

메시지 콘텐츠

message.content가 다음과 같은 경우 비어 있으면 GatewayIntentBits.MessageContent가 인텐트 배열에 포함되어 있는지 확인하세요.

참조 주요 변경 사항의 전체 목록을 보려면 Discord.js 가이드를 참조하세요: https://discordjs.guide/additional-info/changes-in-v14.html

위 내용은 Discord.js v13에서 v14로 업그레이드: 일반적인 오류를 어떻게 수정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿