首页 > 解决方案 > discord.js V12 主题变更

问题描述

我目前正在制作一个 Discord 机器人,让您可以举办 Simon Says 活动!但是,目前,我遇到了一个问题:

如果你这样做,ss startevent (启动新事件的命令),我运行以下代码:

if (args[0].toLowerCase() === "startevent") {

    if (permissionLevel(message.member) < 4) return message.channel.send("**Error:** You don't have permission to do this!");
    
    var ssChannel = message.guild.channels.cache.find(ch => ch.name === "simon-says");
    if (!(ssChannel)) return message.channel.send("**Error:** Couldn't find the Simon Says channel!");

    if (!(eventStatus(ssChannel) === "Inactive")) return message.channel.send("**Error:** There is already an event active!");

    // ssChannel.updateOverwrite(message.guild.roles.cache.find(role => role.name === "Verified"), {
    //     SEND_MESSAGES: false,
    //     VIEW_CHANNEL: true,
    //     READ_MESSAGE_HISTORY: true
    // });

    var startingTopic = updateStatus(ssChannel, "Starting");
    ssChannel.setTopic(startingTopic);
    ssChannel.setTopic("**DEBUG**");
    message.channel.send("**Succesfully started a new Simon Says event!**");
    ssChannel.send(`Starting a new **Simon Says** event in **5 minutes**! To enter the event, go to <#703168301634945097> and type: **${prefix}ss enter**!`);

    setTimeout(function () {
        ssChannel.send(`Starting a new **Simon Says** event in **1 minute**! To enter the event, go to <#703168301634945097> and type: **${prefix}ss enter**!`);

        setTimeout(function () {
            ssChannel.updateOverwrite(message.guild.roles.cache.find(role => role.name === "SS: Participant"), {
                SEND_MESSAGES: true,
                VIEW_CHANNEL: true,
                READ_MESSAGE_HISTORY: true
            });

            ssChannel.updateOverwrite(message.guild.roles.cache.find(role => role.name === "Verified"), {
                SEND_MESSAGES: false,
                VIEW_CHANNEL: false,
                READ_MESSAGE_HISTORY: false
            });

            var activeTopic = updateStatus(ssChannel, "Active");
            ssChannel.setTopic(activeTopic);

            ssChannel.send(`The **Simon Says** event has started! You can now talk!`);
            ssChannel.send("[<@&787000309108965418>]")

        }, 60000)
    }, 240000)
}

所以,你可以看到我更新了频道的主题,为了调试,我什至把它改成了“ DEBUG ”。但是,它不会更新主题。主题保持不变,不会更新。

标签: javascriptnode.jsdiscord.js

解决方案


Discord 最近更改了频道名称和主题的速率限制。自 2020 年 5 月 28 日起,他们将编辑频道名称和主题的速率限制为每个频道每 10 分钟 2 次更新。他们不久前在他们的 Discord Developers discord 服务器上发布了一个关于此的公告。


推荐阅读