Сначала, когда я создавал все свои команды для моего бота в дискорде в одном файле, не реорганизуя его в винтики, все работало очень хорошо. Теперь, когда я создал шестерни (и поместил туда свою команду ping), моя программа больше не распознает «задержку» как атрибут. Остальные мои команды (бан, разбан, кик, клиртекст) как ни странно работают нормально, без ошибок.
import discord
from discord.ext import commands
class basicComs(commands.Cog):
def __init__(self, client):
self.client = client
@commands.command()
async def ping(self, ctx):
await ctx.send(f"Pong {round(commands.latency * 1000)}ms")
def setup(client):
client.add_cog(basicComs(commands))
Сообщение об ошибке:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: module 'discord.ext.commands' has no attribute 'latency'
Спасибо:)
Это связано с тем, что у discord.ext.commands нет атрибута задержки. Атрибут задержки по-прежнему принадлежит вашему клиенту, то есть discord.ext.commands.Bot
Таким образом, даже после перехода на процессоры вам все равно придется вызывать задержку с вашего клиента. Также вы не добавляете Cog к своему клиенту в последней строке.
@commands.command()
async def ping(self, ctx):
await ctx.send(f"Pong {round(self.client.latency * 1000)}ms")
def setup(client):
client.add_cog(basicComs(client))
@wurstm162 wurstm162 Извините, я не уловил этого раньше, проверьте вашу последнюю строку: client.add_cog(basicComs(commands))
<-- должно быть ...(basicComs(client)
Редактирую свой ответ
Спасибо за вашу помощь, но он почему-то все еще показывает то же сообщение об ошибке.