Goshujin
@Goshujin
Я только начал изучать Python, не бейте.

Ошибка синтаксиса. Как ее убрать?

)
    ^
SyntaxError: positional argument follows keyword argument

@Bot.event
async def on_member_join(member):
    channel = Bot.get_channel(748505374755389452)

    await channel.send(
        f'{member.mention} %s' % Bot.get_emoji(815717281068875806), 
        emb = discord.Embed(title = 'Приветствуем Вас!', description = 'Каждый участник на этом сервер уважаемый, но все же гость. Поэтому настоятельно просим ознакомиться с каналом <#748790422062628954>. Просьба чтить и соблюдать данные правила.', color = 0xEE82EE),
        emb.add_field(name = 'Общение', value = f'Основной чат для общения - <#748800652783648778>. Изначально для Вас сервер закрыт, дабы не пустить на сервер бота-спамера. Чтобы получить право отправлять сообщения - вы должны нажать на реакцию в канале <#816326492555706369>. /nЕсли возникли вопросы, пожалуйста, обращайтесь напрямую к администраторам или модераторам.', inline = False),
        emb.set_thumbnail(url = 'https://media.tenor.com/images/8fe5b5f2c40a8f870569ed7b271cf876/tenor.png')
    )
  • Вопрос задан
  • 130 просмотров
Решения вопроса 2
@bacon
Сначала учим основы, потом пишем ботов, а то не хватает базовых знаний, про что такое positional и keyword argument, и их порядок. Про async вообще молчу, это следующий уровень.
Ответ написан
@OSMANOF
Бред какой-то. Ну ладно, начнем.
Во-первых, именованные аргументы следуют за позиционными. То есть, так:
await channel.send(
    f'{member.mention} %s' % Bot.get_emoji(815717281068875806), 
    emb.add_field(name = 'Общение', value = f'Основной чат для общения - <#748800652783648778>. Изначально для Вас сервер закрыт, дабы не пустить на сервер бота-спамера. Чтобы получить право отправлять сообщения - вы должны нажать на реакцию в канале <#816326492555706369>. /nЕсли возникли вопросы, пожалуйста, обращайтесь напрямую к администраторам или модераторам.', inline = False),
    emb.set_thumbnail(url = 'https://media.tenor.com/images/8fe5b5f2c40a8f870569ed7b271cf876/tenor.png'),
    emb = discord.Embed(title = 'Приветствуем Вас!', description = 'Каждый участник на этом сервер уважаемый, но все же гость. Поэтому настоятельно просим ознакомиться с каналом <#748790422062628954>. Просьба чтить и соблюдать данные правила.', color = 0xEE82EE)
)


Вот и все. Но есть пара неточностей.
f'{member.mention} %s' % Bot.get_emoji(815717281068875806)

F-строка. Сильно в discord.py не углублялся, но если используешь f-строку, то зачем далее использовать %s?

emb.add_field(name = 'Общение', value = f'Основной чат для общения - <#748800652783648778>. Изначально для Вас сервер закрыт, дабы не пустить на сервер бота-спамера. Чтобы получить право отправлять сообщения - вы должны нажать на реакцию в канале <#816326492555706369>. /nЕсли возникли вопросы, пожалуйста, обращайтесь напрямую к администраторам или модераторам.', inline = False),

Тут f-строка абсолютна бессмысленна. Префикс f следует убрать. А перевод строки не /n, а \n.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы