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

Не работает код на пайтон (discord.py)

Петр Скребцов Ученик (194), на голосовании 5 месяцев назад
не работает код
import discord
import os
from discord import message
import asyncio


client = discord.Client(intents = discord.Intents.default())
intents.typing = False
intents.presences = False
@client.eventasync
def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.eventasync
def on_message(message):
if message.author == client.user:
return

async def foo():
if message.content.startswith("$hello"):
await message.channel.send("Hello!")

async def main():
await foo()
client.run (os.getenv('TOKEN'))
asyncio.run (main())
помогите, ошбики постоянно разные
Голосование за лучший ответ
12 12 Мыслитель (7685) 6 месяцев назад
какие ошибки то
Петр СкребцовУченик (194) 6 месяцев назад
разные обьекты не имеют разные атрибуты
12 12 Мыслитель (7685) Петр Скребцов, это такая ошибка?)
12 12Мыслитель (7685) 6 месяцев назад
os.getenv('TOKEN') сделай переменной, а переменную в клиент помести
Петр Скребцов Ученик (194) 12 12, и какое мне тогда ей значение задать?
Алексей Лешневский Мастер (1014) 6 месяцев назад
Похоже, у вас есть несколько проблем в вашем коде. Вот несколько замечаний:

1. В строке `client = discord.Client(intents = discord.Intents.default())` у вас неправильно указаны `intents`. Правильный синтаксис должен быть `client = discord.Client(intents=discord.Intents.default())`.

2. В обработчиках событий `on_ready` и `on_message` у вас отсутствует использование ключевого слова `async` перед `def`, что влияет на асинхронное выполнение. Правильный синтаксис: `@client.event async def on_ready():` и `@client.event async def on_message(message):`.

3. Функция `foo()` объявлена неправильно. Она должна быть объявлена внутри обработчика событий `on_message` для обработки сообщений от клиента Discord.

4. Не стоит использовать `asyncio.run(main())` вместе с `client.run(os.getenv('TOKEN'))`. Вместо этого используйте `client.run(os.getenv('TOKEN'))` непосредственно.

Попробуйте внести эти изменения в код и проверьте, исправились ли ошибки.
Татьяна Просветленный (36384) 5 месяцев назад
 import discord 
import os
import asyncio

intents = discord.Intents.default()
intents.typing = False
intents.presences = False

client = discord.Client(intents=intents)

@client.event
async def on_ready():
print(f'We have logged in as {client.user}')

@client.event
async def on_message(message):
if message.author == client.user:
return

if message.content.startswith("$hello"):
await message.channel.send("Hello!")

async def main():
await client.start(os.getenv('TOKEN'))

asyncio.run(main())
Пояснения:

Интенции: Настройки намерений intents перенесены в начало и правильно переданы в клиент.
Асинхронные функции: Объявления асинхронных функций исправлены, чтобы они правильно функционировали.
Исправление декораторов: Удалены лишние слова async после декораторов @client.event.
Запуск клиента: Использование client.start вместо client.run внутри асинхронной функции.
Похожие вопросы