Я пытаюсь создать бота Discord, который может банить пользователя на двух моих серверах, если я забаню его на основном сервере. При тестировании прогресса все, казалось, работало, пока не дошло до фактического бана пользователя. Ошибок не возникло, но пользователя не забанили. При повторной попытке тестирования я продолжаю получать ошибки UserNotFound. Я перезапустил бота, повторно добавил его и тестируемого пользователя на оба сервера и попытался очистить кеш, но бот по-прежнему не распознает, что пользователь больше существует.
Это код команды запрета:
async def totalban(ctx, userID):
if ctx.message.author.guild_permissions.administrator: # check if admin
if ctx.guild.id == GUILD_ID: # if admin, check if right guild
await ctx.send('Confirmed administrator on proper server.')
time.sleep(1)
global TARGET_ID
TARGET_ID = int(userID) # record target user ID
converter = UserConverter()
user = await converter.convert(ctx, userID) # convert arg to User
username = user.name + '#' + user.discriminator # easy reference in Name#1234 format
global TARGET_USERNAME
TARGET_USERNAME = username
await ctx.send('User ID ' + userID + ' corresponds to ' + username + '.')
time.sleep(1)
await ctx.send('To confirm ban of ' + username + ', type **!confirmtotalban ' + username + '** now.')
global CANCONFIRMBAN
CANCONFIRMBAN = True # allow !confirmtotalban command to function
else:
await ctx.send('Cannot run command from this server.')
else:
await ctx.send('User unauthorized to run command.')
И это функция, которую я запускал при попытке заблокировать тестовую учетную запись:
(Если это поможет, у меня никогда не было ошибок UserNotFound до запуска этого кода.)
async def banloop(ctx):
global TARGET_ID
for guild in ctx.bot.guilds:
await guild.ban(TARGET_ID)
А вот и обратная связь:
Traceback (most recent call last):
File "...\Programs\Python\Python38\lib\site-packages\discord\ext\commands\bot.py", line 903, in invoke
await ctx.command.invoke(ctx)
File "...\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 859, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "...\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
ret = await coro(*args, **kwargs)
File "...\example_bot.py", line 41, in totalban
user = await converter.convert(ctx, userID) # convert arg to User
File "...\Programs\Python\Python38\lib\site-packages\discord\ext\commands\converter.py", line 194, in convert
raise UserNotFound(argument)
discord.ext.commands.errors.UserNotFound: User "165995850303012864" not found.
Заранее благодарим за любую помощь, которую вы можете предложить, и дайте мне знать, если вам понадобится дополнительная информация от меня.
wait_for
, чтобы получить подтверждение реакции или что-то в этом роде - person Eric Jin   schedule 15.10.2020