[英]Discord.js ID support for DM command
I am trying to make a DM command in discord.js that dms a mentioned user.我正在尝试在 discord.js 中发出一个 DM 命令,该命令对提到的用户进行 dms。 i wanted to allow support so you could either mention a user to dm, or just use their id.
我想允许支持,这样您就可以向 dm 提及用户,或者只使用他们的 ID。 this is my code:
这是我的代码:
let nodmperm = new Discord.MessageEmbed()
.setColor("#e31212")
.setDescription("ERROR: Missing permissions: `MANAGE_MESSAGES`");
// if (!message.member.hasPermission("MANAGE_MESSAGES"))
// return message.channel.send(nodmperm);
let nospecdm = new Discord.MessageEmbed()
.setColor("#e31212")
.setDescription("ERROR: No valid user was specified to DM");
if (!args[1]) return message.channel.send(nospecdm);
let dUser =
message.guild.member(message.mentions.users.first()) ||
bot.users.cache.get(args[0]);
let nouserfound = new Discord.MessageEmbed()
.setColor("#e31212")
.setDescription(`ERROR: No user found by the name of ${args[1]}`);
if (!dUser) return message.channel.send(nouserfound);
let dMessage = args.join(" ").slice(25);
let nomsgsup = new Discord.MessageEmbed()
.setColor("#e31212")
.setDescription("ERROR: No message was supplied");
if (dMessage.length < 1) return message.channel.send(nomsgsup);
let dmsoff = new Discord.MessageEmbed()
.setColor("#e31212")
.setDescription(
`ERROR: Unable to DM ${dUser} because they either have DMs off, or they have blocked Outlet`
);
let sentsucc = new Discord.MessageEmbed()
.setColor("#8f82ff")
.setTitle("Message was successfully sent")
.addField("Target: ", `${dUser} (ID: ${dUser.id}) (Discriminator: ${message.mentions.users.first().discriminator})`)
.addField("Message Content: ", dMessage)
.setFooter(message.createdAt)
.setTimestamp();
let userDM = new Discord.MessageEmbed()
.setTitle("You received a DM")
.setColor("#8f82ff")
.addField("Sender: ", `${message.author} (ID: ${message.author.id})`)
.addField("Server sent from: ", message.guild.name)
.addField("Server Channel: ", "#" + message.channel.name)
.addField("Message Content: ", dMessage)
.addField("Message URL: ", message.url)
.setFooter(`${message.createdAt}`)
.setTimestamp();
dUser
.send(userDM)
.then(() => message.channel.send(sentsucc))
.catch(err => {
message.channel
.send(dmsoff)
.catch(err =>
console.error(`Error while sending error message...\n`, err)
);
});
I cant seem to get it to work tho, i cannot get the args to fluctuate properly, im not too sure how i could fix this so you could either mention a user to dm, or use their id我似乎无法让它工作,我无法让 args 正常波动,我不太确定如何解决这个问题,所以你可以向 dm 提及用户,或者使用他们的 id
I am trying to make a DM command in discord.js that dms a mentioned user.我正在尝试在 discord.js 中发出一个 DM 命令,该命令对提到的用户进行 dms。 i wanted to allow support so you could either mention a user to dm, or just use their id.
我想允许支持,这样您就可以向 dm 提及用户,或者只使用他们的 ID。 this is my code:
这是我的代码:
let nodmperm = new Discord.MessageEmbed()
.setColor("#e31212")
.setDescription("ERROR: Missing permissions: `MANAGE_MESSAGES`");
// if (!message.member.hasPermission("MANAGE_MESSAGES"))
// return message.channel.send(nodmperm);
let nospecdm = new Discord.MessageEmbed()
.setColor("#e31212")
.setDescription("ERROR: No valid user was specified to DM");
if (!args[1]) return message.channel.send(nospecdm);
let dUser =
message.guild.member(message.mentions.users.first()) ||
bot.users.cache.get(args[0]);
let nouserfound = new Discord.MessageEmbed()
.setColor("#e31212")
.setDescription(`ERROR: No user found by the name of ${args[1]}`);
if (!dUser) return message.channel.send(nouserfound);
let dMessage = args.join(" ").slice(25);
let nomsgsup = new Discord.MessageEmbed()
.setColor("#e31212")
.setDescription("ERROR: No message was supplied");
if (dMessage.length < 1) return message.channel.send(nomsgsup);
let dmsoff = new Discord.MessageEmbed()
.setColor("#e31212")
.setDescription(
`ERROR: Unable to DM ${dUser} because they either have DMs off, or they have blocked Outlet`
);
let sentsucc = new Discord.MessageEmbed()
.setColor("#8f82ff")
.setTitle("Message was successfully sent")
.addField("Target: ", `${dUser} (ID: ${dUser.id}) (Discriminator: ${message.mentions.users.first().discriminator})`)
.addField("Message Content: ", dMessage)
.setFooter(message.createdAt)
.setTimestamp();
let userDM = new Discord.MessageEmbed()
.setTitle("You received a DM")
.setColor("#8f82ff")
.addField("Sender: ", `${message.author} (ID: ${message.author.id})`)
.addField("Server sent from: ", message.guild.name)
.addField("Server Channel: ", "#" + message.channel.name)
.addField("Message Content: ", dMessage)
.addField("Message URL: ", message.url)
.setFooter(`${message.createdAt}`)
.setTimestamp();
dUser
.send(userDM)
.then(() => message.channel.send(sentsucc))
.catch(err => {
message.channel
.send(dmsoff)
.catch(err =>
console.error(`Error while sending error message...\n`, err)
);
});
I cant seem to get it to work tho, i cannot get the args to fluctuate properly, im not too sure how i could fix this so you could either mention a user to dm, or use their id我似乎无法让它工作,我无法让 args 正常波动,我不太确定如何解决这个问题,所以你可以向 dm 提及用户,或者使用他们的 id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.