Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка в коде disnake python

Коля Иванов Ученик (99), на голосовании 1 месяц назад
 "nimport 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("Bot is online!")

@bot.event
async def on_member_join(member):
role = await disnake.utils.get(guild_id=member.guild.roles, id=1260954402509029469)
channel = member.guild.system_channel()

embed = disnake.embed(
title = 'Welcome',
describtion = f"{member_name}"


)


await member.add_roles(role)
await channel.send(embed=embed)

@bot.command()
@commands.has_permissions(kick_members=True)
async def kick(ctx, member: disnake.Member, *, reason="No resoan"):
await ctx.send(f'Администратор {ctx.author.mention} кикнул участника {member.mention}. Причина кика: {reason}')
await member.kick(reason=reason)

@bot.command()
@commands.has_permissions(administrator=True)
async def mute(ctx, member: disnake.Member, *, reason="No reason"):
role = await disnake.utils.get(guild_id=member.guild.roles, id=1261163078502977669)
await ctx.send(f"Администратор {ctx.author.mention} замутил участника {member.mention}. Причина: {reason}")
Сверрху код

А это, ошибка которую мне выдает консоль:
 Traceback (most recent call last): 
File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\disnake\ext\commands\bot_base.py", line 581, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\disnake\ext\commands\core.py", line 912, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\disnake\ext\commands\core.py", line 182, in wrapped
raise CommandInvokeError(exc) from exc
disnake.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: get() missing 1 required positional argument: 'iterable'
Голосование за лучший ответ
Анатолий Зяблин Просветленный (23564) 2 месяца назад
Похоже, что ошибка возникает в строке `role = await disnake.utils.get(guild_id=member.guild.roles, id=1261163078502977669)`. Вероятно, роль с указанным ID не существует в вашем сервере Discord.

Вот несколько шагов, которые вы можете предпринять для устранения этой ошибки:

1. **Проверьте ID роли**: Убедитесь, что ID роли, которую вы используете, правильный. Вы можете получить ID роли, включив режим разработчика в Discord и щелкнув правой кнопкой мыши на нужной роли.

2. **Проверьте наличие роли**: Убедитесь, что роль с указанным ID действительно существует в вашем сервере Discord.

3. **Обработайте ошибку**: Добавьте блок try-except, чтобы обрабатывать ошибку, если роль не найдена:

```python
@bot.event
async def on_member_join(member):
try:
role = await disnake.utils.get(member.guild.roles, id=1261163078502977669)
channel = member.guild.system_channel()

embed = disnake.Embed(
title='Welcome',
description=f"{member.mention}"
)

await member.add_roles(role)
await channel.send(embed=embed)
except disnake.errors.NotFound:
print(f"Роль с ID {1261163078502977669} не найдена в сервере { member.guild.name }")
```

4. **Используйте альтернативный способ получения роли**: Вместо `disnake.utils.get()` вы можете использовать `discord.utils.get()` или перебирать роли в цикле, чтобы найти нужную.

```python
role = discord.utils.get(member.guild.roles, id=1261163078502977669)
```

или

```python
for r in member.guild.roles:
if r.id == 1261163078502977669:
role = r
break
```
Коля ИвановУченик (99) 2 месяца назад
На сервере роль есть, консоль пишет что нужен аргумент iterable
Похожие вопросы