问题描述
我是 Python 新手,我正在开发一个不和谐的机器人。但是我每次都运行这个错误。我不知道是什么问题,你能帮我吗?这是错误: 第 19 行,在 @client.command() AttributeError: 'Client' 对象没有属性 'command'
代码如下:
import discord
import random
from discord.ext import commands
class MyClient(discord.Client):
client = commands.Bot(command_prefix = '?')
# Start
async def on_ready(self):
print('Logged on as',self.user)
# Latency
client = discord.Client()
@client.command()
async def ping(ctx):
await ctx.send(f'Pong! {round(client.latency * 1000)}ms')
# 8ball
@client.command(aliases=['8ball'])
async def _8ball(ctx,*,question):
responses = ['Biztosan.','Nagyon kétséges.']
await ctx.send(f'Kérdés: {question}\nVálasz: {random.choice(responses)}')
# Clear
@client.command()
async def clear(ctx,amount=5):
await ctx.channel.purge(limit=amount)
await ctx.send(f'Kész!')
async def on_message(self,message):
word_list = ['fasz','kurva','anyad','anyád','f a s z','seggfej','buzi','f.a.s.z','fa sz','k U.rv@ any@dat']
if message.author == self.user:
return
messageContent = message.content
if len(messageContent) > 0:
for word in word_list:
if word in messageContent:
await message.delete()
await message.channel.send('Ne használd ezt a szót!')
messageattachments = message.attachments
if len(messageattachments) > 0:
for attachment in messageattachments:
if attachment.filename.endswith(".dll"):
await message.delete()
await message.channel.send("Ne küldj DLL fájlokat!")
elif attachment.filename.endswith('.exe'):
await message.delete()
await message.channel.send("Ne csak parancsikont küldj!")
else:
break
client = MyClient()
client.run(token)
解决方法
我很确定这是由于您定义客户端变量的位置,当我制作我的不和谐机器人时,我是在 javascript 中完成的,所以我可能是错的,但我相信这是因为您试图调用一个变量尚未定义,因此将 client = MyClient()
行向上移动,以便在创建类后立即定义