吨齿轮误差

时间:2020-03-17 07:30:01

标签: python-3.x discord.py discord.py-rewrite

在discord.py 1.0.1(仅Repl.it拥有的版本)中,齿轮使我很难受。

import discord
from discord.ext import commands

class Coding(commands, Cog):
    def __init__(self, client):
        self.client = client
    @commands.Cog.listener()
    async def on_ready(self):
        print("Kahoot Bot 0.1 ALPHA")
        client.remove_command("help")

    @commands.command()
    async def clear(self, ctx, amount = 5):
        await ctx.channel.purge(limit = amount + 1)

    @commands.command()
    async def ping(self, ctx):
        await ctx.send(f"Pong! {round(client.latency * 1000)}ms.")

    @client.command(pass_context = True, aliases = ["print"])
    async def printing(ctx, *, what_to_print):
        await ctx.send(what_to_print)
        print(what_to_print)

def setup(client):
    client.add_cog(Coding(client))

错误的要点是: A)客户端未定义 B) init ()应该返回None,而不是协程

我尝试将所有代码更改为bot,然后再更改回客户端,但没有任何帮助。不知道发生了什么。

1 个答案:

答案 0 :(得分:0)

您做继承错误。您不继承类:“命令”和“齿轮”。您从类“ commands.Cog”继承。因此,将class Coding(commands, Cog):更改为class Coding(commands.Cog):将解决一些错误。

您还犯了以下错误(“客户端不存在”错误):

    @commands.Cog.listener()
    async def on_ready(self):
        print("Kahoot Bot 0.1 ALPHA")
        client.remove_command("help") # this line

当我们要访问类变量时,在该变量的开头使用self.表示我们正在使用该类变量。在这种情况下,您不使用self.client.,而是使用client.

由于未在该函数中定义客户端,因此将给出错误。但是它被定义为类变量(“ init”函数)。要访问它,请使用:self.client.