.addRole и .removeRole не являются функциями - Discord Bot Mute Case - PullRequest
0 голосов
/ 21 апреля 2020

Я просмотрел все связанные темы по переполнению стека и перепробовал все, но коды просто не сработали :) Так что я следую руководству YouTube о том, как отключить подписку с помощью бота на Discord, и вот ошибка:

TypeError: person.removeRole is not a function
at Client.<anonymous> (C:\Users\hp\Documents\discordBot\Codes\index.js:39:14)
    at Client.emit (events.js:311:20)
    at MessageCreateAction.handle (C:\Users\hp\Documents\discordBot\Codes\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\hp\Documents\discordBot\Codes\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)    at WebSocketManager.handlePacket (C:\Users\hp\Documents\discordBot\Codes\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
    at WebSocketShard.onPacket (C:\Users\hp\Documents\discordBot\Codes\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
    at WebSocketShard.onMessage (C:\Users\hp\Documents\discordBot\Codes\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
    at WebSocket.onMessage (C:\Users\hp\Documents\discordBot\Codes\node_modules\ws\lib\event-target.js:120:16)
    at WebSocket.emit (events.js:311:20)
    at Receiver.receiverOnMessage (C:\Users\hp\Documents\discordBot\Codes\node_modules\ws\lib\websocket.js:801:20)

Вот мой код, другие части исключены, если необходимо, я могу поставить их здесь.

case "mute":
      let person = m.mentions.members.first() || m.guild.members.fetch(args[1]); //m.guild.member(
      //console.log(person);
      if (!person) return m.reply("I don't know who this is, bro.");

      let mainrole = m.guild.roles.cache.find((role) => role.name === "Main");
      let muterole = m.guild.roles.cache.find((role) => role.name === "Mute");

      if (!muterole) return m.reply("Sorry they simply don't exsit.");

      let time = args[2];
      console.log(time);
      if (!time) return m.reply("That's not a time. How did you even do it?");

      person.removeRole(mainrole.id);
      person.addRole(muterole.id);
      // person.remove("Main");
      // person.add("Mute");

      m.channel.send(
        `@${person.user.tag} has now been mute for ${ms(ms(time))}`
      );

      setTimeout(() => {
        person.addRole(mainRole.id);
        person.removeRole(muterole.id); //switching the order and see how that looks like
        m.channel.send(`@${person.user.tag} has been unmuted, good job!`);
      }, ms(time));

Заставляет меня задуматься, импортировать ли модуль ms или разногласия . js есть проблемы? Отправить помощь, пожалуйста! Спасибо!

1 Ответ

0 голосов
/ 21 апреля 2020

После разногласий. js v12 теперь вам нужно использовать roles.add() и roles.remove() вместо .addRole() и .removeRole().

...