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

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

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

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

JavaScript

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

Q&A

解決済

1回答

1031閲覧

【discord.js】 TypeErrorを解決できない

merunno

総合スコア3

Discord

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

JavaScript

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

0グッド

0クリップ

投稿2021/05/07 14:27

前提・実現したいこと

JavaScript(node.js) のdiscord.jsでBotを作成しています。
その中でユーザー情報を参照する機能を作っています。

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

C:\Users\piki0\Documents\disbot_discord.js\saki\commands\info\userinfo.js:16 const user_client_status = message.author.presence.clientStatus; ^ TypeError: Cannot read property 'presence' of undefined at Object.run (C:\Users\piki0\Documents\disbot_discord.js\saki\commands\info\userinfo.js:16:51) at Client.<anonymous> (C:\Users\piki0\Documents\disbot_discord.js\saki\run.js:43:13) at Client.emit (events.js:315:20) at MessageCreateAction.handle (C:\Users\piki0\Documents\disbot_discord.js\saki\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14) at Object.module.exports [as MESSAGE_CREATE] (C:\Users\piki0\Documents\disbot_discord.js\saki\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) at WebSocketManager.handlePacket (C:\Users\piki0\Documents\disbot_discord.js\saki\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31) at WebSocketShard.onPacket (C:\Users\piki0\Documents\disbot_discord.js\saki\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22) at WebSocketShard.onMessage (C:\Users\piki0\Documents\disbot_discord.js\saki\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10) at WebSocket.onMessage (C:\Users\piki0\Documents\disbot_discord.js\saki\node_modules\ws\lib\event-target.js:132:16) at WebSocket.emit (events.js:315:20)

該当のソースコード

js

1const { MessageEmbed } = require('discord.js') 2 3module.exports = { 4 name: "userinfo", 5 enabled: true, 6 description: "ユーザー情報の参照", 7 run: (message, client, guild, user) => { 8 const user_client_status = message.author.presence.clientStatus; 9 let user_status = message.author.status; //ユーザーのオンライン状況の取得 10 11 if(user_status === 'online') { 12 user_status = "オンライン"; 13 } else if(user_status === 'offline') { 14 user_status = "オフライン"; 15 } else if(user_status === 'dnd') { 16 user_status = "取り込み中"; 17 } else if(user_status === 'idle') { 18 user_status = "離席表示中" 19 } 20 21 message.channel.send( 22 new MessageEmbed() 23 .setTitle('ユーザー情報') 24 .setDescription(`${message.author.username} の ユーザーデータを表示中`) 25 .setThumbnail(`${message.author.avatarURL()}`) 26 .addField('ユーザーネーム', `${message.author.username}`, true) 27 .addField('ユーザーID', `${message.author.id}`, true) 28 .addField('ユーザー判定', user.bot ? "ユーザー":"BOT", true) 29 .addField('オンライン状況', `${user_status}`, true) 30 .addField('ユーザークライアント情報', [ 31 '```asciidoc', 32 'デスクトップ版 :: ' + (user_client_status || '未ログイン'), 33 'モバイル版 :: ' + (user_client_status || '未ログイン'), 34 'ブラウザ版(未推奨) :: ' + (user_client_status || '未ログイン'), 35 '```' 36 ]) 37 .addField('アカウント作成日時', `${message.author.createdAt}`) 38 ) 39 .catch(console.error); 40 } 41}

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

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

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

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

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

GrapeColor

2021/05/07 14:46

node.jsとdiscord.jsのバージョンを教えてください。
merunno

2021/05/07 15:14

node.jsは v14.16.0 discord.jsは v12.5.3です。
guest

回答1

0

ベストアンサー

エラーメッセージを見る限りでは、message.authorundefinedなようなので、そもそもmessageMessage型なのかは確認しておいた方がいいと思います。

投稿2021/05/07 14:54

GrapeColor

総合スコア53

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

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

merunno

2021/05/07 15:45

解決しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問