예제 #1
0
async def com_help(message: types.Message):
    text_arr = message.text.split(" ")

    allow = True if len(text_arr) == 2 else False

    if allow == False:
        await message.reply(
            "🥺 Что-то не так написал\n пример: <code>buyemoji 💩</code>")
        return

    if db.dbget("holics", message.from_user.id) < 1000:
        await message.reply("🥺 Недостаточно холиков, нужно 1000 💕")
        return

    emoj = text_arr[1]
    check = strip_emoji(emoj)
    if check == "emj":
        await message.reply(f"Поставил {emoj}")
        db.post_sql(
            f"UPDATE users SET emoj = '{emoj}' WHERE chat_id = '{message.from_user.id}' "
        )
        db.post_sql(
            f"UPDATE users SET holics = holics - 1000 WHERE chat_id = '{message.from_user.id}' "
        )
    else:
        await message.reply(
            "🥺 Что-то не так написал\n пример: <code>buyemoji 💩</code>")
예제 #2
0
async def send(message: types.Message):
    text_arr = message.text.split(" ")
    target = message.reply_to_message.from_user
    holics = db.dbget("holics", message.from_user.id)
    if text_arr[1].isnumeric():
        if holics >= int(text_arr[1]):
            await message.reply(
                f"💖 <i>{message.from_user.first_name}</i> отправил <i>\n@{target.username}</i> — <b>{text_arr[1]} холиков</b> 💕"
            )
            db.post_sql(
                f"UPDATE users SET holics = holics - {text_arr[1]} WHERE chat_id = {message.from_user.id}"
            )
            db.post_sql(
                f"UPDATE users SET holics = holics + {text_arr[1]} WHERE chat_id = {target.id}"
            )
        else:
            await message.reply(f"🥺 недостаточно холиков, чувак")
    else:
        check = db.post_sql(
            f'SELECT * FROM items WHERE chat_id = {message.from_user.id} AND item = "{text_arr[1]}" '
        )
        if check:
            await message.reply(
                f"💖 <i>{message.from_user.first_name}</i> отправил <i>\n@{target.username}</i> — <b>{shop.i[text_arr[1]]['emoji']}{text_arr[1]}</b>"
            )
            await db.add_item("-", message.from_user.id, text_arr[1])
            await db.add_item("+", target.id, text_arr[1])
        else:
            await message.reply(f"🥺 нельзя отправить то, чего нету")
예제 #3
0
async def roll(game,message):

	text_arr = message.text.split(" ")
	
	try:
		bet = int(text_arr[1])
	except (ValueError, IndexError):
		await message.reply("Не ввёл сумму")
		return
	# if type(bet) != int:
	# 	await message.reply("Ставка должна состоять из чисел")
	# 	return

	if bet < 1:
		return
	if db.enoughholy(message.from_user.id,bet) is False:
		await message.reply("Недостаточно холиков")
		return

	profit = bet
	# DICE
	if game == "dice":
		dice = await bot.bot.send_dice(chat_id=message.chat.id, emoji="🎲")
		result = ""
		game = "🎲"

	
		await asyncio.sleep(3)
		dice = dice.dice.value
		if (text_arr[0].lower() == "бб" and dice < 4) or (text_arr[0].lower() == "кк" and dice > 3):
			result = "win"
			act = "+"

		else: 
			result = "lose"
			act = "-"

	elif game == "ball":
		dice = await bot.bot.send_dice(chat_id=message.chat.id,emoji="🏀")
		result = ""
		game = "🏀"

		await asyncio.sleep(3.3)
		dice = dice.dice.value
		if str(dice) in ("5","4") :
			result = "win"
			act = "+"
			profit = bet * 2

		else: 
			result = "lose"
			act = "-"


	db.post_sql(f"UPDATE users SET holics = holics {act} {bet} WHERE chat_id = {message.from_user.id}")	
	holics = db.dbget("holics", message.from_user.id)
	await message.reply(f"{game} — <i>{result}</i>\n💕 {holics} ({act}{profit})")
	await addxp(message.from_user.id, bet)
예제 #4
0
def balance(u, type):
    # query = f'SELECT holics FROM users WHERE chat_id = {message.chat.id};'
    inline = InlineKeyboardMarkup()
    holics = db.dbget("holics", u.id)
    user = db.post_sql(f"SELECT * FROM users WHERE chat_id = {u.id}")
    isassets = db.post_sql(f"SELECT * FROM assets WHERE chat_id = {u.id}")
    name = u.first_name
    hunger = user[0][4]
    home = "🐶 бездомный\n"

    if user[0][4] > 0.1:
        h_timer = db.post_sql(
            f"SELECT time FROM timers WHERE chat_id = {u.id} AND timer = 'hunger' "
        )
        hung = int(user[0][4] -
                   (int(time.time()) - h_timer[0][0]) / STUFF['hungerdec'])
        hung = hung if hung >= 0.1 else 0
        hunger = f"🍉 сытость: {hung} %"
    else:
        hunger = "🍉 голоден 😭"
    if user[0][7] != 0:
        # home = "🏠 живёт в домике"
        btn = InlineKeyboardButton(
            f"🏠 мой домик",
            callback_data=f"assets {u.id} check {user[0][7]} balance")
        # inline = InlineKeyboardMarkup()
        inline.add(btn)
        home = ""
    if isassets:
        assbtn = InlineKeyboardButton(f"🏩 активы",
                                      callback_data=f"assets {u.id} main")
        inline.add(assbtn)

    text = f"{name}\n💕 <b>{holics}</b> холиков \n\n{user[0][3]} {user[0][5]} уровень\n<i>({round(user[0][6],1)} XP из {user[0][5] * 100})</i>\n\n{hunger}\n{home}"
    holyshit = db.holyshit(u.id, "check")
    if holyshit:
        text += f"<b>Холи-щит</b> 🧿 {holy.since(holyshit)}"
    if type == "text":
        return text
    else:
        return inline
예제 #5
0
async def send(message: types.Message):

    item = db.check_item(message.from_user.id, "динамит")
    if not item:
        await message.reply(f"Купи динамит для начала")
        return
    d_timer = db.timer_check(message.from_user.id, "dynamite")
    if time.time() < d_timer[0][0]:
        t = holy.since(d_timer[0][0] - time.time())
        await message.reply(
            f"До следующего подрыва\nосталось: <b>{t}</b>\nЖди 🦖")
        return
    target = message.reply_to_message.from_user
    home = db.dbget("home", target.id)
    if int(home) == 0:
        await message.reply(f"🙉 Что ты подрывать собрался? Он на улице живёт")
        return

    await message.reply(
        f"🧨 {message.from_user.first_name} подорвал домик {target.first_name}!"
    )
    await db.add_item("-", message.from_user.id, "динамит")
    # db.post_sql(f"UPDATE users SET hunger = hunger - 50 WHERE chat_id = {target.id}")
    db.post_sql(
        f"UPDATE timers SET time = {time.time()+20} WHERE chat_id = {message.from_user.id} AND timer = 'otrava' "
    )
    db.post_sql(
        f"UPDATE assets SET state = state - 50 WHERE chat_id = {message.from_user.id} AND rowid = {home} "
    )
    check = db.post_sql(f"SELECT state FROM assets WHERE rowid = {home}")
    if int(check[0][0]) <= 0:
        db.post_sql(
            f"UPDATE users SET home = 0 WHERE chat_id = {message.from_user.id}"
        )
        db.post_sql(
            f"UPDATE assets SET state = 0 WHERE chat_id = {message.from_user.id} AND rowid = {home} "
        )
예제 #6
0
async def send(message: types.Message):
    d_timer = db.post_sql(
        f"SELECT time FROM timers WHERE chat_id = {message.from_user.id} AND timer = 'rob' "
    )
    if time.time() < d_timer[0][0]:
        t = holy.since(d_timer[0][0] - time.time())
        await message.reply(
            f"До следующего ограбления\nосталось: <b>{t}</b>\nЖди 🔫🦖")
        return

    target = message.reply_to_message.from_user
    await db.hunger_check(target.id)
    target_hunger = db.dbget("hunger", target.id)
    home = db.dbget("home", target.id)

    holyshit = db.holyshit(target.id, "check")
    if holyshit:
        await message.reply(
            f"<b>{target.first_name}</b> под защитой 🧿\n<code>Выбери другую жертву</code>"
        )
        return

    if int(home) != 0:
        await message.reply(f"{target.first_name} в домике 🏠\nпососи")
        return

    if target_hunger == 0:
        gun = db.check_item(message.from_user.id, "пестик")
        if gun:
            chance = [1]
            amount_rand = [3, 3, 3, 2.5, 2.5, 2.5, 2, 1.5]

        else:
            chance = [0, 0, 0, 1]
            amount_rand = [7, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 3]

        if random.choice(chance) == 0:
            await message.reply(
                f"‼️ {message.from_user.first_name} попытался ограбить {target.first_name} но не получилось ..."
            )
            db.post_sql(
                f"UPDATE timers SET time = {time.time()+TIMERS['rob_attempt']} WHERE chat_id = {message.from_user.id} AND timer = 'rob' "
            )
            return

        amount = db.dbget("holics", target.id)
        amount = int(amount / int(random.choice(amount_rand)))
        await message.answer_animation(
            "CgACAgQAAxkBAAIvoWAjo96LFMGOLNYgsEQXtwmjpE5aAAJiAgAC84o0Un_UeBSZfoYGHgQ"
        )
        await asyncio.sleep(0.2)
        await message.reply(
            f"{message.from_user.first_name} 🔫 ограбил {target.first_name} на {amount} 💕"
        )
        db.post_sql(
            f"UPDATE timers SET time = {time.time()+TIMERS['rob']} WHERE chat_id = {message.from_user.id} AND timer = 'rob' "
        )
        db.post_sql(
            f"UPDATE users SET holics = holics - {amount} WHERE chat_id = {target.id}"
        )
        db.post_sql(
            f"UPDATE users SET holics = holics + {amount} WHERE chat_id = {message.from_user.id}"
        )
    else:
        await message.reply(f"🥺 низя, жертва сыта")
예제 #7
0
async def answer(callback_query: types.CallbackQuery):

    text_arr = callback_query.data.split(" ")

    if callback_query.from_user.id != int(text_arr[1]):
        await bot.answer_callback_query(callback_query.id, text="не трогай 😈")
        return

    # -------------------------------------------------------------------#
    # --------------------------- H O U S E -----------------------------#

    if text_arr[2] == "check":
        await callback_query.message.edit_text(
            house.housecheck(callback_query.from_user, text_arr, 'text'),
            reply_markup=house.housecheck(callback_query.from_user, text_arr,
                                          'keyboard'))

    if text_arr[2] == "housedwell":
        isempty = db.post_sql(
            f"SELECT dwellerinfo FROM assets WHERE rowid = '{text_arr[3]}' ")
        if isempty[0][0] != '':
            await bot.answer_callback_query(callback_query.id,
                                            text="домик уже занят 😈")
            return

        price = db.post_sql(
            f"SELECT value FROM assets WHERE rowid = '{text_arr[3]}' ")
        text = f"🏡 На сколько арендуем?\n<i> Владелец установил <b>{price[0][0]}</b> 💕 (за час)</i>"
        inline = house.housedwell(text_arr)
        await callback_query.message.edit_text(text, reply_markup=inline)

    if text_arr[2] == "housedwellfinal":
        isempty = db.post_sql(
            f"SELECT dwellerinfo FROM assets WHERE rowid = '{text_arr[3]}' ")
        if isempty[0][0] != '':
            await bot.answer_callback_query(callback_query.id,
                                            text="домик уже занят 😈")
            return
        if db.dbget("holics", callback_query.from_user.id) < int(text_arr[6]):
            await bot.answer_callback_query(callback_query.id,
                                            text="мало холиков 😈")
            return
        house.housedwellfinal(text_arr, callback_query, "guest")
        await callback_query.message.edit_text(
            house.housecheck(callback_query.from_user, text_arr, 'text'),
            reply_markup=house.housecheck(callback_query.from_user, text_arr,
                                          'keyboard'))
        h = db.post_sql(f"SELECT * FROM assets WHERE rowid = '{text_arr[3]}'")
        owner = h[0][4].split(";")[0]

        await callback_query.message.answer(
            f"🏡 {callback_query.from_user.first_name} арендовал домик у @{owner}"
        )

    if text_arr[2] == "houseundwell":
        isdweller = db.post_sql(
            f"SELECT dwellerinfo FROM assets WHERE rowid = '{text_arr[3]}' "
        )[0][0].split(";")[2]

        if int(isdweller) != int(callback_query.from_user.id):
            await bot.answer_callback_query(callback_query.id,
                                            text="что-то не так 😳")
            return
        if len(text_arr) == 6:
            f = True
        else:
            f = False
        asset = db.post_sql(
            f"SELECT * FROM assets WHERE rowid = {text_arr[3]}")
        asset = asset[0][5].split(";")
        if (time.time() - int(asset[3])) < 5 and f == False:
            await bot.answer_callback_query(
                callback_query.id,
                text="Покинуть квартиру можно минимум через 30 минут")
            return
        h = db.post_sql(f"SELECT * FROM assets WHERE rowid = '{text_arr[3]}'")
        if f == True:
            dweller = h[0][5].split(";")[0]
            await callback_query.message.answer(
                f"🏡 {callback_query.from_user.first_name} выселил @{dweller} со своего домика"
            )
        else:
            owner = h[0][4].split(";")[0]
            await callback_query.message.answer(
                f"🏡 {callback_query.from_user.first_name} выселился c домика @{owner}"
            )
        house.houseundwell(text_arr, "guest")
        await callback_query.message.edit_text(
            house.housecheck(callback_query.from_user, text_arr, 'text'),
            reply_markup=house.housecheck(callback_query.from_user, text_arr,
                                          'keyboard'))

    if text_arr[2] == "housedwellowner":
        await bot.answer_callback_query(callback_query.id)
        house.housedwellfinal(text_arr, callback_query, "owner")
        await callback_query.message.edit_text(
            house.housecheck(callback_query.from_user, text_arr, 'text'),
            reply_markup=house.housecheck(callback_query.from_user, text_arr,
                                          'keyboard'))

    if text_arr[2] == "houseundwellowner":
        await bot.answer_callback_query(callback_query.id)
        house.houseundwell(text_arr, "owner")
        await callback_query.message.edit_text(
            house.housecheck(callback_query.from_user, text_arr, 'text'),
            reply_markup=house.housecheck(callback_query.from_user, text_arr,
                                          'keyboard'))

    if text_arr[2] == "repair":
        if db.dbget("holics", callback_query.from_user.id) < 500:
            await bot.answer_callback_query(callback_query.id,
                                            text="Недостаточно холиков 😢")
            return
        await bot.answer_callback_query(callback_query.id,
                                        text="👍 Ты отремонтировал домик!")
        db.post_sql(
            f"UPDATE assets SET state = 100 WHERE rowid = {text_arr[3]}")
        asset = db.post_sql(
            f"SELECT * FROM assets WHERE rowid = {text_arr[3]}")
        dweller = asset[0][5].split(";")[2]
        db.post_sql(
            f"UPDATE users SET home = {text_arr[3]} WHERE chat_id = '{dweller}' "
        )

        await callback_query.message.edit_text(
            house.housecheck(callback_query.from_user, text_arr, 'text'),
            reply_markup=house.housecheck(callback_query.from_user, text_arr,
                                          'keyboard'))

    # --------------------------- H O U S E -----------------------------#
    # -------------------------------------------------------------------#

    if text_arr[2] == "main":
        try:
            await callback_query.message.edit_text(
                assets(callback_query.from_user),
                reply_markup=assetskeyboard(callback_query.from_user.id,
                                            "myassets"))
        except:
            pass

    if text_arr[2] == "balance":
        await callback_query.message.edit_text(
            balance(callback_query.from_user, "text"),
            reply_markup=balance(callback_query.from_user, "keyboards"))

    if text_arr[2] == "hometodwell":
        m = "🏡 Снять квартиру\n<i>список доступных к аренде домов</i>"
        r = assetskeyboard(callback_query.from_user.id, "hometodwell")
        if not r['inline_keyboard']:
            m += f"\n┄┄┄┄┄┄┄┄┄┄┄\nК сожалению никто сейчас \nне сдаёт квартиру 🐶"
        await callback_query.message.edit_text(m, reply_markup=r)

    await bot.answer_callback_query(callback_query.id)