Добро пожаловать на RAGEM.RU

Все для RageMP GTA 5

Мануал Создаём Discord бота

Appi

Пробегом тут
Команда форума
Куратор портала
Модератор
Регистрация
27.03.2023
Сообщения
332
Розыгрыши
0
Репутация
1
Реакции
363
Баллы
63
RC
94
Discord: a.p.p.i
Гайд по написанию дискорд бота на языке Python и на библиотеке Disnake

Скачать:

Скрытое содержимое доступно для зарегистрированных пользователей!
Библиотека:
Скрытое содержимое доступно для зарегистрированных пользователей!

Начало работы​

Установка Python​

  1. Тыкаем сюда и у вас скачивается Python 3.9
  2. Обязательно включаем галочку рядом с Add Python 3.9 to PATH и проходим дальнейшую установку
После установки Python вы так же можете установить Visual Studio Code для редактирования файлов бота по этой ссылке

Работа с ботом​

Создание нового бота на сайте​

  1. Заходим на сайт и нажимаем на кнопку New Application
  2. Вводим название приложения и нажимаем Create
  3. Выбираем вкладку Bot
  4. Нажимаем Add Bot
  5. И снова нажимаем Yes, do it!
  6. Нажимаем Reset Token и сохраняем его где-нибудь (После перезагрузки страницы токен пропадет и его придется пересоздать в случае утери)

Настройка интентов​

Во вкладке Bot включаем следующие галочки

  1. Public Bot - Означает, что бот является общедоступным и может быть добавлен другими людьми на их сервера в Discord.
  2. Presence Intent - Позволяет боту отслеживать присутствие пользователей, включая их статус в реальном времени (например, онлайн, отсутствует, занят) и активность (например, играет в игру).
  3. Server Members Intent - Позволяет боту получать информацию об участниках сервера, такую как имена, никнеймы, роли и т.д.
  4. Message Content Intent - Позволяет боту получать информацию о содержимом сообщений, включая текст и вложения.

Установка зависимости​

Пишем в cmd вот эту команду pip install disnake

Корневой файл​

Настройка бота под себя​

Статусы​

Python:
Онлайн
status=disnake.Status.online

Оффлайн
status=disnake.Status.offline

Не беспокоить
status=disnake.Status.dnd

Не активен
status=disnake.Status.idle

Активности​

Python:
Играет
activity=disnake.Game(name="игру")

Смотрит
activity=disnake.Activity(type=disnake.ActivityType.watching, name="ютуб")

Слушает
activity=disnake.Activity(type=disnake.ActivityType.listening, name="музыку")

Стримит
activity=disnake.Streaming(name="игру", url="https://www.twitch.tv/никнейм") #если убрать аргумент url то кнопки просто не будет, но все будет работать

Соревнуется в
activity=disnake.Activity(type=disnake.ActivityType.competing, name="создании бота")

Test Guilds​

Этот параметр обозначает добавление тестового сервера на котором слеш команды будут обновляться сразу При добавлении большого количество идентификаторов то бот будет запускаться медленно, советуем добавлять не более 3х

Что бы добавить туда свой сервер напишите так

Python:
test_guilds=[960169222808432660]

Что бы добавить несколько серверов напишите так

Python:
test_guilds=[960169222808432660, 941767647790514216]

Важно - Если айди вашего сервера не будет там то слеш команда появится/обновится только через 10-15 минут после её добавления/изменения

Создание кога​

Создаем файл <название на английском>.py в папке cogs, пример - moderation.py

Начинка кога (Вместо Fun ставим название своего кога)​

Python:
import disnake
from disnake.ext import commands

class Fun(commands.Cog):

    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_ready(self): #ивент который будет активироваться когда вы включите бота
        print('Любой текст, к примеру: Cog Fun - Ready')

    #Тут будут команды и ивенты

def setup(bot):
    bot.add_cog(Fun(bot))

Термины​

Ког - модуль бота где хранятся команды, можно создавать столько когов, сколько захотите (Модерация, Развлечение и.т.п)

Токен - зашифрованный ключ Discord, с помощью которого бот авторизуется

Импорт - обязательная вещь которая добавляет в код много полезного, пример ниже

Python:
import disnake
from disnake.ext import commands

Ивент - триггер который активируется при каком либо действии, к примеру on_ready - бот включен(готов)
 

Вывод количества участников Discord сервера в название канала.

Python:
import asyncio
import sys
import disnake
from disnake.ext import commands
import requests

# Установка политики цикла событий для Windows
if sys.platform == 'win32':
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

# Инициализация бота
bot = commands.Bot(command_prefix='.', intents=disnake.Intents.all())

# Функция для получения статуса сервера
@bot.slash_command(name="онлайн", description="Показать онлайн сервера")
async def online_command(inter: disnake.ApplicationCommandInteraction):
    try:
        response = requests.get("http://localhost:8080/")
        response.raise_for_status()
        await inter.response.send_message(f'Онлайн сервера: {response.text}')
    except requests.RequestException as e:
        await inter.response.send_message(f'Ошибка: {e}')

# Запуск бота
bot.run('TOKEN')
 

Вывод количества участников Discord сервера в название канала.

Python:
import asyncio
import sys
import disnake
from disnake.ext import commands
import requests

# Установка политики цикла событий для Windows
if sys.platform == 'win32':
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

# Инициализация бота
bot = commands.Bot(command_prefix='.', intents=disnake.Intents.all())

# Функция для получения статуса сервера
@bot.slash_command(name="онлайн", description="Показать онлайн сервера")
async def online_command(inter: disnake.ApplicationCommandInteraction):
    try:
        response = requests.get("http://localhost:8080/")
        response.raise_for_status()
        await inter.response.send_message(f'Онлайн сервера: {response.text}')
    except requests.RequestException as e:
        await inter.response.send_message(f'Ошибка: {e}')

# Запуск бота
bot.run('TOKEN')
Это мой код :)
 
улучшенный мной)

твой вот Elez
Python:
import asyncio
import sys


if sys.platform == 'win32':
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

import disnake
from disnake.ext import commands
import requests

intents = disnake.Intents.all()
bot = commands.Bot(command_prefix='.', intents=intents)

@bot.slash_command(name="онлайн", description="Показать онлайн сервера")
async def online_command(inter: disnake.ApplicationCommandInteraction):
    url = "http://localhost:8080/"
 

    try:
        response = requests.get(url)
        if response.status_code == 200:
            source_code = response.text
            await inter.response.send_message(f'Онлайн сервера: {source_code}')
        else:
            await inter.response.send_message('Ошибка при получении данных с сервера.')
    except Exception as e:
        await inter.response.send_message(f'Ошибка подключения к серверу: {e}')

bot.run('TOKEN')


полезное
 

Все для RAGE:MP

Все для RAGE:MP. Портал о мультиплеере. Подумывали об том «как создать гта 5 сервер?» или «скачать готовый сервер rage mp?» на нашем сайте вы найдете очень много полезных ресурсов для RAGE:MP: готовые сервера, скрипты, моды, карты, шаблоны сайтов, мануалы и уроки, помощь в разработке, услуги скриптеров и других специалистов в сфере RAGE Multiplayer.

RAGE Multiplayer

Объединитесь с другими игроками, создайте свой сервер, сообщество или новый игровой режим. В RAGE Multiplayer вас ждут безграничные возможности и беспрецедентный контроль. Пусть ваше воображение будет единственным горизонтом.
Официальный сайт мультиплеера - rage.mp.
Сайт входит в группу проектов GTA V MP
Верх