Reputation: 11
Hey, i have a problem when i want to send a message to a specific user id specified in args and then i have an error, i show you it:
The code:
client.on('message', message => {
const messageArray = message.content.split(" ");
let cmd = messageArray[0];
let args = messageArray.slice(1);
if (cmd == prefix + 'reserve'){
if(message.author.id != owner) return;
message.delete()
const User = client.fetchUser(args);
message.User.send("**Votre commande a été réservé avec succès par " + message.author.username + ", si votre commande a été reserver 2 fois ou vous n'avez même pas commander, merci de nous contacter en nous informant le nom du deuxième vendeur.**");
message.author.send("***Succès !***\n**Vous avez bien reservé la commande " + args + " de " + User.username + ".**\n**Une fois que vous avez le stuff nécessaire faites ?ready " + iddumek + ".**");
var reserver_embed = new Discord.RichEmbed()
.setAuthor(" BackGround | Market ")
.setTimestamp(message.createdAt)
.setColor("RANDOM")
.addBlankField()
.addField("**Commande de " + message.author.username + "**", '**Articles: \n' + args + ' rubis.**\n**La commande a été reservé avec succès par ' + message.author.username + ' merci de ne pas la reservé sous peine de sanction.**')
client.channels.get(`680899995016232970`).sendEmbed(reserver_embed);
}
});
The error:
TypeError: Cannot read property 'send' of undefined
at Client.<anonymous> (c:\Users\pc\Documents\Bots Discord\BackGround Market\index.js:79:30)
at Client.emit (events.js:205:15)
at MessageCreateHandler.handle (c:\Users\pc\Documents\Bots Discord\BackGround Market\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
at WebSocketPacketManager.handle (c:\Users\pc\Documents\Bots Discord\BackGround Market\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:105:65)
at WebSocketConnection.onPacket (c:\Users\pc\Documents\Bots Discord\BackGround Market\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (c:\Users\pc\Documents\Bots Discord\BackGround Market\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
at WebSocket.onMessage (c:\Users\pc\Documents\Bots Discord\BackGround Market\node_modules\discord.js\node_modules\ws\lib\event-target.js:120:16)
at WebSocket.emit (events.js:200:13)
at Receiver.receiverOnMessage (c:\Users\pc\Documents\Bots Discord\BackGround Market\node_modules\discord.js\node_modules\ws\lib\websocket.js:789:20)
at Receiver.emit (events.js:200:13)
index.js:79
Am sorry for the english error, i'm french.
Thank's for all helps !
Upvotes: 0
Views: 446
Reputation: 5330
https://discord.js.org/#/docs/main/stable/class/Message
message.User.send("...");
message.author.send("...");
See the documentation of discord.js. The message object has the attribute author
but it does not have an attribute for User
. This is why you are getting an undefined
error.
You previously did
const User = client.fetchUser(args);
so you probably meant to write:
User.send("...");
https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=fetchUser
fetchUser expects an id
so you'll need to provide that id
when summoning the bot via some chat command.
Upvotes: 1