Как создать экономику в дискорд сервере

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags

Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Экономический БОТ для Дискорд | Python + MongoDB

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Mikhail Sokov v 1.0
ac89854 May 6, 2021

Git stats

Files

Failed to load latest commit information.

Latest commit message
Commit time

README.md

Guide Book по созданию Discord бота с использованием sqlite3

Дата написания данного гайда 05.05.2021 Библиотека discord.py может обновляться, поэтому после крупных патчей разработка бота может отличаться. В любом случае ближайшие несколько месяцев данный гайд будет актуален.

Что нам потребуется?:

  1. Стабильное интернет соединение
  2. Знания языка Python на неплохом уровне
  3. Умение «гуглить» и находить нужную информацию
  4. Среда для написания кода
  5. Желательно понимать что такое DataBase и как с ним работать используя библиотеку sqlite3

Я советую для разработки бота создать отдельный сервер в Дискорде, где мы будем проверять нашего бота, потому что почти ни у кого не получается запустить сложный код с первого раза, а спамить другим не очень хочется.

Для начала нам нужно создать Discord Application, для этого мы должны перейти по этой ссылке: https://discord.com/developers/applications. После успешного входа в ваш аккаунт Discord, вам нужно нажать на кнопку New Application и выбрать имя для приложения. ВАЖНО: ИМЯ ДЛЯ САМОГО БОТА ДИСКОРДА МЫ БДЕМ НАСТРАИВАТЬ ПОЗЖЕ.

После создания Application’а мы должны перейти во вкладку Bot, а затем нажать на кнопку Add Bot.

Если у вас появилось зеленая надпись по типу: A wild bot has appeared!, значит вы всё сделали правильно и бот у вас уже создан.

Подключаем нашего бота к серверу:

Для того чтобы подключить бота к вашему серверу Дискорд, нужно следовать простым инструкциям:

  1. Нужно получить Client_ID вашего бота. Для этого мы переходим во вкладку General Information и копируем его нажав на кнопку Copy.
  2. Копируем эту ссылку ==>https://discordapp.com/oauth2/authorize?scope=botтут» вставляем наш Client_ID. Скобки естественно убираем. Доп. информация: В нашей ссылке botmain» (такое название не даст вам запутаться) и расширением .py и сразу сохраняем его в нашей папке с проектом.

    Как легко настроить unbelievaboat бота!? Экономика в дискорд сервере!

    Создаем еще один файлик .py названием config, для хранения в нём опасных данных. Почему мы не можем просто создать переменные с этими данными? Всё очень просто. Это самый простой способ защитить себя от злоумышленников. Если кто-то каким-то образом получит ваш код, то не сможет управлять вашим ботом.

    Все наши токены будут хранится в отдельном файлике.

    В файле config.py создаем словарь, к которому мы будем обращаться при работе в ботом:

    settings = < ‘token’: ‘Введите ваш токен’, ‘bot’: ‘Название вашего бота’, ‘id’: ‘id вашего бота (без кавычек)’, ‘prefix’: ‘префикс’ >

    Подготовка к работе с sqlite3:

    Для того чтобы нам работать с sqlite3 мы можем использовать cmd (Командную строку) или же использовать очень удобное приложение которое называется DB Browser for sqlite3. Установить его можно здесь: https://sqlitebrowser.org/ (Создание таблиц я буду проводить в этой программе)

    Переходим в установленный DB Browser и нажимаем на кнопку «Новая база данных». Затем выбираем путь к нашему проекту и указываем название, я поставил «bot_test».

    Можно переходить к созданию таблиц для работы. Самая первая таблица будет называться users, в неё мы будем записывать данные и пользователях (никнеймы, id, «упоминания и т.д.»)

    Нажимаем на кнопку создать таблицу и указываем в названии «users». Затем записываем в таблицу наши данные, а именно:

    • «id» INTEGER,
    • «nickname» TEXT,
    • «mention» TEXT,
    • «money» INTEGER

    После всех махинаций наша таблица в режиме пред.осмотра должна выглядеть так:

    CREATE TABLE «users» ( «id» INTEGER, «nickname» TEXT, «mention» TEXT, «money» INTEGER );

    Создаем вторую таблицу, которая называется shop (в нем будем хранить данные о товарах):

    CREATE TABLE «shop» ( «name» TEXT, «type» TEXT, «cost» INTEGER, «id» INTEGER );

    Ну вот мы и готовы начинать писать код:

    Для начала нам нужно импортировать все нужные библиотеки:

    import discord import sqlite3 from discord.ext import commands from config import *

    Написание «тела» для бота и первый запуск:

    Я буду стараться объяснять подробно каждый шаг и каждую строчку, потому что на первый взгляд это может показаться сложным, хотя таковым не является.

    bot = commands.Bot(command_prefix=settings[‘prefix’])

    Переменная bot — это «тело» нашего бота. Ему мы присваиваем значение commands.Bot с определёнными аргументами.

    command_prefix=settings[‘prefix’] — это аргумент, в который мы вписываем значение нашего префикса. settings[‘prefix’] означает, кто мы обращаемся к словарю settings (который мы импортировали из файла config.py) и обращаемся к ключу prefix, в котором вписано нужное нам значение.

    intents = discord.Intents.all()

    Этой строчкой мы подключаем намерения к Discord боту. ВАЖНО: ЕСЛИ ВЫ ПОДКЛЮЧАЕТЕ НАМЕРЕНИЯ ВЫ ДОЛЖНЫ ТАК-ЖЕ ВКЛЮЧИТЬ ИХ НА САЙТЕ DISCORD DEVELOPERS В НАСТРОЙКАХ ВАШЕГО БОТА.

    В discord py как и во всех мессенджерах есть ивенты. К примеру в discord.py есть ивент, который называется on_ready. Он срабатывает, когда бот подключился к серверам Discord и готов к работе.

    Ниже я написал пример того, как может быть написан ивент on_ready с использованием sqlite3. Такой метод работает только для одного сервера. Так-же у объекта bot, который мы создали есть большое количество методов, о которых я не вижу смысла рассказывать, так как это займет большое количество времени. Но если вам интересно то вот ссылка на документацию: https://discordpy.readthedocs.io/en/stable/#

    В данном фрагменте кода мы просто перечисляем всех участников сервера и добавляем в базу данных, если их еще там нет. В качестве аргументов в таблицу BD мы указываем: ID пользователя, Отображаемое имя, mention(то есть упоминание пользователя), а так-же количество денег которое ему дается при старте.

    Мне кажется вам уже не терпится протестировать бота, поэтому мы в конце должны добавить еще одну строчку кода, которая запустит нашего бота.

    bot.run(settings[‘token’])

    Ну тут мы просто используем метод run, который запускает бота. В качестве аргумента используем токен, который у нас хранится в файлике config в словаре settings.

    Если вы всё сделали правильно у вас есть база данных со всеми пользователями. Только есть небольшая проблемка: Пользователи даже не могут проверить сколько денег у них на балансе 🙁

    Предлагаю создать команду !balance, которая позволит нам проверять сколько денег на данный момент у пользователя, написавшего команду.

    Тут я использую крутую фишку Discord’a, которая называется Embed. По факту это красивый вывод информации, который можно кастомизировать.

    Просто создаем объект класса Embed и используем большое кол-во разнообразных методов которые сделают из неё конфетку. Как это работает можно так-же посмотреть на оф.сайте discord.py, хотя тут по названиям и аргументам и так понятно что к чему.

    Можем проверять нашего бота. Запомните что строчка, запускающая нашего бота должна быть последней в скрипте.

    Исходя из предыдущих функций и ивентов мы научились получать информацию из BD и заносить её в таблицу. Давайте научимся ОБНОВЛЯТЬ информацию с помощью sqlite. Покажу на примере функции, которая выдает какое-либо количество денег пользователю.

    async def give_money(ctx, mention, money): try: mention = str(mention).replace(‘!’, ») for row in cursor.execute(f’SELECT money FROM users where mention=?’, (mention,)): cursor.

    execute(f’UPDATE users SET money=int(money) + row[0]> where mention=?’, (mention,)) data_base.commit() for row in cursor.execute(f’SELECT nickname FROM users where mention=?’, (mention,)): embed = discord.

    Embed(title=’Пополнение баланса’, color=0x42f566) embed.set_author(name=’Community Bot’) embed.add_field(name=’Оповещение’, value=f’Баланс пользователя row[0]> пополнен на money> SH’) await ctx.

    send(embed=embed) except Exception as E: print(f’give_money command error: E>’) embed = discord.Embed(title=’Оповещение’, color=0xFF0000) embed.

    add_field(name=’Оповещение’, value=’Ошибка при выполнение программы.’) await ctx.send(embed=embed)

    Прошу заметить что в данном случае в качестве аргументов: ctx (который является объектов класса Contex, упоминание (То есть mention) и кол-во денег).

    Советую всегда использовать Try при создании крупных функций для того чтобы быстро понять где вы допустили ошибку. В моем случае если человек ввел неправильные данные при использовании команды ему выводиться красивое оповещение об этом. Так-же не забываем про переводы переменных в другие типы данных, чтобы избежать казусов со складыванием str и int.

    При использовании Discord Embed, а именно в выборе цвета при создании объекта, я долго тупил как поменять цвет. Discord Embed использует hex colors, то есть Web colors, которые используются например в HTML и т.д. и т.п.

    Источник: github.com

    Discord бот с экономикой с sqlite

    Итак, перед тем, как написать бота, нам нужно его создать и получить токен:

    1. Перейти на сайт для разработчиков
    2. Нажать на кнопку «New Application» и назвать бота
    3. Получить токен бота, войдя в вашего бота и найдя в списке «Settings» вкладку «Bot»

    Необходимые модули

    Как-никак мы пишем на python, а не на ASM, поэтому нам будут необходимы некоторые модули

    $ pip install discord.py #само api для работы с ботом
    $ pip install tabulate #небольшой модуль для красивых таблиц

    Этап написания

    Импорт модулей

    Импортировать модули также просто, как и написать одну страницу на HTML+CSS.

    import sqlite3 #модуль sqlite import discord #модуль discord api from discord.ext import commands #необходимый класс для обработки команд from tabulate import tabulate #удобный модуль для рисования таблиц import json #используется только для обработки инвентаря, но ему можно найти и другое применение

    Подключение к sqlite

    Здесь нет ничего сложного. Просто после импорта прописываем следующее:

    conn = sqlite3.connect(«Discord.db») # или :memory: cursor = conn.cursor()

    Подготовка базы данных

    В базе данных будет 2 таблицы shop и users.

    CREATE TABLE «shop» ( «id» INT, «type» TEXT, «name» TEXT, «cost» INT )
    CREATE TABLE «users» ( «id» INT, «nickname» TEXT, «mention» TEXT, «money» INT, «rep_rank» TEXT, «inventory» TEXT, «lvl» INT, «xp» INT )

    Подготовка к написанию логики бота

    Создаем переменную bot.

    bot = commands.Bot(command_prefix=»_»)#в строчке command_prefix можно указать любые знак, букву, слово, словосочетания и т.д.

    В конце всего кода мы пишем метод, который запускает нашего бота.

    bot.run(«Здесь токен, который вы получили на этапе создания бота»)

    Теперь начнем писать нашего бота.

    bot = commands.Bot(command_prefix=»_») #Здесь будет логика вашего бота bot.run(«Здесь токен, который вы получили на этапе создания бота»)

    Дальше пишем событие on_ready(), отвечающее за готовность бота.

    После этого стоит, чтобы лишний раз не перезапускать бота, написать метод on_member_join()

    Если бот у нас экономический, значит должна быть валюта, ее заработок и ее трата. Заработок можно организовать с помощью experience системы.

    Одну из главных частей мы написали. Осталось написать команды по типу аккаунт, магазин и т.д. Думаю дальше интуитивно понятно.

    Если есть магазин, значит можно покупать? Не так-ли?

    async def buy(ctx, a: int): uid=ctx.author.id await ctx.send(‘Обработка. Если ответа не последует, указан неверный id предмета [buy ]’) for row in cursor.execute(f»SELECT money FROM users where money = row[0] for row in cursor.execute(f»SELECT id,name,cost FROM shop where cost=row[2] if money >= cost:#если у вас достаточно денег,то. money -=cost await ctx.send(f’Вы приобрели «» за ‘) for row in cursor.execute(f»SELECT inventory FROM users where data=json.loads(row[0]) data.append(a) daed=json.dumps(data) cursor.execute(‘UPDATE users SET money=?,inventory = ? where предмет вам в инвентарь pass if money < cost:#иначе сообщает о недостатке await ctx.send(f’Недостаточно средств’) pass conn.commit()#применение изменений в БД

    Заключение

    Вот такой простенький бот у нас получился. Надеюсь это кому-либо поможет.

    Я понимаю что в него можно (необходимо) добавить множество функций и фишек, но это голый вариант кода, который могут использовать новички для понимания как работает discord.py, модуль sqlite и встроенные методы python.

    Всем спасибо за внимание. До связи!

    Источник: habr.com

    Что такое экономический бот в Discord

    Чтобы пользователям программного обеспечения получить экономический бот Дискорд собственной разработки, требуется знать четкую последовательность действий. Кроме того, важно обращать внимание на имеющиеся особенности.

    Подготовительный этап

    Чтобы получить бот экономики Дискорд на русском, пользователям перед разработкой требуется пройти подготовительный этап. Это позволит в дальнейшем исключить недопонимание с вытекающими негативными последствиями.

    Создание бота

    Прежде чем приступить к разработке бота, требуется на начальном этапе создать и обрести токен. Для этого предусматривается следующая инструкция:

    • Переход на специализированный официальный портал для разработчиков. Для экономии времени рекомендуется воспользоваться адресом https://discordapp.com/developers/applications/.
    • На следующем этапе требуется нажать на клавишу «New Application», после чего присваивается новое имя для будущего бота.
    • Чтобы получить токен рассматриваемого бота, требуется перейти в настройки персонального бота и отыскать из представленного списка «Settings» с последующим переходом в подкатегорию «Bot».
    • Чтобы внести изменения, пользователям важно не забывать сохранять полученные результаты.

    Необходимые модули

    Пользователи должны понимать, что разработка бота осуществляется на специализированном языке программирования Python, а не на ASM, как многие ошибочно полагают. Поэтому для эффективной работы требуется пользоваться следующими модулями:

    • $ pip install discord.py #само api для организации стабильной работы с ботом;
    • $ pip install tabulate #небольшой модуль для формирования привлекательных таблиц.

    Из этого следует, что пользователям крайне важно знать базовые определения Python, чтобы исключить вероятность ошибок с вытекающими последствиями.

    Этап написания

    Чтобы создать рассматриваемый экономический бот Дискорд на русском, пользователям требуется соблюдать четкую последовательность действий. Исчерпывающая инструкция подразумевает под собой:

    • Импорт специализированных модулей.
    • Осуществление подключения к sqlite.
    • Компоновка специализированной базы данных.
    • На следующем этапе требуется выполнить подготовку к созданию логики.

    Каждый этап несет за собой определенные особенности. Поэтому важно проявлять ответственность, чтобы избежать последствий.

    Импорт модулей

    Импортировать специализированный модуль не вызывает сложностей. Отзывы пользователей указывают на стандартный алгоритм, как в случае с HTML+CSS.

    Подключение к sqlite

    Сразу после успешного импорта модуля, пользователю требуется в вести соответствующую команду. После этого осуществляется сохранение, нажатием на одноименную клавишу.

    Подготовка базы данных

    В программном обеспечении предусмотрено несколько специализированных баз данных — shop и users. Требуется делать выбор, отталкиваясь от поставленных задач перед ботом. Рекомендуется подходить к рассматриваемому этапу с максимальной ответственностью, чтобы исключить вероятность наступления негативных последствий.

    Подготовка к написанию логики бота

    Процедура подготовки в написании рассматриваемого бота – ключевой элемент. Поэтому крайне важно придерживаться четкой последовательности действий. Исчерпывающая инструкция подразумевает под собой несколько важных этапов, в частности:

    • Изначально пользователю требуется создать специализированную переменную бот.
    • На следующем этапе указывает метод запуск в работу бота в программном обеспечении Дискорд.
    • После этого требуется приступить к написанию бота.
    • На следующем этапе пользователь указывает событие, которое несет ответственность за функциональную готовность бота.
    • Далее пользователям требуется указать метод on_member_join(), чтобы постоянно не перезагружать бота.

    Обратите внимание, если пользователю требуется получить экономического бота, необходимо указать валюту, показатели прибыли и затрат. Доходная часть организовывается благодаря разработанной современной системе experience. На завершающем этапе требуется внести специализированные команды типа личного кабинета, магазина и прочего. По завершении сохраняются результаты нажатием на одноименную клавишу.

    Источник: discordik.ru

Рейтинг
( Пока оценок нет )
Загрузка ...