mirror of
https://github.com/dizedev/Main-tech.git
synced 2026-09-16 21:58:48 +00:00
edit
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import json
|
||||
import os
|
||||
import settings
|
||||
|
||||
import disnake
|
||||
from disnake.ext import commands
|
||||
|
||||
@@ -13,32 +14,135 @@ async def on_ready():
|
||||
|
||||
|
||||
@bot.command()
|
||||
@commands.has_guild_permissions(
|
||||
administrator=True) # administrator=True - значит что использовать команду может человек только с правом администратора
|
||||
async def setmoderator(ctx, member: disnake.Member):
|
||||
async def secret(ctx):
|
||||
await ctx.message.delete()
|
||||
await ctx.send(f'Привет, {ctx.author.mention}. Это тайное сообщение!')
|
||||
|
||||
|
||||
@bot.command()
|
||||
async def news(ctx):
|
||||
# Ваш код для получения новостей
|
||||
page_news = [
|
||||
{'title': 'В России началась вакцинация от COVID-19', 'description': 'Правительство России объявило о начале '
|
||||
'кампании по вакцинации людей от '
|
||||
'COVID-19.'},
|
||||
{'title': 'Космический корабль SpaceX вернулся на Землю', 'description': 'Космический корабль SpaceX Crew '
|
||||
'Dragon вернулся на Землю после '
|
||||
'успешного запуска в космос.'},
|
||||
{'title': 'Главный тренер "Манчестер Юнайтед" уволен', 'description': 'Главный тренер "Манчестер Юнайтед" был '
|
||||
'уволен после непродолжительной карьеры'
|
||||
' в этой команде.'}
|
||||
]
|
||||
|
||||
# Создание встроенного сообщения с новостями
|
||||
embed = disnake.Embed(title='Новости', color=0xff8800)
|
||||
for i, new in enumerate(page_news):
|
||||
embed.add_field(name=f'{i + 1}. {new["title"]}', value=f'{new["description"]}\n\u200b', inline=False)
|
||||
|
||||
# Отправка сообщения с встроенным сообщением
|
||||
await ctx.send(embed=embed)
|
||||
|
||||
|
||||
@bot.command()
|
||||
@commands.has_guild_permissions(administrator=True)
|
||||
async def set_moderator(ctx: disnake.AppCommandInteraction, member: disnake.Member):
|
||||
member = member or ctx.message.author
|
||||
guild = bot.get_guild(1060537877982887957)
|
||||
role = guild.get_role(1060541642450411560)
|
||||
|
||||
await member.add_roles(role)
|
||||
await ctx.send(f"Пользователю {member.mention} была выдана роль {role.mention}")
|
||||
|
||||
|
||||
@bot.command()
|
||||
@commands.has_guild_permissions(
|
||||
administrator=True) # administrator=True - значит что использовать команду может человек только с правом администратора
|
||||
async def dellmoderator(ctx, member: disnake.Member, moder_level: int):
|
||||
@commands.has_guild_permissions(administrator=True)
|
||||
async def dellmoderator(ctx: disnake.AppCommandInteraction, member: disnake.Member):
|
||||
member = member or ctx.message.author
|
||||
guild = bot.get_guild(1060537877982887957)
|
||||
role = guild.get_role(1060541642450411560)
|
||||
|
||||
await member.remove_roles(role)
|
||||
await ctx.send(f"Пользователю {member.mention} была снята роль {role.mention}")
|
||||
|
||||
|
||||
def save_data(user, data):
|
||||
with open(f'./users/{user.id}.json', 'w') as file:
|
||||
json.dump(data, file)
|
||||
|
||||
|
||||
# Функция загрузки данных пользователя из файла JSON
|
||||
def load_data(user):
|
||||
try:
|
||||
with open(f'./users/{user.id}.json', 'r') as file:
|
||||
return json.load(file)
|
||||
except FileNotFoundError:
|
||||
return None
|
||||
|
||||
|
||||
# Создание команды регистрации
|
||||
@bot.command()
|
||||
async def register(ctx: disnake.AppCommandInteraction, name):
|
||||
# Проверка, был ли пользователь уже зарегистрирован
|
||||
data = load_data(ctx.author)
|
||||
if data is not None:
|
||||
await ctx.send('Вы уже зарегистрированы')
|
||||
return
|
||||
|
||||
# Создание данных пользователя и сохранение их в файл JSON
|
||||
data = {'name': name, 'coins': 0}
|
||||
save_data(ctx.author, data)
|
||||
|
||||
await ctx.send(f'{ctx.author.mention}, вы были зарегистрированы')
|
||||
|
||||
|
||||
# Создание команды для просмотра баланса
|
||||
@bot.command()
|
||||
async def balance(ctx):
|
||||
# Загрузка данных пользователя из файла JSON
|
||||
data = load_data(ctx.author)
|
||||
|
||||
# Проверка, зарегистрирован ли пользователь
|
||||
if data is None:
|
||||
await ctx.send(f'{ctx.author.mention}, вы не зарегистрированы')
|
||||
return
|
||||
|
||||
await ctx.send(f'{ctx.author.mention}, ваш текущий баланс: {data["coins"]}')
|
||||
|
||||
|
||||
@bot.command()
|
||||
async def pay(ctx: disnake.AppCommandInteraction, recipient: disnake.User, amount: int):
|
||||
# Загрузка данных отправителя из файла JSON
|
||||
sender_data = load_data(ctx.author)
|
||||
|
||||
# Проверка, зарегистрирован ли отправитель
|
||||
if sender_data is None:
|
||||
await ctx.send(f'{ctx.author.mention}, вы не зарегистрированы')
|
||||
return
|
||||
|
||||
# Проверка, что у отправителя достаточно средств
|
||||
if sender_data['coins'] < amount:
|
||||
await ctx.send(f'{ctx.author.mention}, недостаточно средств')
|
||||
return
|
||||
|
||||
# Загрузка данных получателя из файла JSON
|
||||
recipient_data = load_data(recipient)
|
||||
|
||||
# Проверка, зарегистрирован ли получатель
|
||||
if recipient_data is None:
|
||||
await ctx.send(f'{recipient.mention} не зарегистрирован')
|
||||
return
|
||||
|
||||
# Обновление баланса отправителя и получателя
|
||||
sender_data['coins'] -= amount
|
||||
recipient_data['coins'] += amount
|
||||
|
||||
# Сохранение данных отправителя и получателя в файлах JSON
|
||||
save_data(ctx.author, sender_data)
|
||||
save_data(recipient, recipient_data)
|
||||
|
||||
await ctx.send(f'{ctx.author.mention} перевел {recipient.mention} {amount} монет!')
|
||||
|
||||
|
||||
for filename in os.listdir("./cogs"):
|
||||
if filename.endswith(".py"):
|
||||
bot.load_extension(f"cogs.{filename[:-3]}")
|
||||
|
||||
|
||||
bot.run(settings.discord_token)
|
||||
bot.run("MTA5ODk5MzExMjI5NjE5NDA3MA.GUj8WN.16iwjYtaouRXbsfJhCi1U7fa75ehLFb7YRbEnU")
|
||||
|
||||
Reference in New Issue
Block a user