Как редактировать никнейм непрерывно с помощью disord py - PullRequest
1 голос
/ 04 октября 2019

Я настраиваю последнюю функцию моего бота-разногласия и испытываю проблемы с обновлением псевдонима ботов с помощью task.loop

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

def get_current_price():
    threading.Timer(15.0, get_current_price).start()
    r = requests.get('https://www.bitmex.com/api/v1/instrument?symbol=XBT&columns=lastPrice&count=1&reverse=true')
    price1 = r.json()
    global price2
    price2 = str(price1[0]['lastPrice'])
@tasks.loop(seconds=15.0)
async def change_nick():

В верхней части кода используются запросы для получения информации из API, а затем выбирается конкретное число, которое я хочу, из отправленных мной параметров. нижняя часть - это всего лишь фрагмент кода, который правильно описывает ik для цикла и показывает таймер, который у меня есть для него

Я попытался использовать guild.me self.edit и другие файлы, найденные в документации, но я не уверенЯ реализую его и не могу найти никаких примеров для обратного инжиниринга и обучения.

1 Ответ

0 голосов
/ 04 октября 2019

Чтобы изменить псевдоним в discord.py, вы должны сначала получить объект Member, чтобы его не путали с объектом User. Объекты Member ссылаются на кого-то, пока они находятся в Guild, тогда как объект User - это просто кто-то, существующий на платформе в целом, вы можете изменить только псевдоним объектов Member, поскольку он ссылается наих внутри гильдии.

Вы можете легко сделать это, выполнив

from discord.ext.commands import MemberConverter

guild = self.bot.get_guild(yourGuildIDHere) # Get the guild in question so you can actually get a member object

converter = MemberConverter()
member = await converter.convert(guild, yourid) # convert a userid to a member object reffering to the guild.

await member.edit(nick=nicknameHere)
...