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

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

JavaScript

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

Q&A

1回答

1860閲覧

discord.jsのClickMenuにて、選択されたらまた選択式(ClickMenu)の文を出したい

zettau

総合スコア14

Discord

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

JavaScript

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

0グッド

1クリップ

投稿2021/10/01 20:00

編集2021/11/14 06:51

0

1

js

1 2client.on("message", async(message) =>{ 3 if (message.author.bot || !message.guild) return; 4 let args = message.content.toLowerCase().split(" "); 5 let command = args.shift() 6 if (command == prefix + 'buy') { 7 let idd = randomstring.generate({ length: 20 }) 8 let args = message.content.split(' ').slice(1).join(' '); 9 if (!args) args = `テスト` 10 let button1 = new MessageMenuOption() 11 .setLabel('A') 12 .setEmoji('????') 13 .setValue("1") 14 .setDescription('りんごって美味しいよね') 15 let button2 = new MessageMenuOption() 16 .setLabel('B') 17 .setEmoji('????') 18 .setValue("2") 19 .setDescription('梨の方が上手くね') 20 let select = new MessageMenu() 21 .setID(idd) 22 .setPlaceholder('どっちにする') 23 .setMaxValues(1) 24 .setMinValues(1) 25 .addOptions(button1, button2) 26 let embed = new Discord.MessageEmbed() 27 .setTitle(args) 28 .setDescription("てすと") 29 .setImage('https://media.discordapp.net/attachments/832667548575072267/832685933978976266/yeee.png') 30 .setThumbnail(message.guild.iconURL()) 31 .setTimestamp() 32 .setColor(`#33cd15`) 33 .setFooter(message.guild.name, message.guild.iconURL()) 34 let msg = await message.channel.send({ embed: embed, component: select }).then(async msg => { 35 msg.pin() 36 let log_embed = new Discord.MessageEmbed() 37 .setTitle(`A message has been sent to open new tickets`) 38 .addField(`Channel`, `<#${message.channel.id}>`) 39 .addField(`by`, `<@!` + message.author.id + `>`) 40 .setTimestamp() 41 .setColor(`#33cd15`) 42 .setFooter(message.guild.name, message.guild.iconURL()) 43 channelLog(log_embed) 44 }) 45 } 46 }) 47 48client.on("clickMenu", async (menu) => { 49 menu.reply.defer() 50 if(menu.values[0] === "1") { 51 let embed = new Discord.MessageEmbed() 52 .setTitle(`個数を選択してください`) 53 .setDescription('1~10までの個数で選択してください。') 54 .setTimestamp() 55 .setColor(`#33cd15`) 56 .setFooter(`Produced by せんちゃん.`) 57    menu.channel.send(embed) 58 } 59 if(menu.values[0] === "2") { 60 if (!args) args = `test` 61 let button1 = new MessageMenuOption() 62 .setLabel('あ') 63 .setEmoji('????') 64 .setValue("3") 65 .setDescription('a') 66 let button2 = new MessageMenuOption() 67 .setLabel('s') 68 .setEmoji('????') 69 .setValue("4") 70 .setDescription('びー') 71 let select = new MessageMenu() 72 .setID(idd) 73 .setPlaceholder('b') 74 .setMaxValues(1) 75 .setMinValues(1) 76 .addOptions(button3, button4) 77 let embed = new Discord.MessageEmbed() 78 .setTitle(args) 79 .setDescription("c") 80 .setImage('https://media.discordapp.net/attachments/832667548575072267/832685933978976266/yeee.png') 81 .setThumbnail(message.guild.iconURL()) 82 .setTimestamp() 83 .setColor(`#33cd15`) 84 .setFooter(message.guild.name, message.guild.iconURL()) 85 let msg = await message.channel.send({ embed: embed, component: select }).then(async msg => { 86 msg.pin() 87 let log_embed = new Discord.MessageEmbed() 88 .setTitle(`A message has been sent to open new tickets`) 89 .addField(`Channel`, `<#${message.channel.id}>`) 90 .addField(`by`, `<@!` + message.author.id + `>`) 91 .setTimestamp() 92 .setColor(`#33cd15`) 93 .setFooter(message.guild.name, message.guild.iconURL()) 94 channelLog(log_embed) 95 }) 96 } 97 }) 98
(node:223) UnhandledPromiseRejectionWarning: ReferenceError: args is not defined at Client.<anonymous> (/home/runner/Button-Tickets-Bot-2/index.js:317:5) at Client.emit (events.js:314:20) at WebSocketManager.<anonymous> (/home/runner/Button-Tickets-Bot-2/node_modules/discord-buttons/src/index.js:39:16) at WebSocketManager.emit (events.js:314:20) at WebSocketShard.onMessage (/home/runner/Button-Tickets-Bot-2/node_modules/discord.js/src/client/websocket/WebSocketShard.js:296:56) at WebSocket.onMessage (/home/runner/Button-Tickets-Bot-2/node_modules/ws/lib/event-target.js:132:16) at WebSocket.emit (events.js:314:20) at Receiver.receiverOnMessage (/home/runner/Button-Tickets-Bot-2/node_modules/ws/lib/websocket.js:970:20) at Receiver.emit (events.js:314:20) at Receiver.dataMessage (/home/runner/Button-Tickets-Bot-2/node_modules/ws/lib/receiver.js:517:14) at Receiver.getData (/home/runner/Button-Tickets-Bot-2/node_modules/ws/lib/receiver.js:435:17) at Receiver.startLoop (/home/runner/Button-Tickets-Bot-2/node_modules/ws/lib/receiver.js:143:22) at Receiver._write (/home/runner/Button-Tickets-Bot-2/node_modules/ws/lib/receiver.js:78:10) at doWrite (_stream_writable.js:403:12) at writeOrBuffer (_stream_writable.js:387:5) at Receiver.Writable.write (_stream_writable.js:318:11) (node:223) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:223) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

載せていたコードが違う物でしたので訂正しました。
エラーも載せました。

何故かクリックメニューのコードを打つとエラーが出てしまい、embedや普通のmessageは出来るのですがクリックメニューだけエラーが出てしまうという物になります。

どうしたらクリックメニューを選択したら違うクリックメニューを出すという物が出来ますかね?

恐縮ですが知識をおすそ分けして頂けたらなと思います

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

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

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

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

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

Waki285

2021/10/02 00:05

エラーを載せてもらえますか?
zettau

2021/10/02 00:40

編集し、更新させて頂きました。
guest

回答1

0

そもそもletを使用したのにletで再代入していることでエラーが出ないのはなぜだろう
書き直しました

js

1client.on("message", async (message) =>{ 2 if (message.author.bot || !message.guild) return; 3 const args = message.content.toLowerCase().slice(prefix.length).trim().split(" "); 4 const command = args.shift() 5 if (command === 'buy') { 6 let idd = randomstring.generate({ length: 20 }) 7 if (!args[0]) args = `テスト` 8 const button1 = new MessageMenuOption() 9 .setLabel('A') 10 .setEmoji('????') 11 .setValue("1") 12 .setDescription('りんごって美味しいよね') 13 const button2 = new MessageMenuOption() 14 .setLabel('B') 15 .setEmoji('????') 16 .setValue("2") 17 .setDescription('梨の方が上手くね') 18 const select = new MessageMenu() 19 .setID(idd) 20 .setPlaceholder('どっちにする') 21 .setMaxValues(1) 22 .setMinValues(1) 23 .addOptions(button1, button2) 24 let embed = new Discord.MessageEmbed() 25 .setTitle(args[0]) 26 .setDescription("てすと") 27 .setImage('https://media.discordapp.net/attachments/832667548575072267/832685933978976266/yeee.png') 28 .setThumbnail(message.guild.iconURL()) 29 .setTimestamp() 30 .setColor(`#33cd15`) 31 .setFooter(message.guild.name, message.guild.iconURL()) 32 message.channel.send({ embed: embed, component: select }) 33 .then(async msg => { 34 msg.pin() 35 const log_embed = new Discord.MessageEmbed() 36 .setTitle(`A message has been sent to open new tickets`) 37 .addField(`Channel`, `<#${message.channel.id}>`) 38 .addField(`by`, `<@!` + message.author.id + `>`) 39 .setTimestamp() 40 .setColor(`#33cd15`) 41 .setFooter(message.guild.name, message.guild.iconURL()) 42 channelLog(log_embed) 43 }) 44 } 45}) 46 47client.on("clickMenu", async (menu) => { 48 await menu.reply.defer() 49 if (menu.values[0] === "1") { 50 const embed = new Discord.MessageEmbed() 51 .setTitle(`個数を選択してください`) 52 .setDescription('1~10までの個数で選択してください。') 53 .setTimestamp() 54 .setColor(`#33cd15`) 55 .setFooter(`Produced by せんちゃん.`) 56    menu.channel.send(embed) 57 } 58 if(menu.values[0] === "2") { 59 const args = menu.message.embeds[0].title || `test` 60 const button1 = new MessageMenuOption() 61 .setLabel('あ') 62 .setEmoji('????') 63 .setValue("3") 64 .setDescription('a') 65 const button2 = new MessageMenuOption() 66 .setLabel('Netflix') 67 .setEmoji('????') 68 .setValue("4") 69 .setDescription('びー') 70 const select = new MessageMenu() 71 .setID(idd) 72 .setPlaceholder('b') 73 .setMaxValues(1) 74 .setMinValues(1) 75 .addOptions(button3, button4) 76 const embed = new Discord.MessageEmbed() 77 .setTitle(args) 78 .setDescription("c") 79 .setImage('https://media.discordapp.net/attachments/832667548575072267/832685933978976266/yeee.png') 80 .setThumbnail(menu.guild.iconURL()) 81 .setTimestamp() 82 .setColor(`#33cd15`) 83 .setFooter(menu.guild.name, menu.guild.iconURL()) 84 menu.channel.send({ embed: embed, component: select }).then(async msg => { 85 msg.pin() 86 let log_embed = new Discord.MessageEmbed() 87 .setTitle(`A message has been sent to open new tickets`) 88 .addField(`Channel`, `<#${menu.channel.id}>`) 89 .addField(`by`, `<@!` + menu.clicker.user.id + `>`) 90 .setTimestamp() 91 .setColor(`#33cd15`) 92 .setFooter(menu.guild.name, menu.guild.iconURL()) 93 channelLog(log_embed) 94 }) 95 } 96})

投稿2021/10/02 11:52

Waki285

総合スコア2014

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

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

zettau

2021/10/02 12:02

events.js:291 throw er; // Unhandled 'error' event ^ MongoNetworkError: connection 1 to 34.203.180.7:27017 closed at /home/runner/Button-Tickets-Bot-2/node_modules/mongodb/lib/cmap/connection.js:68:15 at Map.forEach (<anonymous>) at TLSSocket.<anonymous> (/home/runner/Button-Tickets-Bot-2/node_modules/mongodb/lib/cmap/connection.js:67:20) at TLSSocket.emit (events.js:314:20) at net.js:675:12 at TCP.done (_tls_wrap.js:568:7) Emitted 'error' event on Database instance at: at NativeConnection.<anonymous> (/home/runner/Button-Tickets-Bot-2/node_modules/quickmongo/src/Base.js:41:18) at NativeConnection.emit (events.js:314:20) at /home/runner/Button-Tickets-Bot-2/node_modules/mongoose/lib/connection.js:854:37 at processTicksAndRejections (internal/process/task_queues.js:79:11) exit status 1 エラーこのような物が出ますね。。。
Waki285

2021/10/02 12:07

MondoDBのエラーなのであなたがここに載せたコード外の部分ですね 私は対処できません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問