不和谐的bot编码函数调用

时间:2020-10-29 05:08:35

标签: function discord.py

现在代码的很大一部分是我试图弄清楚我做错了什么,所以我在这里和那里打印了一些东西。

我的目标:

  • 检索特定不和谐频道中的邮件数量,并删除所有超过10个限制的新邮件(尚未实施删除操作)

  • 我希望这是一个事件(当前是用于测试的命令),只要成员尝试在该频道中发布消息,就会调用该事件

  • 计划交换到on_messege事件时使用message.channel,希望我可以从那里弄清楚所有问题...

  • 当我仅使用!numMsg调用msg计数器功能时(同时使用ctx和我自己添加通道名称,即!numMsg通道名称),该功能就起作用了

# delete new messages if 10 already exist in channel
@bot.command(name = 'test')
async def test(ctx):
    print('in here')
    print(ctx.channel.id)
    num = await message_count(ctx.channel)
    await ctx.send(num)

# msg counter
@bot.command(name = 'numMsg')
async def message_count(ctx, channel: discord.TextChannel=None):
    print('in here 2')
    print(channel)
    channel = channel or ctx.channel
    count = 0
    async for _ in channel.history(limit=None):
        count += 1
    return count
    #await ctx.send(count)
    #await ctx.send("There were {} messages in {}".format(count, channel.mention))

以下是输出:

Output

这是我稍微更改代码以确认函数本身起作用的方式:

# msg counter
@bot.command(name = 'numMsg')
async def message_count(ctx, channel: discord.TextChannel=None):
    print('in here 2')
    print(channel)
    channel = channel or ctx.channel
    count = 0
    async for _ in channel.history(limit=None):
        count += 1
    #return count
    await ctx.send(count)
    #await ctx.send("There were {} messages in {}".format(count, channel.mention))

Output calling function directly

Output calling function directly 2

0 个答案:

没有答案