Ir ao conteúdo
  • Cadastre-se

Javascript como pegar user por id discord.js


b.0463

Posts recomendados

estou fazendo um bot pro discord com js e no comando de avatar quando a pessoa manda o id da pessoa tem um problema:

 

McId = msg.content.split(" ")[1];
if(McId==undefined) {
	var embed = new MessageEmbed()
		.setColor('#00ff00')
		.setTitle('Avatar')
		.setAuthor({ name: autor.username })
		.setDescription('avatar de <@'+autor.id+">")
		.setImage(autor.avatarURL());
	msg.channel.send({ embeds: [embed] });
} else {
	const mcuser = Client.users.cache.get(McId);
	const embed = new MessageEmbed()
		.setColor('#00ff00')
		.setTitle('Avatar')
		.setAuthor({ name: mcuser.username })
		.setDescription('avatar de <@'+mcuser.id+">")
		.setImage(mcuser.avatarURL());
	msg.channel.send({ embeds: [embed] });
}

nesse caso ele pega o segundo elemento da msg no caso o que seria o id e verifica para ver se tem ou não um id. se não tiver um id ele manda o avatar do autor da mensagem. caso tenha um id ele pega o user pelo id e mostra o avatar do mesmo. mas em Client.users.cache.get(McId); ele da um erro:
 

Error: 
c:\hksystem\PublicProjects\Bot_0463\node_e4601cdd223c2.tmp:75
                    const mcuser = Client.users.cache.get(McId);
                                                ^

TypeError: Cannot read properties of undefined (reading 'cache')
    at Client.<anonymous> (c:\hksystem\PublicProjects\Bot_0463\node_e4601cdd223c2.tmp:75:49)
    at Client.emit (node:events:390:28)
    at MessageCreateAction.handle (c:\hksystem\PublicProjects\Bot_0463\node_modules\discord.js\src\client\actions\MessageCreate.js:26:14)
    at Object.module.exports [as MESSAGE_CREATE] (c:\hksystem\PublicProjects\Bot_0463\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (c:\hksystem\PublicProjects\Bot_0463\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31)
    at WebSocketShard.onPacket (c:\hksystem\PublicProjects\Bot_0463\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (c:\hksystem\PublicProjects\Bot_0463\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
    at WebSocket.onMessage (c:\hksystem\PublicProjects\Bot_0463\node_modules\ws\lib\event-target.js:199:18)
    at WebSocket.emit (node:events:390:28)
    at Receiver.receiverOnMessage (c:\hksystem\PublicProjects\Bot_0463\node_modules\ws\lib\websocket.js:1137:20)

ele não acha o "cache"  em Client.users e em todo lugar que vi essa era a unica opção. a outra ele só consegue pegar se o usuario estiver no servidor.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!