Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 后述用户';s使用Discord.js嵌入的头像_Javascript_Discord_Discord.js - Fatal编程技术网

Javascript 后述用户';s使用Discord.js嵌入的头像

Javascript 后述用户';s使用Discord.js嵌入的头像,javascript,discord,discord.js,Javascript,Discord,Discord.js,我正在使用Discord.js作为Discord机器人,我正在尝试这样做,以便在您执行命令时!化身@用户 它将以所述用户化身的嵌入图像回复。我不断得到: (node:3168) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body embed.image.url: Not a well formed URL. 这是我到目前为止的代码,但是我不知道如何抓取用户的头像 const Discord = req

我正在使用Discord.js作为Discord机器人,我正在尝试这样做,以便在您执行命令时!化身@用户

它将以所述用户化身的嵌入图像回复。我不断得到:

(node:3168) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body embed.image.url: Not a well formed URL.
这是我到目前为止的代码,但是我不知道如何抓取用户的头像

    const Discord = require('discord.js');
const config = require('./config.json');
const client = new Discord.Client();

function getUserFromMention(mention) {
    if (!mention) return;
    if (mention.startsWith('<@') && mention.endsWith('>')) {
        mention = mention.slice(2, -1);
        if (mention.startsWith('!')) {
            mention = mention.slice(1);
        }
        return client.users.get(mention);
    }
}

function getUserFromMentionRegEx(mention) {
    const matches = mention.match(/^<@!?(\d+)>$/);  
    const id = matches[1];
    return client.users.get(id);
}

client.once('ready', () => {
    console.log('Ready!');
});

const prefix = "!";
client.on('message', message => {
    if (!message.content.startsWith(prefix)) return;  
    const withoutPrefix = message.content.slice(prefix.length);
    const split = withoutPrefix.split(/ +/);
    const command = split[0];
    const args = split.slice(1);

    if (command === 'avatar') {
        if (args[0]) {          
            const user = getUserFromMention(args[0]);
            const userAvatar = user.displayAvatarURL;
            if (!user) {
                return message.reply('Please use a proper mention if you want to see someone else\'s avatar.');
            }
            const avatarEmbed = new Discord.RichEmbed()
            .setColor('#275BF0')
            .setImage('userAvatar');
            message.channel.send(avatarEmbed);
        }

        return message.channel.send(`${message.author.username}, your avatar: ${message.author.displayAvatarURL}`);
    }
});

client.login(config.token);
const Discord=require('Discord.js');
const config=require('./config.json');
const client=new Discord.client();
函数getUserFromTitle(提及){
如果(!提及)返回;
如果(用(“”)表示开始){
提及=提及.切片(2,-1);
如果(提及.startsWith(“!”){
提及=提及。切片(1);
}
返回client.users.get(提及);
}
}
函数getUserFromInetitionRegex(提及){
const matches=提及.match(/^$/);
常量id=匹配项[1];
返回client.users.get(id);
}
client.once('ready',()=>{
console.log('Ready!');
});
常量前缀=“!”;
client.on('message',message=>{
如果(!message.content.startsWith(prefix))返回;
const withoutPrefix=message.content.slice(前缀.length);
常量拆分=不带outprefix.split(+/);
const命令=拆分[0];
常量args=split.slice(1);
如果(命令==='avatar'){
if(args[0]){
const user=getuserfromtoite(args[0]);
const userAvatar=user.displayAvatarURL;
如果(!用户){
返回消息。回复('如果你想看别人的头像,请适当提及');
}
const avatarEmbed=newdiscord.RichEmbed()
.setColor(“#275BF0”)
.setImage(“用户化身”);
message.channel.send(虚拟现实);
}
返回message.channel.send(`message.author.username},您的化身:${message.author.displayAvatarURL}`);
}
});
client.login(config.token);

您不需要用另一个函数解析提到的内容,discord有这个方法。您可以使用
message.notices.members.first()

你试着用文本
userAvatar
将图像设置为一个字符串,以确保出错

你可以获得会员头像,并将其与此代码一起发送

const Discord = require('discord.js');
const config = require('./config.json');
const client = new Discord.Client();


client.once('ready', () => {
    console.log('Ready!');
});

const prefix = "!";

client.on('message', message => {
    if (!message.content.startsWith(prefix)) return;  
    const withoutPrefix = message.content.slice(prefix.length);
    const split = withoutPrefix.split(/ +/);
    const command = split[0];
    const args = split.slice(1);    



    if (command === 'avatar') {
        let targetMember;
        if(!message.mentions.members.first()) {
            targetMember = message.guild.members.get(message.author.id);
        } else {
            targetMember = message.mentions.members.first()
        }

        let avatarEmbed = new Discord.RichEmbed()
            .setImage(targetMember.user.displayAvatarURL)
            .setColor(targetMember.displayHexColor);
            message.channel.send(avatarEmbed);
    }
});