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

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

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

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

6204閲覧

Discord..js v11.6.4 から v13.1.0にアップデートしたらコードが動かなくなった

TOFUchan28

総合スコア1

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/09/12 00:28

前提・実現したいこと

Discord.js 11.6.4からdiscord.js 13.1.0にバージョンアップ
したんですけどGlitchのテンプレートに最初からあった
const http = require('http');とか書いてあるところに
なんて書けばいいかわかりません。

発生している問題・エラーメッセージ

エラーメッセージはでてないですが いろんなコードを試しても動きませんでした。

該当のソースコード

discord.js

1 2const http = require('http'); 3const querystring = require('querystring'); 4const discord = require('discord.js'); 5const { Client, Intents } = require('discord.js'); 6 7const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] }); 8 9http.createServer(function(req, res){ 10 if (req.method == 'POST'){ 11 var data = ""; 12 req.on('data', function(chunk){ 13 data += chunk; 14 }); 15 req.on('end', function(){ 16 if(!data){ 17 res.end("No post data"); 18 return; 19 } 20 var dataObject = querystring.parse(data); 21 console.log("post:" + dataObject.type); 22 if(dataObject.type == "wake"){ 23 console.log("Woke up in post"); 24 res.end(); 25 return; 26 } 27 res.end(); 28 }); 29 } 30 else if (req.method == 'GET'){ 31 res.writeHead(200, {'Content-Type': 'text/plain'}); 32 res.end('Discord Bot is active now\n'); 33 } 34}).listen(3000); 35 36client.on('ready', message =>{ 37 console.log('Bot準備完了~'); 38 client.user.setPresence({ activity: { name: 'げーむ' } }); 39}); 40 41client.on('message', message =>{ 42 if (message.author.id == client.user.id || message.author.bot){ 43 return; 44 } 45 if(message.mentions.has(client.user)) { 46 sendReply(message, "呼びましたか?"); 47 return; 48 } 49 if (message.content.match(/にゃ~ん|にゃーん/)){ 50 51 let text = "にゃ~ん"; 52 sendMsg(message.channel.id, text); 53 return; 54 } 55}); 56 57if(process.env.DISCORD_BOT_TOKEN == undefined){ 58 console.log('DISCORD_BOT_TOKENが設定されていません。'); 59 process.exit(0); 60} 61 62client.login( process.env.DISCORD_BOT_TOKEN ); 63 64function sendReply(message, text){ 65 message.reply(text) 66 .then(console.log("リプライ送信: " + text)) 67 .catch(console.error); 68} 69 70function sendMsg(channelId, text, option={}){ 71 client.channels.get(channelId).send(text, option) 72 .then(console.log("メッセージ送信: " + text + JSON.stringify(option))) 73 .catch(console.error); 74} 75

試したこと

最初のうちはエラーが出てたからどこが間違っているかわかっていたんですけど
エラーメッセージが出なくなってからはどこを変えればいいのかわからなくなって
しまいました。

補足情報(FW/ツールのバージョンなど)

Discord.js v13 Glitchでやっています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

js

1const http = require('http'); 2const querystring = require('querystring'); 3const discord = require('discord.js'); 4const { Client, Intents } = require('discord.js'); 5 6const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] }); 7 8http.createServer(function(req, res){ 9 if (req.method == 'POST'){ 10 var data = ""; 11 req.on('data', function(chunk){ 12 data += chunk; 13 }); 14 req.on('end', function(){ 15 if(!data){ 16 res.end("No post data"); 17 return; 18 } 19 var dataObject = querystring.parse(data); 20 console.log("post:" + dataObject.type); 21 if(dataObject.type == "wake"){ 22 console.log("Woke up in post"); 23 res.end(); 24 return; 25 } 26 res.end(); 27 }); 28 } 29 else if (req.method == 'GET'){ 30 res.writeHead(200, {'Content-Type': 'text/plain'}); 31 res.end('Discord Bot is active now\n'); 32 } 33}).listen(3000); 34 35client.on('ready', () =>{ 36 console.log('Bot準備完了~'); 37 client.user.setPresence({ activity: { name: 'げーむ' } }); 38}); 39 40client.on('messageCreate', message =>{ 41 if (message.author.bot){ 42 return; 43 } 44 if(message.mentions.users.has(client.user)) { 45 message.reply("呼びましたか?"); 46 return; 47 } 48 if (message.content.match(/にゃ~ん|にゃーん/)){ 49 message.channel.send("にゃ〜ん"); 50 return; 51 } 52}); 53 54if(!process.env.DISCORD_BOT_TOKEN){ 55 console.log('DISCORD_BOT_TOKENが設定されていません。'); 56 process.exit(1); 57} 58 59client.login( process.env.DISCORD_BOT_TOKEN ); 60

これでどうでしょうか

投稿2021/09/12 04:12

Waki285

総合スコア2014

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

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

TOFUchan28

2021/09/12 11:28

ありがとうございます!ちゃんと動きました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問