質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

2768閲覧

discord.jsを利用したclient.on(メッセージ取得)を停止したい:I want to stop client.on (message acquisition) using discord

Rou_12

総合スコア2

Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/08/05 06:36

編集2021/08/05 16:13

discord.jsを使ったdiscord botについて質問です。

const client = new Discord.Client();

client.on('message', message => {});

この形式でメッセージを取得する際、
メッセージ取得(client.on)を停止する方法またはコマンドはありますか?

-------追記-------
returnによる1回だけ停止するのではなく、たとえば
client.on('message', message => {
if(message.content === 'test'){
console.log("test is sent")
}
});

としたとき、ユーザーがtestと送信し、test is sent がコンソールに表示され、2回目にtestと送信しても、ifに引っかからずにしたいので、常駐するclient.on()のメッセージの受け取りを停止したいという意味です。

-----------------------English------------------

I have a question about "discord bot" with "discord.js".

const client = new Discord.Client();

client.on('message', message => {});

When retrieving messages in this format,
Is there a way or command to stop message retrieval(client.on)?

------addition------
nstead of stopping only once by return, for example
client.on('message', message => {
if(message.content === 'test'){
console.log("test is sent")
}
});

If the user sends "test" and "test is sent" is displayed in the console, and the user sends "test" a second time, we don't want to get caught in the if, which means we want to stop the always resident client.on() from receiving the message.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tubuan

2021/08/05 11:44

メッセージ取得を停止するってどう言う意味ですか? もうちょっと詳しく教えてください
Rou_12

2021/08/05 13:03

メッセージありがとうございます。 .on()という関数を停止させたいという意味です。 for文やwhile文にはbreak;、function文でいうreturn;のように、 .on()関数を強制停止させるやり方、または関数を知りたいです。
guest

回答2

0

ベストアンサー

client.onceを使用できます。
onceにすると、messageイベントが1回しか起動しなくなります。

投稿2021/08/05 23:01

Waki285

総合スコア2014

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

return で処理を停止できます。

投稿2021/08/05 13:12

tubuan

総合スコア84

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Rou_12

2021/08/05 15:56

すみません、言葉足らずでした。 例として、 client.on('message', message => { if (message.content === 'test') { message.channel.send("テスト") return; }; }); としたとき、一回目にtestとユーザーが送信してif文を通過し、2回目以降はtestを送信してもif文を通過しないようにしたいので、client.on()自体を停止する関数またはコマンドを知りたいという意味でした。 誤解を生むような表現ですみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問