亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Discord.JS v12 中查看用戶正在玩哪個游戲

如何在 Discord.JS v12 中查看用戶正在玩哪個游戲

呼喚遠方 2023-11-11 15:58:38
我正在通過在線指南的幫助開發一個不和諧的機器人。問題是,指南主要是 Discord.JS v11 指南,而我使用的是 Discord.JS v12。所以它對我幫助不大。我想了解如何獲取用戶正在使用 !userinfo 命令玩的游戲的名稱。除“游戲”字段外,所有字段均顯示正確的內容。我已經在開發者門戶中啟用了顯示狀態功能。它總是顯示“無”,盡管可能是因為它不是經過驗證的游戲名稱或類似 Zoom Classes(XD) 或未經驗證的名稱。你能告訴我修復方法嗎?代碼:            case "userinfo":                commandsrun = commandsrun + 1;                let user;                if (message.mentions.users.first()) {                    user = message.mentions.users.first();                    useralso = message.mentions.users.first();                } else {                    user = message.author;                    useralso = message.member;                    //i made useralso so it shows nickname correctly                }                const userStatus = {                    online: "Online",                    idle: "Idle/Inactive",                    dnd: "Busy/Do Not Disturb",                    offline: "Unavailable/Offline"                }                const mememb = message.guild.member(user)                Promise.resolve(mememb).then(function () {                    const memberemb = message.guild.members.fetch(user);                    Promise.resolve(memberemb).then(function (info) {                        var roles = info.roles.cache.map(roles => `${roles}`).join(', ');                        roles = roles.slice(0, -9);                        const embed = new Discord.MessageEmbed()                            .setColor("GREEN")                            .setThumbnail(message.author.avatarURL)                            .addField(`${user.tag}`, `${user}`, true)                    });                });                break;請告訴我修復方法并在您的答案中發送修復代碼。謝謝。
查看完整描述

1 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

您好,您已經告訴過您正在使用discord.js v12,您需要使用類activities中的屬性Presence。這是你必須做的 -

user.presence.activities[0].name // this will output the game or any other activity

但是,如果用戶使用自定義狀態,那么您可能會得到Name未定義的狀態,要解決這個問題,我們需要過濾數組!

var presence = user.presence.activities.filter(x=>x.type === "PLAYING") //outputs the presence which the user is playingpresence[0].name // will give the name of the game

你的最終輸出應該是 -

            case "userinfo":

                commandsrun = commandsrun + 1;

                let user;

                if (message.mentions.users.first()) {

                    user = message.mentions.users.first();

                    useralso = message.mentions.users.first();

                } else {

                    user = message.author;

                    useralso = message.member;

                    //i made useralso so it shows nickname correctly

                }

                const userStatus = {

                    online: "Online",

                    idle: "Idle/Inactive",

                    dnd: "Busy/Do Not Disturb",

                    offline: "Unavailable/Offline"

                }

                const mememb = message.guild.member(user)

                Promise.resolve(mememb).then(function () {

                   var presence = user.presence.activities.length ?user.presence.activities.filter(x=>x.type === "PLAYING") : null;

                    const memberemb = message.guild.members.fetch(user);

                    Promise.resolve(memberemb).then(function (info) {

                        var roles = info.roles.cache.map(roles => `${roles}`).join(', ');

                        roles = roles.slice(0, -9);

                        const embed = new Discord.MessageEmbed()

                            .setColor("GREEN")

                            .setThumbnail(message.author.avatarURL)

                            .addField(`${user.tag}`, `${user}`, true)

                            .addField("ID:", `${user.id}`, true)

                            .addField("Nickname:", `${useralso.nickname ? `${useralso.nickname}` : 'None'}`, true)

                            .addField("Status:", `${userStatus[user.presence.status]}`, true)

                            .addField("Game:", `${presence && presence.length ? presence[0].name : 'None'}`, true)

                            .addField("Joined The Server On:", `${moment.utc(mememb.joinedAt).format("dddd, MMMM Do YYYY")}`, true)

                            .addField("Account Created On:", `${moment.utc(user.createdAt).format("dddd, MMMM Do YYYY")}`, true)

                            .addField("Roles:", info.roles.cache ? roles : "None", true)

                            .setFooter(`Replying to ${message.author.username}#${message.author.discriminator}`)

                        message.channel.send({ embed });

                    });

                });

                break;


查看完整回答
反對 回復 2023-11-11
  • 1 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號