首页 > 解决方案 > 锁定命令不锁定频道?

问题描述

因此,这是一个锁定命令,该命令可以正常工作,没有错误,但是一旦我这样做了!lockdown,我就会收到消息说它已锁定,但如果有人可以提供帮助,人们仍然可以输入

我的代码:

const Discord = require("discord.js");
const ms = require("ms")

module.exports.run = async (client, message, args) => {
    if(!client.lockit) client.lockit = [];
    let time = args.join(' ');
    let validUnlocks = ['relase', 'unlock'];
    if(!time) return message.channel.send('You must set a duration for the lockdown!')

    if(validUnlocks.includes(time)) {
        message.channel.overwritePermissions(message.guild.id, {
            SEND_MESSAGES: false
        }).then(() => {
            message.channel.sendMessage('Lockdown has been lifted!');
            clearTimeout(client.lockit[message.channel.id]);
            delete client.lockit[message.channel.id];
        }).catch(error => {
            console.log(error);
        });
    } else {
        message.channel.overwritePermissions(message.guild.id, {
            SEND_MESSAGES: false
        }).then(() => {
            message.channel.sendMessage(`Channel Locked for ${ms(ms(time), { long:true})}`).then(() => {
                client.lockit[message.channel.id] = setTimeout(() => {
                    message.channel.overwritePermissions(message.guild.id, {
                        SEND_MESSAGES: false
                    }).then(message.channel.sendMessage('Lockdown Lifted')).catch(console.error);
                    delete client.lockit[message.channel.id];
                }, ms(time));
            }).catch(error => {
                console.log(error)
            })
        })
    }
}

module.exports.help = {
    name: "lockdown",
    description: "Lock a channel",
    usage: "lockdown <duration>",
    accessableby: "Moderators",
}

标签: javascriptdiscord.js

解决方案


似乎您对该@everyone角色的代码更改权限。

如果您有另一个角色,具有更高的层次结构,并且有权限SEND_MESSAGES,他们仍然可以在该频道中输入。这可能是答案,但因为我不知道你的服务器的结构。我不能肯定地说。


推荐阅读