Ошибка типа: message.guild.channels.forEach не является функцией - PullRequest
0 голосов
/ 25 марта 2020

Я создаю команду отключения звука, но когда я хочу отключить разрешение на выступление для роли отключения звука для каждого канала, я получаю эту ошибку:

TypeError: message.guild.channels.forEach is не функция

(сообщения на французском)

const Discord = require('discord.js');
const fs = require('fs');
const ms = require('ms');

module.exports.run = async(client, message, args) => {
    if(!message.guild.member(message.author).hasPermission("MUTE_MEMBERS")) return message.channel.send("❌ Vous n'avez pas la permission d'utiliser cette commande !");
    if(message.mentions.users.size === 0) {
        return message.channel.send("❌ Vous devez mentionner un utilisateur !");
    }
    let mute = message.guild.member(message.mentions.users.first());
    if(!mute) {
        return message.channel.send("❌ L'utilisateur est introuvable !");
    }
    let muteRole = message.guild.roles.cache.find(role => role.name === "Mute")
    if(!muteRole) return message.channel.send("❌ Le rôle Mute n'existe pas")
    muteRole.permissions.remove('SEND_MESSAGES', 'ADD_REACTIONS');
    let mutetime = args[1];
    if(!mutetime) return message.channel.send("❌ Vous devez spécifier un temps !");
    message.guild.channels.forEach(async (channel, id) => {
        await channel.overwritePermissions(muteRole, {
            SEND_MESSAGES: false,
            SEND_TTS_MESSAGES: false,
            ATTACH_FILES: false,
            ADD_REACTIONS: false
        })
    })
    await(mute.roles.add(muteRole.id));
    message.delete();
    message.channel.send("✅ <@" + mute + "> a bien été muté pendant " + mutetime);

    setTimeout(function() {
        mute.roles.remove(muteRole.id);
        message.channel.send()
    }, ms(mutetime));
};

module.exports.help = {
    name: "mute"
}

1 Ответ

0 голосов
/ 25 марта 2020

Я не знаю, как это объяснить, но он не передает ID.

 message.guild.channels.forEach(async (channel, id) => {
        await channel.overwritePermissions(muteRole, {
            SEND_MESSAGES: false,
            SEND_TTS_MESSAGES: false,
            ATTACH_FILES: false,
            ADD_REACTIONS: false
        })
    })

Должен работать, если вы просто делаете

.forEach(async (channel, id) => { 
});

Надеюсь, это работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...