Chaka
Новичок
- Регистрация
- 27 Дек 2020
- Сообщения
- 3
- Реакции
- 6
Всем приветульки!
Сегодня обуздаем простеньку-маленькую интересную штучечку.
В прошлом уроке мы разобрались как можно создать команды и как заставить бота откликаться на каждое сообщение.
Но что делать, если вы хотите заставить бота откликаться на сообщения определенного содержания?
А сейчас и узнаете
Цель: Заставить бота откликаться на определенные сообщения.
Из прошлого урока в самом конце у нас остался вот такой код:
Как мы все уже знаем - он позволяет нам заставлять бота откликаться на абсолютно любое сообщение в чате.
Теперь давайте его модернизируем для нашей цели.
Делается это через массив, в котором будут храниться желаемые нам слова для отклика.
Самый простой пример:
Добавим массив
Писать слова НУЖНО только в нижнем регистре. Это нужно для того, чтобы бот откликался на желаемое слово даже если участник написал его КАПСОМ. Капс будет переводиться в нижний регистр автоматически в коде ниже.
В функции отклика на сообщения пишем следующее:
Смотрим что у нас получилось
Все работает как надо! Ура!
Можно также добавить и целое предложение для отклика:
Список теперь выглядит так -
Всё просто ЗА-МЕ-ЧА-ТЕЛЬ-НО!
Получился у нас этот код:
Теперь Вы можете сами добавлять слова/предложения для отклика. Удачи в ботокрафтинге!
Сегодня обуздаем простеньку-маленькую интересную штучечку.
В прошлом уроке мы разобрались как можно создать команды и как заставить бота откликаться на каждое сообщение.
Но что делать, если вы хотите заставить бота откликаться на сообщения определенного содержания?
А сейчас и узнаете
Цель: Заставить бота откликаться на определенные сообщения.
Из прошлого урока в самом конце у нас остался вот такой код:
Python:
from discord.ext import commands
class Testing(commands.Cog):
def __init__(self, py):
self.py = py
@commands.Cog.listener()
async def on_message(self, message):
if message.author.bot:
return
await message.channel.send('Ты написал сообщение!')
def setup(py):
py.add_cog(Testing(py))
Как мы все уже знаем - он позволяет нам заставлять бота откликаться на абсолютно любое сообщение в чате.
Теперь давайте его модернизируем для нашей цели.
Делается это через массив, в котором будут храниться желаемые нам слова для отклика.
Самый простой пример:
Добавим массив
hello
, в нем будут храниться слова привет
и ку
- hello = ['привет', 'ку']
Писать слова НУЖНО только в нижнем регистре. Это нужно для того, чтобы бот откликался на желаемое слово даже если участник написал его КАПСОМ. Капс будет переводиться в нижний регистр автоматически в коде ниже.
В функции отклика на сообщения пишем следующее:
Python:
msg= message.content.lower()
if msg in hello:
await message.channel.send('Привет!')
message = message.content.lower()
- именно этот код переводит верхний регистр в нижний.if message in hello
- позволяем найти контент сообщения в списке желаемых слов для отклика.await message.channel.send('Привет!')
- ну а здесь просто пишите сообщение, которое хотите написать на этот отклик.Смотрим что у нас получилось

Все работает как надо! Ура!
Можно также добавить и целое предложение для отклика:
Список теперь выглядит так -
hello = ['привет', 'ку', 'привет как дела?']

Всё просто ЗА-МЕ-ЧА-ТЕЛЬ-НО!
Получился у нас этот код:
Python:
from discord.ext import commands
hello = ['привет', 'ку', 'привет как дела?']
class Testing(commands.Cog):
def __init__(self, py):
self.py = py
@commands.Cog.listener()
async def on_message(self, message):
if message.author.bot:
return
msg = message.content.lower()
if msg in hello:
await message.channel.send('Привет!')
def setup(py):
py.add_cog(Testing(py))
Теперь Вы можете сами добавлять слова/предложения для отклика. Удачи в ботокрафтинге!
Последнее редактирование: