Discord.js v13에서 v14로 업그레이드할 때 다양한 오류가 발생할 수 있습니다. 각각의 문제를 해결하고 해결책을 제시해보겠습니다.
메시지 및 상호작용 이벤트가 삭제되었습니다. 대신 messageCreate 및 상호작용Create를 사용하세요.
// v13 client.on('message', (message) => {}); client.on('interaction', (interaction) => {}); // v14 client.on('messageCreate', (message) => {}); client.on('interactionCreate', (interaction) => {});
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();
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();
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!