ホームページ >ウェブフロントエンド >jsチュートリアル >Discord.js v13 から v14 へのアップグレード: 一般的なエラーを修正するにはどうすればよいですか?
Discord.js v13 から v14 にアップグレードするときに、さまざまなエラーが発生する可能性があります。それぞれの問題に対処し、解決策を提供しましょう。
メッセージ イベントとインタラクション イベントは削除されました。代わりに、messageCreate と interactionCreate を使用します。
// 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];
一部のインタラクション タイプのガードが削除されました。 interaction.type を 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 ビルダーの名前が変更され、Builder サフィックスが付きます:
// 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 中国語 Web サイトの他の関連記事を参照してください。