前提・実現したいこと
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}
回答1件
あなたの回答
tips
プレビュー