from discord.ext import commands, tasks
import os
intents = discord.Intents.default()
intents.members = True # Enable member intents
bot = commands.Bot(command_prefix='*', intents=intents)
base_folder = "base/"
@bot.event
async def on_ready():
print(f'Logged in as {bot.user.name}')
@bot.event
async def on_member_join(member):
file_name = os.path.join(r'D:\ProgrammsVSC\DSbot_2\base',f'{member.name}.txt') # Абсолютный путь
with open(file_name, 'w') as file:
file.write(f'{member.name}\n\'country\':\'Default(по умолчанию)\'')
print(f'New member: {member.name}')
@tasks.loop(hours=24)
async def update_nicknames():
for guild in bot.guilds:
for member in guild.members:
file_name = base_folder + f'{member.name}.txt'
with open(file_name, 'w') as file:
file.write(member.name)
print(f'Updated member: {member.name}')
@bot.command()
async def create_country(ctx, country_name):
print(f'Command received: create_country {country_name}')
# Изменение параметра country у пользователя
member = ctx.author
member.country = country_name
# Создание и присвоение роли с названием страны
guild = ctx.guild
role_name = country_name
role = discord.utils.get(guild.roles, name=role_name)
if not role:
role = await guild.create_role(name=role_name)
await member.add_roles(role)
# Изменение параметра во второй строке файла
file_name = os.path.join(base_folder, f'{member.name}.txt')
with open(file_name, 'r+') as file:
lines = file.readlines()
lines[1] = f'\'country\':\'{country_name}\'\n'
file.seek(0)
file.writelines(lines)
file.truncate()
await ctx.send(f'Country set to {country_name} and role assigned.')
@bot.command()
async def create_valute(ctx, valute_name):
print(f'Command received: create_valute {valute_name}')
# Изменение параметра valute у пользователя
member = ctx.author
member.valute = valute_name
# Изменение параметра во второй строке файла
file_name = os.path.join(base_folder, f'{member.name}.txt')
with open(file_name, 'r+') as file:
lines = file.readlines()
lines[2] = f'\'valute\':\'{valute_name}\'\n'
file.seek(0)
file.writelines(lines)
file.truncate()
embed = discord.Embed(title="Valute Update", description=f"Valute set to {valute_name}.", color=discord.Color.blue())
await ctx.send(embed=embed)
bot.run('TOKEN')
Код должен сохранять названия при
вызове соответствующих команд в файлы
с названиями ников пользователей , но при этом бот никак не реагирует на команды
, а VSC не выводит никаких известий о проблеме в виде ошибок (выполнение программы продолжается).