Discord.py переписать данные нескольких серверов - PullRequest
0 голосов
/ 05 октября 2018

Так что я уже некоторое время работаю с discord.py и недавно переключился на discord.py-rewrite.Я не могу найти что-то действительно о том, как это сделать.Но я бы хотел иметь данные по каждой гильдии.Например, если бот находится в Server 1, а Owner1 делает -prefix !!, это добавит это к их префиксам, но только в их гильдии.Так что это не будет префикс в Server2.Любая помощь будет отличной.Мне сказали, что я могу сделать это с JSON файлами, но не могу найти на нем ничего, что я хочу.

1 Ответ

0 голосов
/ 05 июля 2019

Я сам производитель бот-дисков, и иногда у меня возникает эта проблема.Я создал обходной путь для этого.

Вам нужен словарь вместо переменных.Ключом словаря являются атрибуты гильдии, а значением является дата этой гильдии.

Вот мой фрагмент кода:

# Changing variables and setting them
#--------------------------------------------------------------

# Changing the values of a dictionary.
def guildvarchg(variable, guild, value): # Guild Variable Change
    for key in variable.keys(): # Do not change any of this.
        if key == guild:
            variable[key] = value

# To get a certain guild's variable, add [guild id] to the dictionary name.
# For example: variable[ctx.author.guild] # takes the data for that guild

# You are going to run into a first time setup issue. 
# To counter this, and for every new guild, add this if statement:

if ctx.author.guild not in variable: # only use this in a command definition
    variable[ctx.author.guild] = 'New value' # adds a new server to the data.
else:
    guildvarchg(variable, ctx.author.guild, new_value) # <<< overwrites the server data


#--------------------------------------------------------------

Рекомендуется создать все переменные [словари] перед запуском

variable{None:None} # Format after setting: variable{guild_id, data}

Если вы найдете это полезным, примите этот ответ и поделитесь этим кодом с друзьями.Я думаю, многим это нужно.

...