😲

discord.js ephemeral 非推奨について

2025/01/03に公開

はじめに

初めまして鈴也 蓮(スズナリ レノ)と申します。
本記事ではタイトルにもある通り、「discord.js ephemeral 非推奨について」話していこうと思います。

さっそく...

年始早々、Discord BOTの開発をしていると下のような警告メッセージがターミナルで突如発生!!

Warning: Supplying "ephemeral" for interaction response options is deprecated. Utilize flags instead.

どうやら、 ephemeral君 が非推奨になったから flags君 を使ってくれとのこと。

ephemeral ってなんぞや

Q. そもそも、 ephemeral君 ってだれ?

A. インタラクションの応答において「他のユーザーには見えない一時的なメッセージを送る」ためのオプションで、便利なショートカット(ヘルパー)です。

例:

if (interaction.commandName === 'test') {
    interaction.reply({
        content: 'Hello world!',
        ephemeral: true
    });
}

結果:

なんで非推奨になったのか

ephemeral君 がヘルパーであると言ったように、本来は flags君 を使ってオプションを適用させるのが正しい方法です。

開発者は ephemeral君 だけを特別扱いせず、コードの一貫性を保つため ephemeral君 を非推奨にしたと言えます。

flags を使って一時的なメッセージを送信する方法

Discord.js で flags君 を使って一時的なメッセージを送信する方法を3つ紹介します。

  1. MessageFlags を使う方法(推奨)
const { MessageFlags } = require('discord.js');

interaction.reply({
    content: 'Hello world!',
    flags: MessageFlags.Ephemeral
});
  1. フラグ名を文字列で指定する方法
interaction.reply({
    content: 'Hello world!',
    flags: 'Ephemeral'
});
  1. フラグの値を直接指定する方法
interaction.reply({
    content: 'Hello world!',
    flags: 64
});

おわり

最後まで見てくれてありがとうございますた。じゃね👋

Discussion