Задать вопрос
@rodgi

Не работает команда mute, что делать?

Делаю команду mute:
const Discord = require("discord.js");
const ms = require("ms");
module.exports = {
    name: "mute",
    aliases: ["mut", "offchat", "chatoff"],
    description: "Mute user",
    usage: "<@mention, time, reason>",
    run: async (bot, message, args) => {// check if the command caller has permission to use the command
  //!tempmute @user 1s/m/h/d

  let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
  if(!tomute) return message.reply("Не могу найти пользователя.");
  if(tomute.hasPermission("KICK_MEMBERS")) return message.reply("Я не могу заглушить его!");
  const muterole = message.guild.roles.find('name', 'Muted');
  //start of create role
  if(!muterole){
    try{
      muterole = await message.guild.createRole({
        name: "muted",
        color: "#000000",
        permissions:[]
    })
      message.guild.channels.forEach(async (channel, id) => {
        await channel.overwritePermissions(muterole, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false,
          SEND_TTS_MESSAGES: false,
          ATTACH_FILES: false,
          SPEAK: false
      });
    });
  }catch(e){
      console.log(e.stack);
  }
}
  //end of create role
  let mutetime = args[1];
  if(!mutetime) return message.reply("Укажите время!");

  await(tomute.addRole(muterole.id));
  message.reply(`<@${tomute.id}> успешно заглушен на ${ms(ms(mutetime))}`);

  setTimeout(function(){
    tomute.removeRole(muterole.id);
    message.channel.send(`<@${tomute.id}> был успешно разглушен!`);
}, ms(mutetime));
}};

В итоге: "message.guild.roles.find не функция". Я раньше делал команду mute по примерно такому-же принципу, но, видимо, все изменилось. Прошу помощи, заранее спасибо за ответ (на github готовые коды тоже не работают)
  • Вопрос задан
  • 1110 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 1
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Проблема в том, что объекте message.guild.roles нет никакого метода find, консоль вам не врёт.
Вам нужно использовать метод .fetch(), а затем перебором искать нужную роль.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы