Discord JS(机器人存在)

Posted

技术标签:

【中文标题】Discord JS(机器人存在)【英文标题】:Discord JS (Bot Presence) 【发布时间】:2020-08-28 17:02:00 【问题描述】:

因此,在 Discord 中,用户可以拥有自定义状态,但是,当我尝试设置我的机器人时,没有任何反应...即使 CUSTOM_STATUS 可用

我有bot.user.setPresence( activity: name: "Testing", type: "CUSTOM_STATUS" , status: "online" );ready 事件中。我只是想知道为什么这不起作用以及是否有解决方法

【问题讨论】:

【参考方案1】:

根据docs.

机器人无法设置 CUSTOM_STATUS,它仅适用于从用户收到的自定义状态

您可以选择的有效类型是:

正在播放 流媒体 聆听 正在观看

【讨论】:

【参考方案2】:

试试 client.user.setActivity(Your Status) 我正在使用它并且它工作正常 如果您使用的是 v12,那么我无法帮助您

【讨论】:

【参考方案3】:

您应该确保您的 setPresence 命令在您的就绪事件中。例如,这是我准备好的命令:

const PREFIX = require('../config.json');
const  Message  = require('discord.js');
const message = require('./message.js');

//must update when new module.exports event happens
const leaveEvent = require('../util/guildMemberRemove');
const invitecounterEvent = require('../util/guildMemberAddinvitecounter');
const modmailEvent = require('../util/modmail');

module.exports = (client, message) => 

    //must update when new module.exports event happens
    leaveEvent(client);
    invitecounterEvent(client);
    modmailEvent(client);

    console.log(' ');
    console.log(`Hi, $client.user.username is now online! My Prefix is $PREFIX`);
    console.log(`Bot has started, with $client.users.size users, in $client.channels.size channels of $client.guilds.size guilds.`); 
    //client.user.setActivity(`Serving $client.guilds.size servers`); (big servers only)
    client.user.setActivity('U',  type: 'WATCHING' ) //PLAYING, STREAMING, LISTENING, WATCHING, CUSTOM_STATUS
        .then(presence => console.log(`Activity set to: WATCHING $presence.activities[0].name`))
        .catch(console.error);


    console.log(`Ready as $client.user.tag to serve in $client.channels.cache.size channels on $client.guilds.cache.size servers, for a total of $client.users.cache.size users.`);

    client.generateInvite(['SEND_MESSAGES', 'MANAGE_GUILD', 'MENTION_EVERYONE', 'ADMINISTRATOR',])
    .then(link => 
        console.log(`Generated bot invite link: $link`);
        // eslint-disable-next-line no-undef
        inviteLink = link;
    );

;

应该帮助你的部分是client.user.setActivity('U', type: 'WATCHING' ) 您可以执行的不同类型包括播放、流式传输、聆听和观看。

【讨论】:

以上是关于Discord JS(机器人存在)的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB / Discord.js - 检查集合的存在

Discord.js 存在活动状态和名称存在问题

Discord.js 变量在定义时不存在?

记录用户存在未识别的 discord.js

尝试使用 discord.js 编辑我的机器人消息时出错

Node.js、discord.js 和 MySQL - ER_NO_SUCH_TABLE:表 'NAME' 不存在