Ошибка SyntaxError: expected argument value expression

Sako_Guttare

Новичок
Автор темы
3
0
SyntaxError: expected argument value expression:
import disnake
from disnake.ext import commands

bot = commands.Bot(command_prefix=".", help_command=None, intents=disnake.Intents.all())


@bot.event
async def on_ready():
    print(f"Bot {bot.user} is ready to work!")


@bot.event
async def on_member_join(member):
    Role = await disnake.utils.get(guild_id=member.id, role_id=1213403733183037440)
    channel = bot.get_channel(1212842152699240489)#member.guild.system_channel
    
    embed = disnake.Embed(
        title="Новый участник!",
        description=f"{member.name}"
    )


bot.run("MTIxNTMwNTU3OTcxNTc1NjA4Mw.GRsiB6.Fz4an5cIll-d3O8ML9_2FtVOV3V9GngK-sC3co")
Создал бота для дискорд в процессе cmd Выдаёт ошибку "SyntaxError: expected argument value expression"
 
Решение
С тем, что ты "создал бота" я бы, конечно, поспорил. Аналогичный код нашёл даже на хабре
Мало того, что переменная "Role" выдаст тебе ошибку, так она и вовсе не задействована - смысл тогда от неё?
Role = await disnake.utils.get(guild_id=member.id, role_id=1213403733183037440)
Если хочешь получить роль с сервера, то нужно использовать:
role:
role = disnake.utils.get(member.guild.roles, id=int(role_id))
role_id нужно ЗАМЕНИТЬ на айди роли с сервера, а не как тут
1709969052288.png


Зачем присваивать айди юзера для айди гильдии? Зачем создавать ещё одну переменную и не использовать её?
channel = bot.get_channel(1212842152699240489)#member.guild.system_channel
channel:
channel = disnake.utils.get(member.guild.channels...

kiaostashi

Известный
45
7
С тем, что ты "создал бота" я бы, конечно, поспорил. Аналогичный код нашёл даже на хабре
Мало того, что переменная "Role" выдаст тебе ошибку, так она и вовсе не задействована - смысл тогда от неё?
Role = await disnake.utils.get(guild_id=member.id, role_id=1213403733183037440)
Если хочешь получить роль с сервера, то нужно использовать:
role:
role = disnake.utils.get(member.guild.roles, id=int(role_id))
role_id нужно ЗАМЕНИТЬ на айди роли с сервера, а не как тут
1709969052288.png


Зачем присваивать айди юзера для айди гильдии? Зачем создавать ещё одну переменную и не использовать её?
channel = bot.get_channel(1212842152699240489)#member.guild.system_channel
channel:
channel = disnake.utils.get(member.guild.channels, id=int(channel_id))

Ну и главный вопрос: зачем пытаться написать бота, если в документацию залезть не можешь? Да и в питоне, судя по фотке выше, не разбираешься.
Вот тебе готовый код для выдачи роли при присоединении юзера:
Python:
import disnake
from disnake.ext import commands

bot = commands.Bot()

@bot.event
async def on_member_join(member):
    role = disnake.utils.get(member.guild.roles, id=int(сюда вставишь айди роли))
    channel = disnake.utils.get(member.guild.channels, id=int(сюда айди канала))
    if role and channel:
        embed = disnake.Embed(title = 'Новый участник', description = f'{member.name}')
        await member.add_roles(role)
        await channel.send(embed = embed)
        
bot.run('токен')

Дам тебе совет, не стоит при каждой ошибке бежать на форумы и ответники для того, чтобы тебе помогли. Изучай самостоятельно документацию, в ней даже примеры есть
 
  • Нравится
Реакции: Sako_Guttare и nelit.dev