每次调用命令时 ctx.message.channel.edit 不运行

Posted

技术标签:

【中文标题】每次调用命令时 ctx.message.channel.edit 不运行【英文标题】:ctx.message.channel.edit not running everytime command is called 【发布时间】:2022-01-21 03:45:52 【问题描述】:

所以,我目前有这个命令可以用 discord py 更改不和谐频道的标题。该命令在每个通道中运行几次,然后在每个通道的基础上中断(或在大约 6 分钟后完成该命令)。

import api
import discord
from discord.ext import commands

client = discord.Client()
client = commands.Bot(command_prefix=["pp.", "Pp.", "PP.", "pP."])
@client.command(pass_context=True)
async def progress_update(ctx, new_emoji):
    if ctx.message.channel.name[0] not in ["????", "????", "????", "????"]:
        await ctx.send("That is not a valid channel to run **progress_update** in.\nPlease run this command in a challenge channel")
        return

    if new_emoji not in ["????", "????", "????", "????"]:
        await ctx.send("That is not a valid emoji.\nPlease use one of the following: ????, ????, ????, ????")
        return

    new_name = new_emoji + ctx.message.channel.name[1:]
    temp = await ctx.message.channel.edit(name=new_name)
    await ctx.send("Progress updated!")

client.run(api.api)

我不知道问题可能是什么。它似乎只发生在ctx.message.channel.edit 命令上,因为如果我键入错误的命令,我仍然可以查看错误消息(在not it 语句中)。

【问题讨论】:

【参考方案1】:

您很可能会达到速率限制。您每 10 分钟只能更改两次频道的名称或主题。值得庆幸的是,discord.py 自己处理速率限制,您不会收到错误消息。如果您启用日志记录,您也可以看到这一点。

不过,请注意,您的控制台会收到您的机器人对不和谐 API 的每个请求,您可以设置更具体的日志记录来缓解这种情况。请注意。

阅读有关设置日志记录的更多信息here

【讨论】:

非常感谢!这很有意义。

以上是关于每次调用命令时 ctx.message.channel.edit 不运行的主要内容,如果未能解决你的问题,请参考以下文章

每次调用脚本时在文件的下一行返回值。 MIDI 命令行音序器

如何为每次调用的 rpmbuild 设置构建区域

每次进入gdb时都打印出局部变量

为啥ajax调用在每次调用时都会输入成功和错误块?

strace命令用法

python的webdriver库每次调用浏览器都会弹出一个类似命令提示符的黑框,怎么关闭?