1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Discord.jsでサイレントメッセージを送る

Last updated at Posted at 2025-01-18

いろいろな記事を探して回りましたが、discord.jsでsilentのメッセージを送る方法がほとんど見つからなかったのでここに書いておきます。

環境
node.js v16.14.2
discord.js v13.14.0

以下のように書くことで、silentでメッセージを送信することができる。

Discord.js v14以降の場合、MessageFlagsではなくMessageFlagsBitFieldに変更されている。

code.js
//MessageFlagsを指定しておかないとエラーが出る.
const { MessageFlags } = require('discord.js');
const flags = MessageFlags;

//MessageFlags.bitfieldを4096にするとサイレントになる.
messsage.reply({content: 'silentメッセージです', flags: MessageFlags.bitfield=4096})

結果
スクリーンショット 2025-01-18 163245 (2).png


ちなみに、console.logでmessageの内容を出力すると、bitfieldが違うことが分かる。

silentメッセージ
<ref *1> Message {
  channelId: '0000000000000000000',
  guildId: '0000000000000000000',

  ...(中略)...
  
  webhookId: null,
  groupActivityApplication: null,
  applicationId: null,
  activity: null,
  flags: MessageFlags { bitfield: 4096 },
  reference: null,
  interaction: null
}
通常メッセージ
<ref *1> Message {
  channelId: '0000000000000000000',
  guildId: '0000000000000000000',

  ...(中略)...
  
  webhookId: null,
  groupActivityApplication: null,
  applicationId: null,
  activity: null,
  flags: MessageFlags { bitfield: 0 },
  reference: null,
  interaction: null
}

このように、通常メッセージはbitfieldが0,silentのメッセージはbitfieldが4096になっているため、
flags: MessageFlags.bitfield=4096を指定してやることでサイレントメッセージを送信できるわけです。

参考
https://stackoverflow.com/questions/76517603/how-to-send-a-silent-message-with-discord-js

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?