Простой дискорд бот на пайтон
Я хотел бы сделать бота для дискорда, который бы при любом сообщении проверял его на непристойные слова, а также, при вводе команды /random, выдавал случайное значение от 1 до 100. Как можно это реализовать на библио? Вот мой код:
words=[] #здесь слова, которые будет удалять бот
import discord
import random
from discord.ext import commands
settings = {
'token': 'токен',
'bot': 'Censor Bot',
'id': 1025,
'prefix': '/'
}
bot = commands.Bot(command_prefix = settings['prefix'])
@bot.event
async def on_message(ctx):
if ctx.author != bot.user:
g=ctx.content
g=g.lower()
g = g.split()
for i in range(len(g)):
if g[i] in words:
await ctx.delete()
break
@bot.command()
async def rand(ctx, *arg):
await ctx.reply(random.randint(0, 100))
bot.run(settings['token'])
Ответы (1 шт):
Автор решения: nyekitka
→ Ссылка
- Функция on_message захватывает сообщение, а не контекст, поэтому будет корректнее писать
on_message(message). Хоть здесь это и никак не влияет, но читаемость кода улучшает) - Чтобы команда
/randбыла воспринята ботом, нужно чтобы бот после проверки сообщения на запрещённые слова переходил к проверке функций. Поэтому в конце on_message напишитеawait bot.process_commands(message)