@anti_jeka

Как сделать, чтобы бот не принимал больше одной команды «Копать»?

Когда начинаешь спамить этой кнопкой, бот начинает реагировать на все команды.
Вот код:
import telebot
from telebot import types
import time
import random
count = 0

ignore = {}
TOKEN = '???'
bot = telebot.TeleBot(TOKEN)

@bot.message_handler(commands=['start'])
def menu_button(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    dig = types.KeyboardButton('Шахта')
    pickaxes = types.KeyboardButton('Кирки')
    markup.add(dig, pickaxes)
    menu_miners = types.KeyboardButton('Твой профиль')
    donat = types.KeyboardButton('Донат')
    markup.add(menu_miners, donat)
    bot.send_message(message.chat.id, 'Привет, Юный копатель!', reply_markup=markup)

@bot.message_handler(content_types=['text'])
def button(message):
    global count
    if message.text == 'Шахта':
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        item1 = types.KeyboardButton('Копать')
        back = types.KeyboardButton('Выйти из шахты')
        markup.add(item1, back)
        bot.send_message(message.chat.id, 'Что ты выберешь?', reply_markup=markup)
    elif message.text == 'Копать':
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        itm = types.KeyboardButton('Копать')
        itm1 = types.KeyboardButton('Выйти из шахты')
        markup.add(itm, itm1)
        count = random.randint(1, 10)
        adding_onevsone()
        if ignore.get(message.chat.id):
            message1 = bot.send_message(message.chat.id, 'Херня переделывай', parse_mode='html',
                                        reply_markup=types.ReplyKeyboardRemove())
            if message.text == 'Копать':
                ignore.pop(message.text)
        else:
            message1 = bot.send_message(message.chat.id, 'Добываем руду...', parse_mode='html',
                                        reply_markup=types.ReplyKeyboardRemove())
            time.sleep(2)
            bot.delete_message(message.chat.id, message1.id)
            bot.send_message(message.chat.id, f'Вы добыли {count} золота', reply_markup=throwing_reply)
            ignore[message.text] = True



    elif message.text == 'Выйти из шахты':
            markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
            dig = types.KeyboardButton('Шахта')
            pickaxes = types.KeyboardButton('Кирки')
            markup.add(dig, pickaxes)
            menu_miners = types.KeyboardButton('Твой профиль')
            donat = types.KeyboardButton('Донат')
            markup.add(menu_miners, donat)
            bot.send_message(message.chat.id, 'Отлыниваешь от работы', reply_markup=markup)
def adding_onevsone():
    global throwing_reply
    throwing_reply=types.ReplyKeyboardMarkup()
    throwing_reply.add(types.KeyboardButton('Копать'), types.KeyboardButton('Выйти из шахты'))

bot.infinity_polling()
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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