«Ошибка ‘Self’ не определена» в member.edit

#discord.py #discord.py-rewrite

#discord.py

Вопрос:

У меня возникли проблемы с моим кодом, говорящим

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: edit() missing 1 required positional argument: 'self'

когда я запускаю команду. Self не нужно определять, верно? Кроме того, когда я добавляю self, у меня возникает проблема с ctx.

Код:

 import discord
from discord.ext import commands


client = commands.Bot(command_prefix="/")


@client.command(pass_context=True)
async def join(ctx, member=discord.Member):
    channel = ctx.author.voice.channel
    await channel.connect()
    await member.edit(mute=True)


@client.command(pass_context=True)
async def leave(ctx):
    await ctx.voice_client.disconnect()


client.run("Token")
  

Комментарии:

1. Вы определили переменную «member» как класс discord. Член, а не как tpy eof параметра. Вы должны изменить member=discord.Member на member: discord.Member

Ответ №1:

Мне удалось найти проблему и исправить ее.

 import discord
from discord.ext import commands


client = commands.Bot(command_prefix="/")


@client.command()
async def join(ctx):
    channel = ctx.author.voice.channel
    await channel.connect()
    await ctx.author.edit(mute=True)

@client.command()
async def leave(ctx):
    await ctx.voice_client.disconnect()


client.run("Token")
  

проблема в том, что вы включили member в свою функцию. Если вы хотите, чтобы он отправлял, редактировал или что-то делал с автором сообщения, просто сделайте ctx.author , и оно будет установлено для автора сообщения.