Discord bot python экономика

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

License

Discord-py-Projects/Discord.py-Economy-Bot

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

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?

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.

Читайте также:  Import html into adobe indesign

Launching Visual Studio Code

Your codespace will open once ready.

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

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Open a terminal or cmd (Depending on you’re operating system)

Type: git clone https://github.com/Discord-py-Projects/Discord.py-Economy-Bot.git

Type if you’re on mac/linux: pip3 install -r requirements.txt Type if you’re on windows: pip install requirements.txt

Last open bot.py and replace the variable TOKEN with you’re bot token and PREFIX with you’re bot prefix

You have a discord economy bot, but it doesn’t fully work yet

Download and open the bank.sqlite file in the data folder

In the gui press Create Table with the name main and the fields as member_id integer bank integer wallet integer

Save the db and run the bot again! Type in: help to see all commands

The leader of this organatizion is And currently looking for other developers. We make discord.py bots for samples for bigger projects. I started this to help other discord.py devs to have a reliable source to get bot code from. We don’t care about you putting us in too you’re contribtions file but would be highly appreactiated! Thank you for using our code

If you would like to join our team, Please contact us at pythonsytaxerror@protonmail.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 = commands.Bot(command_prefix="_")#в строчке command_prefix можно указать любые знак, букву, слово, словосочетания и т.д.

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

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

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

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

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

@bot.event async def on_ready(): print("Bot Has been runned")#сообщение о готовности for guild in bot.guilds:#т.к. бот для одного сервера, то и цикл выводит один сервер print(guild.id)#вывод id сервера serv=guild#без понятия зачем это for member in guild.members:#цикл, обрабатывающий список участников cursor.execute(f"SELECT id FROM users where существует ли участник в БД if cursor.fetchone()==None:#Если не существует cursor.execute(f"INSERT INTO users VALUES (, '', '<@>', 50000, 'S','[]',0,0)")#вводит все данные об участнике в БД else:#если существует pass conn.commit()#применение изменений в БД 

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

@bot.event async def on_member_join(member): cursor.execute(f"SELECT id FROM users where также, существует ли участник в БД if cursor.fetchone()==None:#Если не существует cursor.execute(f"INSERT INTO users VALUES (, '', '<@>', 50000, 'S','[]',0,0)")#вводит все данные об участнике в БД else:#Если существует pass conn.commit()#применение изменений в БД 

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

@bot.event async def on_message(message): if len(message.content) > 10:#за каждое сообщение длиной > 10 символов. for row in cursor.execute(f"SELECT xp,lvl,money FROM users where expi=row[0]+random.randint(5, 40)#к опыту добавляется случайное число cursor.execute(f'UPDATE users SET xp= where lvch=expi/(row[1]*1000) print(int(lvch)) lv=int(lvch) if row[1] < lv:#если текущий уровень меньше уровня, который был рассчитан формулой выше. await message.channel.send(f'Новый уровень!')#то появляется уведомление. bal=1000*lv cursor.execute(f'UPDATE users SET lvl=,money= where участник получает деньги await bot.process_commands(message)#Далее это будет необходимо для ctx команд conn.commit()#применение изменений в БД 

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

@bot.command() async def account(ctx): #команда _account (где "_", ваш префикс указаный в начале) table=[["nickname","money","lvl","xp"]] for row in cursor.execute(f"SELECT nickname,money,lvl,xp FROM users where table.append([row[0],row[1],row[2],row[3]]) await ctx.send(f">\n") @bot.command() async def inventory(ctx):#команда _inventory (где "_", ваш префикс указаный в начале) counter=0 for row in cursor.execute(f"SELECT inventory FROM users where data=json.loads(row[0]) table=[["id","type","name"]] for row in data: prt=row for row in cursor.execute(f"SELECT id,type,name FROM shop where counter+=1 table.append([row[0],row[1],row[2]]) if counter==len(data): await ctx.send(f'>\n') @bot.command() async def shop(ctx):#команда _shop (где "_", ваш префикс указаный в начале) counter=0 table=[["id","type","name","cost"]] for row in cursor.execute(f"SELECT id,type,name,cost FROM shop"): counter+=1 table.append([row[0],row[1],row[2],row[3]]) if counter==4: await ctx.send(f'>\n') 

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

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.

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

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

A Economy Bot made using discord module of python

License

AyushSehrawat/eco-bot

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

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?

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.

Launching Visual Studio Code

Your codespace will open once ready.

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

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

A Economy Bot made using py-cord and mongoDB

Install the required modules

pip install -r requirements.txt 

Create a file data.json with these contents

Edit market.json for items/products

Database -> eco Collection -> money, bag 
  • Go to https://www.mongodb.com
  • From there register/Try Free ( Fill up the details or register via google )
  • Verify Email
  • Here for img

Click on project 0 , then click on new project

Click on build database, select Free (for starters), let the default settings be there, but you can chnage the last field of cluster name.

  • Then let the default things be selected and enter your username/password ( remember them ).
  • In the IP access list enter 0.0.0.0/0 (allow from everywhere).
  • Finish and clear
  • After that it will take some time to create. Once its finished go to Connect and select Connect your application. Select python and 3.6 or later. Then copy the link and paste in data.json. Edit the password (remove < >too). And done
  • Now go to Browse Collections and click Add My Own Data . Enter whatever db and collection name you want to use. Later to connect to that db you can do foo = cluster["database"]["collection"] in the code. Like ecomoney = cluster["eco"]["money"] .
  • That's it for db setup.

About

A Economy Bot made using discord module of python

Источник

Оцените статью