Discord.py Бот Забанит Человека

#discord.py #discord.py-rewrite

#discord.py

Вопрос:

Есть ли способ запретить человеку использовать команды бота. По сути, дает этому конкретному человеку бан бота!

Discord.py

Ответ №1:

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

Ответ №2:

Вы можете просто сохранить идентификаторы запрещенного пользователя любым удобным для вас способом (список, json, текстовый файл или любая база данных), затем, когда пользователь использует команду, бот проверит, сохранился ли идентификатор пользователя или нет.

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

Простой пример:

 #stored ids 
BANNED_USERS = [1234567890, 0987654321]


@client.command()
async def check(ctx):
  #check if the user is banned
  if ctx.author.id in BANNED_USERS:
    await ctx.send("you are banned from using this command")
  #if the user is not banned
  else:
    await ctx.send("you are allowed to use this command")

@client.command()
async def blacklist(ctx, member: discord.Member):
  BANNED_USERS.append(member.id)
  await ctx.send(f"{member} has been added to the blacklist")

  

Если вы хотите использовать файл .txt, вот простой пример:

By this way the user id will be stored in the text file that means if you turned off your bot, the banned users They'll keep stored unlike the list one

 @client.command()
async def check(ctx):
  file =  open("banned.txt", "r")
  members_banned = file.readlines()
  if str(ctx.author.id) in members_banned:
    await ctx.send("you are not allowed to use my commands")
  else:
    await ctx.send("you are allowed to use my commands")
  file.close()

@client.command()
async def blacklist(ctx, member: discord.Member):
  file =  open("banned.txt", "a")
  file.write(member.id)
  file.close()
  await ctx.send(f"{member} has been added to the blacklist")