質問するログイン新規登録

Q&A

解決済

2回答

2965閲覧

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

0

0

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.29%

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

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

質問する

関連した質問