无法使用startsWith Discord.js问题

时间:2019-02-07 17:57:28

标签: discord discord.js

这是我的角色命令。
我正在尝试使用startsWith来赋予角色:如果arg的首字母与角色相同,则应将其分配给用户。

exports.run = async function (msg,args) {
  if(!msg.member.hasPermission('MANAGE_ROLES')) return;
  const member = msg.mentions.members.first();
  const name = msg.mentions.users.size ? args.replace(/ +/, ' ').split(' ')[1] : args;
  const role = msg.guild.roles.find(r => r.name.toLowerCase().startsWith(name.toLowerCase()));
  if (name && !role.size) return msg.channel.send("Role Not found");
  if (name && role.size > 1) return msg.channel.send("There is similar roles , Please supply more letters");
  await member.addRole(role);
  msg.channel.send(`**Role \`${role}\`  Given to **${member} Succesflly`);
};

我更新了当前代码,但仍然无法根据args赋予角色依赖或首字母!

1 个答案:

答案 0 :(得分:1)

使用.find()的函数版本是个好主意,但是您的错误在于使用.startsWith()的方式:它不是属性,而是方法。

const role = msg.guild.roles.find(r => r.name.toLowerCase().startsWith(args.split(/ +/g).slice(1).join(' ').toLowerCase()));