TypeError:mention.send 不是函数 - discord.js

Posted

技术标签:

【中文标题】TypeError:mention.send 不是函数 - discord.js【英文标题】:TypeError: mention.send is not a function - discord.js 【发布时间】:2020-12-31 14:39:27 【问题描述】:

我一直在尝试编写这个不和谐机器人来通过 DM 向某个人发送消息。它应该工作的方式是: tb!send @usernamehere Hi 然后这应该向@usernamehere发送一条DM消息,说“嗨”。但相反,我收到一条错误消息TypeError: mention.send is not a function。这是我的代码:

client.on('message', (message) => 
 var msg = message.content.toLowerCase();

 if (message.author.bot) return;

 let mention = message.mentions.users.first().id;

 if (msg.startsWith(prefix + 'send')) 
  console.log('ok');
  if (mention == null) return;
  message.delete();
  var mentionMessage = message.content.slice(8);
  mention.send(mentionMessage);
  message.channel.send('done!');
 
);

【问题讨论】:

【参考方案1】:

改变

let mention = message.mentions.users.first().id;

let mention = message.mentions.users.first();

【讨论】:

【参考方案2】:

您可以选择使用 id 或提及

身份证

let mention = message.mentions.users.first().id;

if (msg.startsWith(prefix + 'send')) 
 console.log('ok');
 if (mention == null) 
  return;
 
 message.delete();
 mentionMessage = message.content.split(' ').slice(1);
 client.users.cache.get(mention).send(mentionMessage);
 message.channel.send('done!');

或提及

let mention = message.mentions.users.first();

if (msg.startsWith(prefix + 'send')) 
 console.log('ok');
 if (mention == null) 
  return;
 
 message.delete();
 mentionMessage = message.content.split(' ').slice(1);
 mention.send(mentionMessage);
 message.channel.send('done!');

我还将message.content.slice(8) 更改为message.content.split(' ').slice(1),因此它适用于所有没有空格的前缀。

【讨论】:

以上是关于TypeError:mention.send 不是函数 - discord.js的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:不是构造函数

TypeError: jQueryxxxxxx 不是函数

TypeError: $(...).on 不是函数

TypeError: Object(...) 不是函数

TypeError:Ajv 不是构造函数

TypeError:未定义'不是函数(评估'myAudio.play()')“