I'm trying to send my channel an embed message, so when I type
**embed
in my channel it should return the embed message like
testbot Title
Description
But it just returns an empty message from my testbot (the bot name). I tried using
message.channel.send(embedd, embed);
instead, but it gives me an error saying embed isn't declared. .send(content, options) is the format and embed is the option.
const Discord = require("discord.js");
const bot = new Discord.Client();
const TOKEN = "MY_TOKEN_ID";
const PREFIX = "**";
var name;
var usrAuth = 0;
bot.on("ready", function() {
console.log("Ready");
});
bot.on("message", function(message) {
console.log(message.content);
if ( message.author.equals(bot.user))
return;
// If the message doesn't begin with ** (Our prefix); do nothing
if( !message.content.startsWith(PREFIX))
return;
var argv = message.content.substr(PREFIX.length).split(" ");
console.log("argv: "+argv+", argv[1]: "+argv[1]+"");
// "+VAR_NAME+" Allows you to print a variable
switch(argv[0].toLowerCase()) {
case "ping":
message.channel.send("Ping!");
break;
case "embed":
var embedd = new Discord.RichEmbed()
.addField("Title", "Description")
message.channel.sendEmbed(embedd);
// .catch(console.error);
break;
default:
message.channel.send("Invalid mands");
}
});
bot.login(TOKEN);
My code is above, any ideas what's wrong? Changing var to const also does nothing.
I'm trying to send my channel an embed message, so when I type
**embed
in my channel it should return the embed message like
testbot Title
Description
But it just returns an empty message from my testbot (the bot name). I tried using
message.channel.send(embedd, embed);
instead, but it gives me an error saying embed isn't declared. .send(content, options) is the format and embed is the option.
const Discord = require("discord.js");
const bot = new Discord.Client();
const TOKEN = "MY_TOKEN_ID";
const PREFIX = "**";
var name;
var usrAuth = 0;
bot.on("ready", function() {
console.log("Ready");
});
bot.on("message", function(message) {
console.log(message.content);
if ( message.author.equals(bot.user))
return;
// If the message doesn't begin with ** (Our prefix); do nothing
if( !message.content.startsWith(PREFIX))
return;
var argv = message.content.substr(PREFIX.length).split(" ");
console.log("argv: "+argv+", argv[1]: "+argv[1]+"");
// "+VAR_NAME+" Allows you to print a variable
switch(argv[0].toLowerCase()) {
case "ping":
message.channel.send("Ping!");
break;
case "embed":
var embedd = new Discord.RichEmbed()
.addField("Title", "Description")
message.channel.sendEmbed(embedd);
// .catch(console.error);
break;
default:
message.channel.send("Invalid mands");
}
});
bot.login(TOKEN);
My code is above, any ideas what's wrong? Changing var to const also does nothing.
Rename the variable to embed
and use this format
case "embed":
var embed = new Discord.RichEmbed()
.addField("Title", "Description")
message.channel.send({embed});
// .catch(console.error);
break;
This should work
case "embed":
var embed = new Discord.RichEmbed()
.setTitle(`Title`)
.setDescription(`Desc`)
.addField("Title", "Description")
message.channel.sendEmbed(embed);
// .catch(console.error);
break;
Use this format:
message.channel.send({ embed: embedd })
The method of sending using sendEmbed
is now deprecated. For embeds using the send event, you need to specify it is an embed using send({ embed: variable })
otherwise it will return an empty message which will (in future) make the bot exit.
let embed = new Discord.RichEmbed()
.setColor(0x00AE86)
.addField("Title", "Description")
.setTimestamp()
if(!args[0]) return message.channel.send(embed);
This what I have used to make all the embed on my bot.
If you are in Discord.JS V13.x.x, you can use this function like this:
message.channel.send({ embeds: [embed1, embed2, ...] })