-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.py
More file actions
119 lines (101 loc) · 4.58 KB
/
Main.py
File metadata and controls
119 lines (101 loc) · 4.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import discord
from discord.ext import commands
import config
bot = commands.Bot(command_prefix='!')
DataPlayers = {}
#При запуске проводим инициализацию и если в logs будут значени добовляем их в DataPlayers
@bot.event
async def on_ready():
print('Ready!')
i = 0
while i < len(bot.users):
DataPlayers.update({"<" + "@" + "!" + str(bot.users[i].id) + ">": 0})
i = i + 1
await load()
#При подключении нового пользователя добовяем его в DataPlayers
@bot.event
async def on_member_join(member):
DataPlayers.update({"<" + "@" + "!" + str(member.id) + ">": 0})
await save(DataPlayers)
#При отключении шлем пользователя нахой и удаляем его счёт
@bot.event
async def on_member_remove(member):
del DataPlayers["<" + "@" + "!" + str(member.id) + ">"]
await save(DataPlayers)
#Инициализация-Присваиваем каждому пользователю счёт(defolt=0)
@bot.command()
@commands.has_permissions(administrator=True)
async def initialization(ctx):
i = 0
while i < len(bot.users):
DataPlayers.update({"<" + "@" + "!" + str(bot.users[i].id) + ">": 0})
i = i + 1
await save(DataPlayers)
#Показать счёт каждого участника
@bot.command()
@commands.has_permissions(administrator=True)
async def show_all(ctx):
for mem in DataPlayers:
await ctx.send("На счету " + mem + " находится " + str(DataPlayers[mem]) + " Galocoin")
#Пополнить счёт участника
@bot.command()
@commands.has_permissions(administrator=True)
async def plus(ctx, n: str, a: int):
DataPlayers[n] += a
await ctx.send(str(n) + " вас счёт был пополнен на: " + str(a))
await ctx.send(str(n) + " на вашем счету: " + str(DataPlayers[n]) + " Galocoin")
await save(DataPlayers)
#Уменьшить счёт участника
@bot.command()
@commands.has_permissions(administrator=True)
async def minus(ctx, n: str, a: int):
DataPlayers[n] -= a
await ctx.send(str(n) + " с вашего счёта было снято " + str(a) + " Galocoin")
await ctx.send(str(n) + " на вашем счету: " + str(DataPlayers[n]) + " Galocoin")
await save(DataPlayers)
#@commands.has_any_role("gnida") Просто для себя
#Показать количество денег на своём счету
@bot.command()
async def money(ctx):
await ctx.send("На ващем счету: " + str(DataPlayers["<" + "@" + "!" + str(ctx.message.author.id) + ">"]) + " Galocoin")
#Передать деньги с одного счётна на другой
@bot.command()
async def trans(ctx, n: str, a: int):
DataPlayers["<" + "@" + "!" + str(ctx.message.author.id) + ">"] -= a
DataPlayers[n] += a
await ctx.send("Со счёта " + str(ctx.message.author.name) + " переведено " + str(a) + " Galocoin " + " на счёт" + n)
await save(DataPlayers)
#Посмотреть на количество денег у другого человека
@bot.command()
async def friend(ctx, n: str):
await ctx.send("На счету " + str(n) + " находится: " + str(DataPlayers[n]) + " Galocoin")
#!!ВНУТРЕННЯЯ КОМАНДА!! сохранение данных путём передачи в специальный текстовый канал logs
async def save(b):
channel = bot.get_channel(681435028982726748)
await channel.send(str(b))
#!!ВНУТРЕННЯЯ КОМАНДА!! Загрузка данных из спец канала logs
async def load():
channel = bot.get_channel(681435028982726748)
async for message in channel.history(limit=1):
mem = message.content
memsplit = mem.split(',')
buffer = ''.join(memsplit)
buffersplit = buffer.split()
cout = 0
while cout < len(buffersplit):
del buffersplit[cout]
cout = cout + 1
buffert = buffersplit[-1]
del buffersplit[-1]
bufferth = ''.join(buffert)
bufferf = bufferth.split('}')
del bufferf[1]
peredel = ''.join(bufferf)
buffersplit.append(peredel)
dic = list(DataPlayers.keys())
cnt = 0
while cnt < len(dic):
DataPlayers[dic[cnt]] = int(buffersplit[cnt])
cnt = cnt + 1
await save(DataPlayers)
bot.run(config.TOKEN)