Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Как создать Discord Bot (Чат-Бот)

#V9GAS

Компетентный
Приветсвую, в этом уроке мы будем создавать Дискорд Бота.
Автор: Я.
Движок: Visual Studio Code.
1. Первым действием создаем папку с любым названием главное на английском, после в ней же создаём 2 файла с названиями main.py и config.py.
2. Второе мы заходим в Visual Studio Code и в директорию где была указан бот и заходим в файл main.py.


Начинаем уже опытное программирование.
3. Там мы пишем
PHP:
import config
from discord.ext import commands
import discord
import asyncio
Параметры:
import config - Импортируем файлы из файла config.py.
import discord - Сеть с чем мы будем заниматься.

4. Заходим в config.py и вписываем туда данную команду:
Python:
token = 'Ваш токен бота'
Параметры:
token - Токен вашего бота, без него ваш мод работанеть НЕ будет.

5. Возвращаемся в main.py и прописываем следующий код.
Код:
bot = commands.Bot(command_prefix='.')
bot.remove_command("help")
Параметры:
command_prefix - это префикс с помощью которой будет начинаться команда при её прописывании.
remove.command - Команда help вместо основной встроенной команды.

6. Создаем код для включения бота.
Код:
@bot.event
async def on_ready():
    print('Бот работает в нормальном режиме.')
Где "Бот работает в нормальном режиме." можно заменить на своё.

7. Начинаем создавать первую команду.
Код:
@bot.command()
async def sum(ctx, x: int, y: int):
    await ctx.send(x+y)
Параметры и обьяснение:
Данная команда считает цифры, Например: 1 2, плюс не надо ставить.
sum - это название команды.

8. Создаём код очистки чата.
Python:
@bot.command()
async def clear(ctx, count: int):
    await ctx.channel.purge(limit=count+1)
    await ctx.send(f"Было удаленно {count} сообщений.")
Параметры и обьяснение:
Команда очищяет нужное кол-во сообщений.
count - Кол-во.

9. Создаём команду хелп(help).
Python:
@bot.command()
async def help(ctx):
    await ctx.send("Я виртуальный Помощник.")
Параметры и обьяснение:
Команда help НЕ полная.
Где "Я виртуальный Помощник" можно заменить на свой текст.

10. Создаём команду Ban - Unban.
Python:
@bot.command()
async def ban(ctx, member: discord.Member = None, time = None, *, reason: str = None):
    time_letter = time[-1:]
    time_numbers = int(time[:-1])

    def t(time_Letter):
        if time_letter == 's':
            return 1
        if time_letter == 'm':
            return 60
        if time_letter == 'h':
            return 60*60
        if time_letter == 'd':
            return 60*60*24

    async def unb(member):
        users = await ctx.guild.bans()
        for ban_user in users:
            if ban_user.user == member:
                await ctx.guild.unban(ban_user.user)


    if member:
        if time:
            time_letter = time[-1:]
            time_numbers = int(time[:-1])

            def t(time_Letter):
                if time_letter == 's':
                    return 1
                if time_letter == 'm':
                    return 60
                if time_letter == 'h':
                    return 60*60
                if time_letter == 'd':
                    return 60*60*24
            if reason:
                await member.ban(reason=reason)
                await ctx.send(embed=discord.Embed(description=f'Пользователь {member.mention} был Забанен \nна: {time} \nПричина: {reason}'))

                await asyncio.sleep(time_numbers*t(time_letter))

                await unb(member)
                await ctx.send(f'Пользователь {member.mention} Разбанен')
               

            else:
                await member.ban()
                await ctx.send(embed=discord.Embed(description=f'Пользователь {member.mention} был Забанен \nна: {time}.'))

                await asyncio.sleep(time_numbers*t(time_letter))

                await unb(member)
                await ctx.send(f'Пользователь {member.mention} Разбанен.')
        else:
            await member.ban()
            await ctx.send(embed=discord.Embed(description=f'Пользователь {member.mention} был Забанен.'))
    else:
        await ctx.send('Введите имя пользователя.')
Параметры и обьяснение:
Команда банит нужного вами человека. (Занесение в раздел Ban's).

Команда разбана:
Код:
@bot.command()
async def unban(ctx, id_: int = None):
    if id_:
        banned_users = await ctx.guild.bans()
        member_full = bot.get_user(id=id_)
        for ban in banned_users:
            if ban.user == member_full:
                await ctx.guild.unban(ban.user)
        await ctx.send('Пользователь разбанен.')
    else:
        await ctx.send('Введите айди.')
11. Создаём команду Kick (Кик).
Код:
@bot.command()
async def kick(ctx, member: discord.Member = None, *, reason:str =None):
    if member:
        if reason:
            await member.kick(reason=reason)
            await ctx.send(embed=discord.Embed(description=f'Пользователь {member.mention} был кикнут \nПричина: {reason}' ))
        else:
            await member.kick()
            await ctx.send(embed=discord.Embed(description=f'Пользователь {member.mention} был кикнут'))
    else:
        await ctx.send('Введите имя пользователя')
Параметры и обьяснение:
Команда полностью кикает нужного человека с сервера.

12. Создаем код в конце чтоб бот работал.
PHP:
bot.run(config.token)
Параметры:
bot.run - Запускает бота.
config.token - Берёт токен из файла config,py.

На этом урок закончен. Будет другие темы с продолжением кода.
Спасибо за внимание. Строго не судить. Данный бот мой первый.
 
Сверху Снизу