@chroma

Не работает код, ошибок нет, что делать?

Я новичок в питоне, очень новичок. Для практики и лучшего усвоения знаний я решил написать discord бота. Но почему-то он не работает. Код я сделал на основе кода в документации. Вот сам код:
@client.event
async def on_message(message):
	if message.author == client.user:
		return
	if message.content.startswith('Привет'):
		await message.channel.send('hello')


ошибок нет. Код должен когда человек пишет "Привет" писать Hello

Помогите пожалуйста. Библиотеки импортировал, токен вписал, все сделал

Edited: Весь код
import discord
import random
from random import randint
from random import choice
from discord.ext import commands 

token = ("токенчик")

bot = commands.Bot(command_prefix = "=")

client = discord.Client()

@bot.event
async def on_ready():
	print('bot work')

@bot.command()
async def h(ctx):
	await ctx.send('Список моих команд: __скоро__')

@bot.command()
async def у*би(ctx, member: discord.Member):
	if member == bot.user:
		await ctx.send('{} пытался у*бать EBANAT.py, но я у*бал его'.format(ctx.message.author.mention))
		return
	await ctx.send("{} смачно у*бал {}, да так чтобы он превратился в говно с глазками.".format(ctx.message.author.mention, member.mention,))

@bot.command()
async def penis(ctx):
	pen = random.randint(0, 40)
	str(pen)
	if pen == '0':
		await ctx.send('хахах у вас нет чл*на')
		return
	elif pen == '40':
		await ctx.send('У ВАС ТАКОЙ ОГРОМНЫЙ ЧЛ*Н ЧТО МЫ ЕГО НЕ МОЖЕМ ИЗМЕРИТЬ!!! ГОРДИТЕСЬ этим!!!')
		return 
	await ctx.send('Ваш размер... ')
	await ctx.send(pen)


@client.event
async def on_message(message):
  if message.author == client.user:
    return
  if message.content.startswith('Привет'):
    await message.channel.send('hello')


bot.run(token)

весь код работает
  • Вопрос задан
  • 218 просмотров
Пригласить эксперта
Ответы на вопрос 2
@KruASe
Нужно создать переменную client client = discord.Client(), если ты этого еще не сделал... лучше пришли весь код, а не только одну команду
Ответ написан
shurshur
@shurshur
Сисадмин, просто сисадмин...
В этом коде выполняется bot, а client не используется.

У commands.Bot есть примерно все те же методы и свойства, что у discord.Client. Для начала надо @client.event заменить на @bot.event.

Далее, известная проблема заключается в том, что собственный обработчик on_message мешает выполняться командам, это настолько популярная проблема, что в официальном FAQ идёт первым же пунктом: https://discordpy.readthedocs.io/en/latest/faq.htm...

Функции лучше не называть русскими буквами и тем более не надо вставлять туда звёздочки. Команды можно называть с помощью параметра name, чтобы они отличались от названия функции:

@bot.command(name='пнуть')
async def kick(ctx, nick):
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы