Discord Bot с экономикой, как сделать разную базу данных json для разных серверов?
Сделал Discord-бота с экономикой, в качестве базы данных использую привязанный к коду json файл. Друг увидел моего бота и захотел тоже его к себе на сервер. Но если кто-то на его сервере вводит команду shop (открывающую магазин с ролями) - открывается магазин с ролями моего сервера, которых у друга на его сервере нет. Также общий и счёт пользователей на обоих серверах (но против этого я ничего не имею против). Помогите, пожалуйста, сделать персональный shop для каждого сервера.
Ответы (1 шт):
У вас наверняка json-файл вашего сервера имеет какое-то название.
Вы можете создать для второго сервера другой файл с его данными и ролями, а затем сделать для обоих файлов названия в формате <id сервера>.json
Затем, при вызове команды shop из контекста получайте id сервера и открывайте соответствующий файл.
Например:
@bot.command()
async def shop(ctx):
server_id = ctx.guild.id # получили id сервера
json_file = open(f'{server_id}.json', 'r')
data = json.loads(json_file.read())
json_file.close()
В данном случае, в data будут считаны данные соответствующего сервера