ホームページ >ウェブフロントエンド >jsチュートリアル >Discord.js v13 から v14 へのアップグレード: 一般的なエラーを修正するにはどうすればよいですか?

Discord.js v13 から v14 へのアップグレード: 一般的なエラーを修正するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-04 05:43:40631ブラウズ

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

Discord.js 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) => {});

Intents

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) {}

Channels

チャネルの型ガードは削除されました。 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 and 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 ビルダーの名前が変更され、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();

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。