我正在尝试制作 discord.js 头像命令,但提及部分无法正常工作

I am trying to make a discord.js avatar command, and the mentioning portion doesn#39;t work correctly(我正在尝试制作 discord.js 头像命令,但提及部分无法正常工作)
本文介绍了我正在尝试制作 discord.js 头像命令,但提及部分无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我的 discord 机器人中有一个头像命令.当用户使用 h.avatar 时,它会输出他们的头像,效果很好.每当他们尝试使用 h.avatar @user 时,什么都没有发生.
这是我的代码:

I have an avatar command in my discord bot. When the user uses h.avatar, it outputs their avatar, which works fine. Whenever they try to use h.avatar @user, nothing happens.
Here is my code:

 } if (message.content.startsWith(config.prefix + "avatar")) {
      if (!message.mentions.users.size) {
        const avatarAuthor = new Discord.RichEmbed()
      .setColor(0x333333)
      .setAuthor(message.author.username)
      .setImage(message.author.avatarURL)
        message.channel.send(avatarAuthor);
        let mention = message.mentions.members.first();
        const avatarMention = new Discord.RichEmbed()
        .setColor(0x333333)
        .setAuthor(mention.user.username)
        .setImage(mention.user.avatarURL)
        message.channel.send(avatarMention);

推荐答案

你有一个检查 if (!message.mentions.users.size) { 这使得命令只有在你不这样做的时候才会运行提到某人.您需要在代码中使用 else { 或执行以下操作:

You have a check if (!message.mentions.users.size) { which makes the command run only if you do not mention somebody. You either need to use an else { in your code or do:

 if (message.content.startsWith(config.prefix + 'avatar')) {
    const user = message.mentions.users.first() || message.author;
    const avatarEmbed = new Discord.RichEmbed()
        .setColor(0x333333)
        .setAuthor(user.username)
        .setImage(user.avatarURL);
    message.channel.send(avatarEmbed);
}

const user = message.mentions.users.first() ||message.author; 尝试获取提到的用户,但如果找不到任何人,它将使用作者使用的.

The const user = message.mentions.users.first() || message.author; tries to get the user that was mentioned but if it does not find anyone it will use the author's used.

也可以这样使用:

if (!message.mentions.users.size) {
    message.channel.send('Nobody was mentioned');
    return;
}
// continue command here, after guard clause

这篇关于我正在尝试制作 discord.js 头像命令,但提及部分无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

在开发JS过程中,会经常遇到两个小数相运算的情况,但是运算结果却与预期不同,调试一下发现计算结果竟然有那么长一串尾巴。如下图所示: 产生原因: JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会
问题描述: 在javascript中引用js代码,然后导致反斜杠丢失,发现字符串中的所有\信息丢失。比如在js中引用input type=text onkeyup=value=value.replace(/[^\d]/g,) ,结果导致正则表达式中的\丢失。 问题原因: 该字符串含有\,javascript对字符串进行了转
Rails/Javascript: How to inject rails variables into (very) simple javascript(Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript)
CoffeeScript always returns in anonymous function(CoffeeScript 总是以匿名函数返回)
Ordinals in words javascript(javascript中的序数)
getFullYear returns year before on first day of year(getFullYear 在一年的第一天返回前一年)