Я начал настраивать систему нивелирования для своего бота и пытался реализовать сообщение об уровне. Однако, поскольку создаваемая мной функция не является командой, я не думаю, что могу передать ей контекст, что вызывает проблемы.
Из-за отсутствия лучшего решения я добавил его в свою функцию, которая проверяет exp и сопоставляет с уровнем - что происходит, если создается копия уровня пользователя, а затем сравнивается с обновленным, чтобы увидеть, есть ли уровень произошло Это работает, однако моя ЕДИНСТВЕННАЯ проблема не в том, что я не могу отправить сообщение о повышении уровня.
async def levelcheck(user):
global userlvl
global userlvlc
channel = discord.Object(id="")
# copying the userlevel BEFORE update
try:
userlvlc = userlvl
except NameError as e:
print(e)
with open('userexp.json', 'r') as fp:
userexp = json.load(fp)
# finding out level based on exp
for x in range(0,len(levelcaps)):
if userexp[str(user)] <= levelcaps[x]:
userlvl = x
try:
if userlvlc < userlvl:
await ctx.send('You levelled up --> {}'.format(userlvl))
except NameError as e:
print(e)
#
return userlvl
Как вы можете ясно видеть, это не красивая команда, но, безусловно, работает. Я начал с попытки получить идентификатор канала, только чтобы понять, что не знаю, как получить текущий канал с контекстом. Есть ли способ отправить сообщение на текущий канал без контекста, или мне нужно переосмыслить свой метод?