Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Гайд#1 | Курс "Бот дискорд на python" | Ивенты, команды | disnake
Бедняга же расстроится, рассказал что знает, а тут такое ему пишут. Я конечно тоже понимаю, что гайд говна, но можно было чуть вежливо ответить.
А так браток хорош развеивайся и используй лучше обычную библиотеку discord.py, так как она, думаю, надежнее)
Курс спонсирован напитком экстра-ситро
Просьба писать код вдумчиво, не просто копипастить.
Моя цель - чтобы те, кто ничего незнает, хоть чему-нибудь научились.
1. Начинаем писать бота
Создайте 2 файла: bot.py - наш основной файл с ботом config.py - файл с конфигурацией (токен, префикс и т.п.)
Для того чтобы начать писать команды или ивенты, надо написать базовый код:
>> bot.py: 1.Импортируем библиотеку disnake и commands import disnake from disnake.ext import commands
2. Сделаем переменную с нашим ботом:
Мы можем использовать disnake.Client: bot = disnake.Client(intents=disnake.Intents.all())
Но я буду использовать commands.Bot
(он принимает такие же параметры, как Client): bot = commands.Bot(intents=disnake.Intents.all(), command_prefix=config["prefix"])
Можно ещё импортировать из disnake Intents, чтобы получилось покрасивее
Python:
from disnake import Intents # импортируем Intents
bot = commands.Bot(intents=Intents.all(), command_prefix=config["prefix"]) # вместо disnake.Intents.all() - Intents.all()
Делайте как хотите
Также если вы работаете в Visual Studio Code, PyCharm (и других), можно посмотреть
какие аргументы принимает та или иная функция - просто наведитесь на неё курсором Посмотреть вложение 247749
Курс спонсирован напитком экстра-ситро
Просьба писать код вдумчиво, не просто копипастить.
Моя цель - чтобы те, кто ничего незнает, хоть чему-нибудь научились.
1. Начинаем писать бота
Создайте 2 файла: bot.py - наш основной файл с ботом config.py - файл с конфигурацией (токен, префикс и т.п.)
Для того чтобы начать писать команды или ивенты, надо написать базовый код:
>> bot.py: 1.Импортируем библиотеку disnake и commands import disnake from disnake.ext import commands
2. Сделаем переменную с нашим ботом:
Мы можем использовать disnake.Client: bot = disnake.Client(intents=disnake.Intents.all())
Но я буду использовать commands.Bot
(он принимает такие же параметры, как Client): bot = commands.Bot(intents=disnake.Intents.all(), command_prefix=config["prefix"])
Можно ещё импортировать из disnake Intents, чтобы получилось покрасивее
Python:
from disnake import Intents # импортируем Intents
bot = commands.Bot(intents=Intents.all(), command_prefix=config["prefix"]) # вместо disnake.Intents.all() - Intents.all()
Делайте как хотите
Также если вы работаете в Visual Studio Code, PyCharm (и других), можно посмотреть
какие аргументы принимает та или иная функция - просто наведитесь на неё курсором Посмотреть вложение 247749 3. Вставляете ниже запуск нашего бота: bot.run(config["token"])
>> config.py:
Чтобы наш config["token"] выдавал наш токен и config["prefix"] выдавал наш префикс нам нужно создать конфиг: 1. Открываем config.py 2. Пишем в нём:
config.py:
config = {
'token': 'TOKEN', # токен из #0 гайда
'prefix': '!' # наш префикс
}
Далее вы можете добавлять свои переменные и вызывать их вот так: config["prefix"] 3. В bot.py пишем рядом с нашими импортами: from config import config
Это позволит использовать переменные config в bot.py
Если вы хотите автоматически отслеживать те или иные действия на вашем сервере (кто на него зашёл, кого забанили, кто зашёл в определенный войс), то нам нужны ивенты.
Их существует множество, все они есть в документации -
Мы разберём три ивента - on_ready, on_member_ban, on_member_join:
1.on_ready:
Данный ивент вызывается когда бот полностью запускается, мы будем использовать его чтобы поставить какой-нибудь смешной статус и вывести сообщение в консоль:
Запускаем нашего бота и получается примерно так: Посмотреть вложение 247752
Вы можете менять статус и активность, все доступные статусы и активности есть тут -
Вот код который ставит "Не беспокоить" и Слушает пользователей: await bot.change_presence(status=disnake.Status.do_not_disturb, activity=disnake.Activity(type=disnake.ActivityType.listening, name="пользователей")
Также можно подключить там какую-нибудь ДБ, чтобы потом с ней взаимодействовать (для примера).
2. on_member_ban:
Данный ивент вызывается когда пользователя банят (не выгоняют), мы будем использовать его чтобы написать в определенный канал, что пользователь забанен.
Он отправляет объект сервера и пользователя - guild и user, guild - сервер в котором пользователя забанили и user - пользователь которого забанили.
Мы будем использовать только user.
Для нахождения канала по ID используем метод get_channel(id)
Python:
@bot.event
async def on_member_ban(guild:disnake.Guild, user: disnake.Member):
channel = await bot.get_channel(1107292203912544338) # получение канала #баны
await channel.send(f"Пользователь {user.name}#{user.discriminator} был забанен.") # вывод сообщения о бане
Можно также вывести в виде embed:
Python:
@bot.event
async def on_member_ban(guild:disnake.Guild, user: disnake.Member):
channel = await bot.get_channel(1107292203912544338) # получение канала #баны
emb = disnake.Embed(title="Ещё один бан", description=f"Пользователь {user.name}#{user.discriminator} был забанен") #создание embed
await channel.send(embed=emb) # вывод embed'a в чат
Можно кастомизировать по своему
Сообщение при бане -
Данный ивент вызывается, когда пользователь заходит на наш сервер, мы будем использовать его чтобы написать в определенный канал, что пользователь присоединился к нам.
Он отправляет объект пользователя - user.
Для нахождения канала по ID используем метод get_channel(id)
Python:
@bot.event
async def on_member_join(user: disnake.Member):
channel = await bot.get_channel(1107267042865848351) # получение канала #приглашения
await channel.send(f"{user.mention} присоединился к нам!") # отправка сообщения
Можно вывести в embed, как в on_member_ban и сделать также с методом on_member_remove - это когда пользователь выходит с нашего сервера.
Сообщение при подключении пользователя -
Для получения ID нужно включить в настройках: Настройки -> Расширенные -> Режим разработчика, потом ЛКМ по каналу -> Копировать ID канала
3.Команды
Мы будем рассматривать слеш-команды в следующем гайде, а пока сделаем команды как в старые добрые, с помощью префикса
Мы сделаем команду say(пишет ваш текст, который вы написали в аргументах), ban и kick
1.say
Данная команда напишет ваш текст, например, у вас есть канал в котором вы хотите писать от имени бота.
Python:
@bot.command()
async def say(ctx: disnake.Message, *, text): # получение текста, который вы напишите
await ctx.message.delete() # удаление сообщения
await ctx.send(text) # отправка сообщения
Курс спонсирован напитком экстра-ситро
Просьба писать код вдумчиво, не просто копипастить.
Моя цель - чтобы те, кто ничего незнает, хоть чему-нибудь научились.
1. Начинаем писать бота
Создайте 2 файла: bot.py - наш основной файл с ботом config.py - файл с конфигурацией (токен, префикс и т.п.)
Для того чтобы начать писать команды или ивенты, надо написать базовый код:
>> bot.py: 1.Импортируем библиотеку disnake и commands import disnake from disnake.ext import commands
2. Сделаем переменную с нашим ботом:
Мы можем использовать disnake.Client: bot = disnake.Client(intents=disnake.Intents.all())
Но я буду использовать commands.Bot
(он принимает такие же параметры, как Client): bot = commands.Bot(intents=disnake.Intents.all(), command_prefix=config["prefix"])
Можно ещё импортировать из disnake Intents, чтобы получилось покрасивее
Python:
from disnake import Intents # импортируем Intents
bot = commands.Bot(intents=Intents.all(), command_prefix=config["prefix"]) # вместо disnake.Intents.all() - Intents.all()
Делайте как хотите
Также если вы работаете в Visual Studio Code, PyCharm (и других), можно посмотреть
какие аргументы принимает та или иная функция - просто наведитесь на неё курсором Посмотреть вложение 247749 3. Вставляете ниже запуск нашего бота: bot.run(config["token"])
>> config.py:
Чтобы наш config["token"] выдавал наш токен и config["prefix"] выдавал наш префикс нам нужно создать конфиг: 1. Открываем config.py 2. Пишем в нём:
config.py:
config = {
'token': 'TOKEN', # токен из #0 гайда
'prefix': '!' # наш префикс
}
Далее вы можете добавлять свои переменные и вызывать их вот так: config["prefix"] 3. В bot.py пишем рядом с нашими импортами: from config import config
Это позволит использовать переменные config в bot.py
Если вы хотите автоматически отслеживать те или иные действия на вашем сервере (кто на него зашёл, кого забанили, кто зашёл в определенный войс), то нам нужны ивенты.
Их существует множество, все они есть в документации -
Мы разберём три ивента - on_ready, on_member_ban, on_member_join:
1.on_ready:
Данный ивент вызывается когда бот полностью запускается, мы будем использовать его чтобы поставить какой-нибудь смешной статус и вывести сообщение в консоль:
Запускаем нашего бота и получается примерно так: Посмотреть вложение 247752
Вы можете менять статус и активность, все доступные статусы и активности есть тут -
Вот код который ставит "Не беспокоить" и Слушает пользователей: await bot.change_presence(status=disnake.Status.do_not_disturb, activity=disnake.Activity(type=disnake.ActivityType.listening, name="пользователей")
Также можно подключить там какую-нибудь ДБ, чтобы потом с ней взаимодействовать (для примера).
2. on_member_ban:
Данный ивент вызывается когда пользователя банят (не выгоняют), мы будем использовать его чтобы написать в определенный канал, что пользователь забанен.
Он отправляет объект сервера и пользователя - guild и user, guild - сервер в котором пользователя забанили и user - пользователь которого забанили.
Мы будем использовать только user.
Для нахождения канала по ID используем метод get_channel(id)
Python:
@bot.event
async def on_member_ban(guild:disnake.Guild, user: disnake.Member):
channel = await bot.get_channel(1107292203912544338) # получение канала #баны
await channel.send(f"Пользователь {user.name}#{user.discriminator} был забанен.") # вывод сообщения о бане
Можно также вывести в виде embed:
Python:
@bot.event
async def on_member_ban(guild:disnake.Guild, user: disnake.Member):
channel = await bot.get_channel(1107292203912544338) # получение канала #баны
emb = disnake.Embed(title="Ещё один бан", description=f"Пользователь {user.name}#{user.discriminator} был забанен") #создание embed
await channel.send(embed=emb) # вывод embed'a в чат
Можно кастомизировать по своему
Сообщение при бане -
Данный ивент вызывается, когда пользователь заходит на наш сервер, мы будем использовать его чтобы написать в определенный канал, что пользователь присоединился к нам.
Он отправляет объект пользователя - user.
Для нахождения канала по ID используем метод get_channel(id)
Python:
@bot.event
async def on_member_join(user: disnake.Member):
channel = await bot.get_channel(1107267042865848351) # получение канала #приглашения
await channel.send(f"{user.mention} присоединился к нам!") # отправка сообщения
Можно вывести в embed, как в on_member_ban и сделать также с методом on_member_remove - это когда пользователь выходит с нашего сервера.
Сообщение при подключении пользователя -
Для получения ID нужно включить в настройках: Настройки -> Расширенные -> Режим разработчика, потом ЛКМ по каналу -> Копировать ID канала
3.Команды
Мы будем рассматривать слеш-команды в следующем гайде, а пока сделаем команды как в старые добрые, с помощью префикса
Мы сделаем команду say(пишет ваш текст, который вы написали в аргументах), ban и kick
1.say
Данная команда напишет ваш текст, например, у вас есть канал в котором вы хотите писать от имени бота.
Python:
@bot.command()
async def say(ctx: disnake.Message, *, text): # получение текста, который вы напишите
await ctx.message.delete() # удаление сообщения
await ctx.send(text) # отправка сообщения
Курс спонсирован напитком экстра-ситро
Просьба писать код вдумчиво, не просто копипастить.
Моя цель - чтобы те, кто ничего незнает, хоть чему-нибудь научились.
1. Начинаем писать бота
Создайте 2 файла: bot.py - наш основной файл с ботом config.py - файл с конфигурацией (токен, префикс и т.п.)
Для того чтобы начать писать команды или ивенты, надо написать базовый код:
>> bot.py: 1.Импортируем библиотеку disnake и commands import disnake from disnake.ext import commands
2. Сделаем переменную с нашим ботом:
Мы можем использовать disnake.Client: bot = disnake.Client(intents=disnake.Intents.all())
Но я буду использовать commands.Bot
(он принимает такие же параметры, как Client): bot = commands.Bot(intents=disnake.Intents.all(), command_prefix=config["prefix"])
Можно ещё импортировать из disnake Intents, чтобы получилось покрасивее
Python:
from disnake import Intents # импортируем Intents
bot = commands.Bot(intents=Intents.all(), command_prefix=config["prefix"]) # вместо disnake.Intents.all() - Intents.all()
Делайте как хотите
Также если вы работаете в Visual Studio Code, PyCharm (и других), можно посмотреть
какие аргументы принимает та или иная функция - просто наведитесь на неё курсором Посмотреть вложение 247749 3. Вставляете ниже запуск нашего бота: bot.run(config["token"])
>> config.py:
Чтобы наш config["token"] выдавал наш токен и config["prefix"] выдавал наш префикс нам нужно создать конфиг: 1. Открываем config.py 2. Пишем в нём:
config.py:
config = {
'token': 'TOKEN', # токен из #0 гайда
'prefix': '!' # наш префикс
}
Далее вы можете добавлять свои переменные и вызывать их вот так: config["prefix"] 3. В bot.py пишем рядом с нашими импортами: from config import config
Это позволит использовать переменные config в bot.py
Если вы хотите автоматически отслеживать те или иные действия на вашем сервере (кто на него зашёл, кого забанили, кто зашёл в определенный войс), то нам нужны ивенты.
Их существует множество, все они есть в документации -
Мы разберём три ивента - on_ready, on_member_ban, on_member_join:
1.on_ready:
Данный ивент вызывается когда бот полностью запускается, мы будем использовать его чтобы поставить какой-нибудь смешной статус и вывести сообщение в консоль:
Запускаем нашего бота и получается примерно так: Посмотреть вложение 247752
Вы можете менять статус и активность, все доступные статусы и активности есть тут -
Вот код который ставит "Не беспокоить" и Слушает пользователей: await bot.change_presence(status=disnake.Status.do_not_disturb, activity=disnake.Activity(type=disnake.ActivityType.listening, name="пользователей")
Также можно подключить там какую-нибудь ДБ, чтобы потом с ней взаимодействовать (для примера).
2. on_member_ban:
Данный ивент вызывается когда пользователя банят (не выгоняют), мы будем использовать его чтобы написать в определенный канал, что пользователь забанен.
Он отправляет объект сервера и пользователя - guild и user, guild - сервер в котором пользователя забанили и user - пользователь которого забанили.
Мы будем использовать только user.
Для нахождения канала по ID используем метод get_channel(id)
Python:
@bot.event
async def on_member_ban(guild:disnake.Guild, user: disnake.Member):
channel = await bot.get_channel(1107292203912544338) # получение канала #баны
await channel.send(f"Пользователь {user.name}#{user.discriminator} был забанен.") # вывод сообщения о бане
Можно также вывести в виде embed:
Python:
@bot.event
async def on_member_ban(guild:disnake.Guild, user: disnake.Member):
channel = await bot.get_channel(1107292203912544338) # получение канала #баны
emb = disnake.Embed(title="Ещё один бан", description=f"Пользователь {user.name}#{user.discriminator} был забанен") #создание embed
await channel.send(embed=emb) # вывод embed'a в чат
Можно кастомизировать по своему
Сообщение при бане -
Данный ивент вызывается, когда пользователь заходит на наш сервер, мы будем использовать его чтобы написать в определенный канал, что пользователь присоединился к нам.
Он отправляет объект пользователя - user.
Для нахождения канала по ID используем метод get_channel(id)
Python:
@bot.event
async def on_member_join(user: disnake.Member):
channel = await bot.get_channel(1107267042865848351) # получение канала #приглашения
await channel.send(f"{user.mention} присоединился к нам!") # отправка сообщения
Можно вывести в embed, как в on_member_ban и сделать также с методом on_member_remove - это когда пользователь выходит с нашего сервера.
Сообщение при подключении пользователя -
Для получения ID нужно включить в настройках: Настройки -> Расширенные -> Режим разработчика, потом ЛКМ по каналу -> Копировать ID канала
3.Команды
Мы будем рассматривать слеш-команды в следующем гайде, а пока сделаем команды как в старые добрые, с помощью префикса
Мы сделаем команду say(пишет ваш текст, который вы написали в аргументах), ban и kick
1.say
Данная команда напишет ваш текст, например, у вас есть канал в котором вы хотите писать от имени бота.
Python:
@bot.command()
async def say(ctx: disnake.Message, *, text): # получение текста, который вы напишите
await ctx.message.delete() # удаление сообщения
await ctx.send(text) # отправка сообщения
Привет, я делаю бота для дискорда на disnake и когда я попытался сделать так, чтобы при заходе человека на сервер бот писал ему в лс, но бот не понимает когда на сервер заходит пользователь. Вот код:
Привет, я делаю бота для дискорда на disnake и когда я попытался сделать так, чтобы при заходе человека на сервер бот писал ему в лс, но бот не понимает когда на сервер заходит пользователь. Вот код: