提问者:小点点

如何检查用户是否可以接受DMs


我有一个可以工作的DM命令,但如果我尝试DM一个关闭了DMs的人,user.send('test')会给出以下错误:

UnhandledPromiseRejectionWarning:DiscordApiError:无法向此用户发送消息

我如何让它检查用户是否打开了DMs?


共1个答案

匿名用户

不幸的是,user对象上没有任何属性可以告诉您是否可以DM它们。但是,您可以将.send()方法包装在try-catch块中。如果它抛出,则不会发送消息:

const user = message.mentions.users.first();

try {
  await user.send('test');
  message.channel.send(`Message sent to ${user}`);
} catch (error) {
  console.log(error);

  message.channel.send(`I couldn't message ${user}`);
}