Задать вопрос
x_shuziK_x
@x_shuziK_x
Занимаюсь созданием Discord ботов.

Доступ/Запрет к команде?

Доступ и запрет к команде. Как разрешить и запретить пользователю использовать выбранную команду?
К примеру: Мне разрешено её использовать, а остальным - нет.
К тому же, как сделать удаление команды ботом, после её же написания?
Пример: я написала команду, после чего бот отправил сообщение, а команду удалил.
  • Вопрос задан
  • 3162 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
IgromikBot
@IgromikBot
Говнокодер
@Client.command(pass_context=True)
@commands.has_permissions(manage_messages=True)
async def ping(ctx):
	await ctx.message.delete()
	await ctx.send('Pong!')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@alekssamos
Программист любитель
ну типа
if  chat_id != admin_id: return False # только для админа

А удаление обычно MessageDelete Если там подобное есть.
Ответ написан
Комментировать
sabolch
@sabolch
Web devoloper
Доступ и запрет к команде. Как разрешить и запретить пользователю использовать выбранную команду?
К примеру: Мне разрешено её использовать, а остальным - нет.


Добавить условие, где chat.id == '123456789', где '123456789' - это ваш чат айди.
if (total_say_ban > 0.80) and message.chat.id == 441945234:
            user_name = message.text.split('@')[1].strip()
            print(total_say_ban)

            # Бан пользователя>
            conn = sqlite3.connect("users.db")
            cursor = conn.cursor()

            # Находим ублюдка по его username, меняем значение rules на False
            sql = """
                        UPDATE white_list 
                        SET rules = 'False' 
                        WHERE user_name=?
                        """
            cursor.execute(sql, [user_name])
            fetch_id = cursor.fetchone()

            conn.commit()
            bot.send_message(user_id, f"Пользователь @{user_name} забанен.")

В моём примере, только я могу забанить пользователя. Или только определенная группа модераторов (добавив к условию их айдишники). Ну или назначать через бота, написав соответствующий функционал)
Ответ написан
Комментировать
@wetwixs
@client.command()
@commands.has_any_role( ID, ID, ID ) # ID роли, можно хоть сколько, можно хоть один
async def mute( ctx, member:discord.Member,time:int, * ,reason ):
Ответ написан
Комментировать
@UberPool
Python/JS coder
Используй декораторы
@bot.command()
@commands.has_role(id_role) #id роли которой будет доступна эта команда
async def command(ctx):
    await ctx.message.delete()
      #делаешь что-то
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы