import os
import discord, asyncio, random, time, sys, datetime
from datetime import datetime, timedelta
from discord.ext import commands, tasks
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='$', intents=intents)
@tasks.loop(minutes=0.1)
async def update_income():
print("income!")
for guild in bot.guilds:
for member in guild.members:
if not member.bot: # Пропускаем ботов
user_id = str(member.id)
user_data = read_user_data(user_id)
# Добавляем доход к балансу пользователя
income_amount = int(user_data['income'])
user_data['balance'] = str(int(user_data['balance']) + income_amount)
write_user_data(user_id, user_data)
# Отправляем сообщение пользователю в личные сообщения
try:
await member.send(f"Ваш баланс был пополнен на {income_amount} монет.")
except discord.Forbidden:
print(f"Не удалось отправить сообщение пользователю {member.id}.")
@bot.event
async def on_ready():
print('Ты залогинен под {0.user}'.format(bot))
update_income.start()
def read_user_data(user_id):
try:
with open(f'{user_id}.txt', 'r') as file:
data = {}
for line in file:
if '=' in line:
key, value = line.strip().split('=', 1)
data[key.strip()] = value.strip()
# Проверяем, что ключ 'balance' существует и устанавливаем его в 0, если он не существует
data['balance'] = data.get('balance', '0')
data['nickname'] = data.get('nickname', 'unknown')
data['last_work'] = data.get('last_work', '0')
data['income'] = data.get('income', '0')
return data
except FileNotFoundError:
return {'balance': '0', 'nickname': 'unknown', 'last_work': '0', 'income': '0'}
# Функция для записи данных пользователя в файл
def write_user_data(user_id, data):
with open(f'{user_id}.txt', 'w') as file:
for key, value in data.items():
file.write(f'{key} = {value}\n')
>