#python #json #discord #discord.py
#python #json #Discord #discord.py
Вопрос:
В настоящее время я создаю бота для нескольких серверов. Цель состоит в том, чтобы хранить разные идентификаторы для разных серверов в одном файле json.
Единственная проблема в том, что я не знаю, как проверить, на каком сервере в данный момент находится бот, а затем использовать эту информацию для использования правильных идентификаторов.
Я уже создал файл json и загрузил его в свой код, но теперь я не знаю, как загружать и использовать правильные идентификаторы из него.
На данный момент мой файл json выглядит так:
{
"token": 123,
"server1": [
{
"ownerid": 123,
"memberid": 123,
"IDs" : [
{
"messageid": 123,
"roleid": 123
}
]
}
],
"server2": [
{
"ownerid": 123,
"memberid": 123
}
]
}
Как я могу проверить, на каком сервере в данный момент находится бот?
Делает ли json это вообще или мне нужно что-то еще?
Я действительно не могу найти ни одного руководства по использованию одного и того же бота на нескольких серверах?? Можете ли вы, ребята, привести мне какие-либо примеры?
Спасибо за помощь 🙂
Ответ №1:
Лучший способ сделать это — сохранить идентификатор гильдии после ее присоединения (и, возможно, удалить его при выходе).
В качестве некоторых рекомендаций, чтобы получить идентификатор каждой гильдии, сработало бы что-то вроде этого:
@bot.event
async def on_guild_join(guild):
id = guild.id
В случае, если у вас есть создание JSON в другой функции или ваш бот уже запущен на нескольких серверах, и вы хотите знать, на каком guilds
из них он находится в данный момент, вы можете повторить client.guilds
атрибут:
for guild in self.client.guilds:
id = guild.id
# Add id to JSON
Комментарии:
1. И могу ли я сохранить отдельные идентификаторы для определенного сервера в json? Как мне тогда импортировать json? Обычный с
open with
вызовом, а затем вызов или есть что-то особенное?2. В моем примере это было только для сохранения
guild id
, если вы хотите сохранить другие идентификаторы внутри, просто выполните итерацию, напримерfor member.id in guild.members
, илиfor role.id in guild.roles
. Библиотека JSON может помочь вам с сбросом информации в ваши файлы.