discord.py Я не могу запустить команду server-info - PullRequest
2 голосов
/ 14 июля 2020

Недавно я программирую с помощью discord.py, и после нескольких поисков я все еще не могу найти способ реализовать эту команду (это также приводит меня к проблемам с другими командами, запрашивающими информацию с сервера), и поэтому мне нужна помощь, если ты можешь. В этом случае я хочу создать команду, которая предоставит мне информацию о сервере.

Traceback (most recent call last):
  File "C:\Users\PC GIUSEPPE\PycharmProjects\untitled\venv\lib\site-packages\discord\ext\commands\bot.py", line 892, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\PC GIUSEPPE\PycharmProjects\untitled\venv\lib\site-packages\discord\ext\commands\core.py", line 797, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\PC GIUSEPPE\PycharmProjects\untitled\venv\lib\site-packages\discord\ext\commands\core.py", line 92, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NameError: name 'server' is not defined

Код:

@client.command(aliases=["serverinfo","Server_info","Serverinfo","SERVERINFO","si","Si","SI"])
@commands.has_any_role('Moderatori', 'Triumvirato', 'Co-Triumvirato', 'Senatori', '690956686147453048')
async def ServerInfo(ctx):
    author = ctx.author.name
    name_server = server.name
    create_server = server.create
    owner_server = server.owner.name
    embed = discord.Embed(
        title="Informazioni del server",
        description=f'Tutte le informazioni generali del nostro server {name_server}',
        color=0x003399
    )
    embed.set_thumbnail(url='')
    embed.set_footer(text=f'Richiesto da: {author}')
    embed.add_field(
        name='Server creato il:',
        value='f{create_server}',
    )
    embed.add_field(
        name='Owner Attuale del server:',
        value='f{create_server}',
    )
    embed.add_field(
        name='Server creato il:',
        value=f'{create_server}',
    )
    embed.add_field(
        name='Server creato il:',
        value=f'{owner_server}',
    )

1 Ответ

1 голос
/ 14 июля 2020

Вы не определили server в своем коде, поэтому у вас есть эта ошибка.
Server - это старая ссылка на discord.py для сервера Discord, на котором находится бот. Теперь у вас будет использовать Guild вот так:

@client.command()
async def ServerInfo(ctx):
    author = ctx.author.name
    guild = ctx.guild
    name = guild.name
    create_server = server.created_at
    owner_server = server.owner.name
    (...)

Вы также можете создать словарь этой информации:

@client.command()
async def ServerInfo(ctx):
    author = ctx.author.name
    guild = ctx.guild
    infos = {
        'name': guild.name
        'owner': guild.owner.name
        'created_at': guild.created_at
    }
    (...)

Если вы действительно не знаете разница между discord.py (до v1.0) и discord. py@rewrite (после v1.0), здесь сводная ссылка .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...