在discord.js上禁止DM消息

在discord.js上禁止DM消息,discord,discord.js,Discord,Discord.js,我正在制作一个不和谐的机器人,我想让机器人对被禁止的用户进行DM,为什么 它被禁止了。以下是我当前的代码: if(command === "ban") { if(!message.member.roles.some(r=>["Administrator"].includes(r.name)) ) return message.reply("Sorry, you don't have permissions to use this!"); let member = messag

我正在制作一个不和谐的机器人,我想让机器人对被禁止的用户进行DM,为什么 它被禁止了。以下是我当前的代码:

    if(command === "ban") {
  if(!message.member.roles.some(r=>["Administrator"].includes(r.name)) )
return message.reply("Sorry, you don't have permissions to use this!");

let member = message.mentions.members.first();
if(!member)
  return message.reply("Please mention a valid member of this server");
if(!member.bannable) 
  return message.reply("I cannot ban this user! Do they have a higher role? 
Do I have ban permissions?");

let reason = args.slice(1).join(' ');
if(!reason) reason = "No reason provided";

await member.ban(reason)
  .catch(error => message.reply(`Sorry ${message.author} I couldn't ban because of : ${error}`));
message.reply(`${member.user.tag} has been banned by ${message.author.tag} because: ${reason}`);
  message.member.tag.sendMessage('Hi! You were banned from ${member.user.server} because: {reason}. If you do not get why you were banned, please DM @doodthedoodthedood#2695.')
  }

在他们被禁止之前,你必须这样做。

禁止用户之前,请使用成员对象向他们发送消息

await member.send("You are banned")
await member.ban(reason)

在他们被禁止之前,你必须这样做。

禁止用户之前,请使用成员对象向他们发送消息

await member.send("You are banned")
await member.ban(reason)

您无法将消息发送给用户,因为您禁止了他们,这意味着您不再共享服务器。
先发送消息。
.send
是一种承诺。利用它对你有利

message.member.send(`ban reason here`).then(function(){
    message.member.ban(`reason`)
    console.log(`Successfully sent ban message to ${message.member.tag}`);
}).catch(function(){
   message.member.ban(`reason`)
   console.log(`Unsuccessfully sent ban message to ${message.member.tag}`);
});

使用
.then
.catch
来禁止该用户,因此即使该消息没有发送,它们也会被禁止

您无法将该消息发送给该用户,因为您禁止了它们,这意味着您不再共享服务器。
先发送消息。
.send
是一种承诺。利用它对你有利

message.member.send(`ban reason here`).then(function(){
    message.member.ban(`reason`)
    console.log(`Successfully sent ban message to ${message.member.tag}`);
}).catch(function(){
   message.member.ban(`reason`)
   console.log(`Unsuccessfully sent ban message to ${message.member.tag}`);
});

使用
.then
.catch
来禁止该用户,这样即使消息没有发送,他们仍然会被禁止

它也不起作用。我把它打开了,但它没有发送dm。用户是否启用了DMS(不是来自朋友的)?还有,有错误吗?@TylerSilberman机器人能真正对这个人进行DM,你有错误可以解释吗。一个禁止的错误通常意味着机器人无法在personIt不工作的情况下进行DM。我把它打开了,但它没有发送dm。用户是否启用了DMS(不是来自朋友的)?还有,有错误吗?@TylerSilberman机器人能真正对这个人进行DM,你有错误可以解释吗。禁止的错误通常意味着机器人无法识别此人