0

我想做到这一点,这样我就不必再次登录我的机器人来调用表情符号,然后在我的 discord.js-commando 命令中使用它。我已经登录到 index.js 文件中的主机器人帐户,但我不知道如何将其召回到我的其他命令中。

现在,我知道这存在,但我无处可去。

登录两次或登录 alt 帐户的影响 - 帐户以“未知命令”消息响应 - 嵌入导致“null”反应,因为 alt 在线,因此您必须等待 alt 销毁。

这是我的index.js文件的一部分

const Discord = require("discord.js");
const commando = require('discord.js-commando');
//consts
const botconfig = require("./botconfig.json")
//logins
const doopliss = new commando.Client({
  disableEveryone:true,
  owner: '329023088517971969',
  unknownCommandResponse: false,
  prefix: `${botconfig.prefix}`
});
doopliss.login(`${botconfig.token}`);
this.doopliss = doopliss

这是我的commands/help/command.js文件的一部分

var on = this.doopliss.emojis.find(emoji => emoji.id === "601993044816035890")
var idl = this.doopliss.emojis.find(emoji => emoji.id === "601985438084759552")
var dn = this.doopliss.emojis.find(emoji => emoji.id === "601985438332485652")
var invis = this.doopliss.emojis.find(emoji => emoji.id === "601985454379892766")
var commando = require('discord.js-commando');
var discord = require('discord.js');
class aboutuser extends commando.Command 
{
    constructor(client) {
        super(client, {
            name: 'aboutuser',
            group: 'help',
            memberName: 'aboutuser',
            description: 'Lists information about a user.',
            aliases: ['au', 'aboutu', 'auser', 'userinfo'],
        })
    }
async run(message, args, emojis){
    if(message.author.bot) return
    else
    if (message.channel instanceof discord.DMChannel) return message.channel.send('This command cannot be executed here.')
    else
    if(!message.member.hasPermission(['MANAGE_GUILD']) && message.author.id !== `329023088517971969`) return message.channel.send('You don\'t have the permission to see this!')

var umen = message.mentions.members.first() || message.member;
var umen2 = message.mentions.users.first() || message.author;


if(umen2.bot == true ) {
    var bots = "Yes";
};
if(umen2.bot == false ) {
    var bots = "No";
};
if(umen.deaf == false ) {
    var urdeaf = "No";
};
if(umen.mute == true ) {
    var urmute = "Yes";
};
if(umen.deaf == true ) {
    var urdeaf = "Yes";
}
if(umen.mute == false ) {
    var urmute = "No";
};

if(!umen2.verified == true) 
    var urverified = "Yes";
    else var urverified = "No";

if(!umen2.mfaEnabled == true) 
    var urmfa = "Yes";
    else var urmfa = "No";
//my brain hurts

var on = this.doopliss.emojis.find(emoji => emoji.id === "601993044816035890")
var idl = this.doopliss.emojis.find(emoji => emoji.id === "601985438084759552")
var dn = this.doopliss.emojis.find(emoji => emoji.id === "601985438332485652")
var invis = this.doopliss.emojis.find(emoji => emoji.id === "601985454379892766")

if(umen2.presence.status == "online") {
    var stats = `User is in ${on} (online)`
}

if(umen2.presence.status == "idle") {
    var stats = `User is in ${idl} (Idle)`
}

if(umen2.presence.status == "dnd") {
    var stats = `User is in ${dn} (Do Not Disturb)`
}

if(umen2.presence.status == "offline") {
    var stats = `User is in ${invis} (Offline or invisible)`
}

if(!stats) {
    var stats2 = `❓`
}

if(!umen2.presence.game) 
    var game = `NO PLAYING STATUS`
    else var game = umen2.presence.game.name
/** @xteal */

    var myInfo = new discord.RichEmbed()
        .setAuthor(`${umen2.username}'s info`,`${umen2.avatarURL}`)
        .addField(`Username`,`${umen2.username}`,true)
        .addField(`Discriminator`,`${umen2.discriminator}`,true)
        .addField(`Tag`,`${umen2}`,true)
        .addField(`2FA?`,`${urmfa}`,true)
        .addField(`Status`,`${stats || stats2}`,true)
        .addField(`Created at`,`${umen2.createdAt}`,true)
        .addField(`Joined at`,`${umen.joinedAt}`,true)
        .addField(`Bot?`, `${bots}`,true)
        .addField(`Playing`, game,true)
        .addField(`Client's ID`,`${umen.id}`,true)
        .addField(`Server Deafened?`, `${urdeaf}`,true)
        .addField(`Display/Nick`,`${umen.displayName}`,true)
        .addField(`Server Muted?`, `${urmute}`,true)
        .addField(`Verified?`, `${urverified}`,true)
        .addField('Roles', `Please ping someone via >ur to see their roles.`, true)
        .setColor(0xf5c842)
        .setFooter(`Requested by ${message.author.username}.`, message.author.displayAvatarURL)
        .setThumbnail(`${umen2.avatarURL}`)

        message.channel.send(myInfo);
}

}
module.exports = aboutuser;

该代码导致以下错误:TypeError: Cannot read property 'emojis' of undefined

但我希望机器人能够通过 ID 从公会中召回表情符号。无需两次登录同一个帐户以获取错误。

4

1 回答 1

0

您可以简单地获取表情符号的 ID,例如,简单地反斜杠类似的表情符号

:DND:

你得到

<:DND:601985438332485652>

只需将其导入您的代码...

你得到...

var on = <:emoji:ID>
var idl = <:emoji:ID>
var dn = <:emoji:ID>
var invis = <:emoji:ID>

您必须确保您的机器人与所述表情共​​享相同的服务器,因为机器人可以在任何地方使用服务器的表情。并且使用表情符号从服务器中踢出您的机器人将使您的机器人发回错误。

于 2019-07-21T23:08:50.317 回答