Тонны Cog ошибок - PullRequest
       5

Тонны Cog ошибок

0 голосов
/ 17 марта 2020

В файле 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, не сопрограмму

Я пытался изменить весь мой код на бот и обратно на клиент, но ничего не помогло. Понятия не имею, что происходит.

1 Ответ

0 голосов
/ 17 марта 2020

Вы делаете наследство неправильно. Вы не наследуете от класса: «команды» и «Cog». Вы наследуете от класса: "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.

...