dev #43

Merged
profitroll merged 49 commits from dev into master 2023-05-02 14:12:58 +03:00
3 changed files with 396 additions and 0 deletions
Showing only changes of commit fdddedb139 - Show all commits

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -29,6 +29,9 @@ from modules.commands.start import *
from modules.commands.warn import *
from modules.commands.warnings import *
if datetime.now() > datetime(year=2023, month=4, day=14):
from modules.event import *
from modules.callbacks.ban import *
from modules.callbacks.nothing import *
from modules.callbacks.reapply import *

393
modules/event.py Normal file
View File

@ -0,0 +1,393 @@
# IF YOU'RE READING THIS DURING THE EVENT AND BEFORE COMPLETING IT - LEAVE NOW!
# ANALYZING THIS CODE WILL RUIN YOUR EXPERIENCE, SO PLEASE COMPLETE THE QUEST
# BEFORE GOING THERE. OTHERWISE THIS WILL BE CONSIDERED AS CHEATING, AND YOUR
# QUEST WILL BE RUINED FOREVER. PLEASE TAKE THIS WARNING SERIOUSLY.
from datetime import datetime
from os import path
from modules.database import db
from pyrogram import filters
from pyrogram.client import Client
from pyrogram.types import Message
from app import app
from modules.utils import configGet
collections = db.list_collection_names()
if not "event" in collections:
db.create_collection("event")
col_event = db.get_collection("event")
@app.on_message(
~filters.scheduled
& filters.command(["aufwiedersehen"], prefixes=["/"])
& filters.private
)
async def cmd_event_1(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 1}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 1, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №1",
)
await msg.reply_text(
"""Ви відразу поїхали на місце злочину, найкрупніше відділення мережі ресторанів фаст-фуду "KFP". Як Кіара й розповіла, ніяких слідів пограбування не було. Допитавши кількох працівників, ви не дізналися нічого корисного. Камери спостереження теж не дали ніякої корисної інформації.
Засмучені тим, що не дізналися нічого, ви вийшли на вулицю подихати свіжим повітрям, вільним від сильного запаху смаженої курятини. На всяк випадок, ви вирішили обійти ресторан декілька разів, але не помітили нічого підозрілого. Тяжко видохнувши, ви присіли на скамійку та озирнулися довкола.
Ресторан стояв поруч із великим озером, і навколо не було інших будинків. Найближча споруда до нього була невеличка рибацька хатка безпосередньо на березі. Подумав про те, що це краще, ніж нічого, ви підійшли до неї та постукалися. Вам ніхто не відповів. Ви обійшли цю хатку - і нарешті побачили хоч щось цікаве. На стіні, прихованій від поглядів, була маленька панелька, яку недосвідчене око й не помітило б. Ви підійшли, віддвинули її та здивувалися, побачив, що за нею був девайс для введення коду із цифровою клавіатурою. Код був із трьох цифр, і ніяких підказок не було. Цікавості заради, ви почали вводити рандомні комбінації: "001", "666", "420"... Четвертою комбінацією було "999" - і, на диво, вона спрацювала. Девайс заблимав зеленим - і ви побачили, як з-під землі з'явився люк. Ви віддвинули його - і спустилися по драбині вниз, до якогось дивного підземного проходу.
Пройшовши по ньому буквально двадцять кроків, ви побачили двері, а поруч із ними - ще один девайс для вводу пароля. Цього разу це були англійські букви, і в паролі їх було 6. Тут вже простим перебором не задовольнишся, тому ви почали шукати якісь підказки. На щастя, одну ви знайшли, з іншої сторони дверей була невеличка ніша, в якій лежав червоно-білий прапорець та [дивна фотографія](https://docs.google.com/document/d/1X3hj1mD0cPL6ZKgtFrOxHmiQtwCFnHQrBjsn0_gfR7s/edit?usp=sharing).
Ви відразу зрозуміли, кому належить ця хатка, та ввели правильний шестилітерний пароль.""",
disable_web_page_preview=True,
)
@app.on_message(
~filters.scheduled & filters.command(["tonjok"], prefixes=["/"]) & filters.private
)
async def cmd_event_2(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 1}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 2}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 2, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №2",
)
await msg.reply_text(
"""Ви дуже здивувалися, коли побачили, що таємна кімната виявилася... Бібліотекою. Просто для того, щоб впевнитися, що тут не відбувається нічого кримінального, ви відкрили першу ж книгу, що попалася на очі.
На обкладинці була намальована сором'язлива Оллі в нижній білизні. Ви почервоніли і прочитали назвуу. "Noise Complaint 3: Shutting Up Your Loud Zombie Neighbor (With French Kisses)". Це виявився юрійний фанфік! Ви швиденько пролистали його, почервоніли ще більше - і вирішили залишити кімнату. Що б тут не відбувалося, навряд чи це стосується викрадених яєць.
На щастя, коли ви піднялися назад на поверхню, хазяйка хатки ще не повернулася. На всяк випадок, ви залишили записку: "Ми розслідуємо злочин про викрадення пасхальних яєць. Якщо ваші яйця були вкрадені, будь ласка, зверніться до найближчого відділення Оодзора Кейсацу."
Не знайшовши ніяких нових доказів, ви вирішили повернутися до відділення. Там вас зустріла Субару в дуже поганому настрої. Ви коротко розповіли їй про те, що відбувалося протягом дня, і вона поскаржилася, що її набір яєць на Пасху теж був вкрадений!
Це вже виглядає як серійні крадіжки! Субару вирішила послати вас до Рейне, дізнатися, чи стала вона жертвою крадіїв теж. Оскільки та не дуже любить незнайомих людей, Субару дала вам таємний пароль, який треба буде сказати Рейне - назву юніта, що складається з Оодзори, Таканаші та Паволії."""
)
@app.on_message(
~filters.scheduled
& filters.command(["turducken"], prefixes=["/"])
& filters.private
)
async def cmd_event_3(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 2}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 3}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 3, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №3",
)
await msg.reply_text(
"""Прийшовши до будинку Рейне, ви не змогли потрапити всередину, бо ваші дзвінки були проігноровані. Роздивившись ворота поуважніше, ви побачили збоку невеличку табличку із написом "ВСЬОГО ЗА ТРИ ПРОСТИХ КЛІКИ ВИ ТЕЖ МОЖЕТЕ ДОЄДНАТИСЯ, MUDAH SEKALI" і кодовий замок із шести літер."""
)
@app.on_message(
~filters.scheduled & filters.command(["joinda"], prefixes=["/"]) & filters.private
)
async def cmd_event_4(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 3}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 4}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 4, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №4",
)
await msg.reply_text(
"""Пройшовши через ворота, ви постукали у двері і сказали таємний пароль від Субару. Двері відчинилися, і ви почули голос Рейне. "Заходь у останні двері ліворуч". На дверях чомусь була намальована велика червона цифра 5 та поруч був дуже дивний механізм. Ви не встигли роздивитися цей "замок", як двері почали повільно відчинятися. Зайшовши всередину ви опинилися у Кавуновій Кімнаті™, посеред якої сиділа Рейне. Ви почали задавати питання про яйця, але Кавунова Кімната™ не виходила з вашої голови, наче ви десь її бачили... І тут ви згадали! Така сама кімната була в тому фанфіку! На жаль, ви мали необережність сказати це вголос, і Рейне образилася на вас через те, що ви зайшли в її бібліотеку без дозволу. Із криками "ТА НІХТО НЕ КРАВ МОЇ ЯЙЦЯ!" вона випинує вас надвір, і ви вирішуєте іти до наступної Холоторі.
Ви вирішили завітати до Мумей. Діставшись її дому, ви довго стояли перед входом та думали, чи варто взагалі заходити. Її дім - це гігантська темна печера, що веде в невідоме. Але ваш обовязок кличе, тому, дістав свій ліхтарик, ви ризикнули зайти. Блукая тунелями печери, ви постійно натикалися на розвилки. Перші два перехрестя ви пройшли прямо, не завертаючи нікуди. Але на третьому вас чекали підозрілі червоні плями на стінах, і ви вирішили, що краще повернутися та обрати інший маршрут. Ви повертали то вліво, то вправо, то вліво, то вправо, і врешті-решт опинилися в тупику. На стіні висіла табличка з двома буквами: B та A, а під нею лежали полотно, перо та баночка з тією самою червоною рідиною. На самому ж полотні було 6 пустих клітинок. Чи варто вам спробувати щось написати чи просто розвернутися та піти іншою дорогою?
__(Введіть команду /next, якщо хочете продовжити розслідування, або введіть зашифровану команду /******, щоб побачити бонусну сцену, яка не впливає на геймплей.)__"""
)
@app.on_message(
~filters.scheduled & filters.command(["next"], prefixes=["/"]) & filters.private
)
async def cmd_event_5(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 4}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 5}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 5, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №5",
)
await msg.reply_text(
"""Ви повернулися на самий початок шляху і пішли в той напрямок, який ще не дослідили. На диво, ця дорога вела прямо. Коли ви йшли, вам по дорозі траплялися дивні камінчики, які ви вирішили збирати. На кінці шляху вас чекали великі двері, наче в бункері. Коло них був девайс для вводу коду з 3 цифр. Ви подивилися ще раз на камінчики, які зібрали та на символи на них:
一1403
二2308
三156
四2103
五0412
六154
七2203
八0408
九149
Подумав, ви вирішили ввести потрібні цифри від найменшої до найбільшої - і двері почали відчинятися"""
)
@app.on_message(
~filters.scheduled & filters.command(["238"], prefixes=["/"]) & filters.private
)
async def cmd_event_6(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 5}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 6}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 6, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №6",
)
await msg.reply_text(
"""Всередині ви побачили гігантську ферму, явно штучно зроблену, та Кроніі з Фауну, які поливали саженці. Вони здивувалися, побачивши вас, але ви швидко показали своє поліцейське посвідчення та пояснили ситуацію. Дівчата сказали, що ніякі яйця в Мумей ніхто не крав і що самі вони нічого не чули. Перед тим, як ви пішли далі, вони з ігривою посмішкою задали вам питання, сказав, що дадуть вам підказку, якщо ви правильно дасте відповідь.
- Поліцейський-кун, ти ж злякався, коли йшов сюди? Ти думав, що це кров була на стінах? Але ні, ця фарба була зроблена з іншого. А з чого саме?
Ви подивилися навколо та, побачивши, що більше всього росло на фермі, дали впевнену відповідь."""
)
@app.on_message(
~filters.scheduled & filters.command(["berries"], prefixes=["/"]) & filters.private
)
async def cmd_event_7(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 6}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 7}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 7, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №7",
)
await msg.reply_text(
"""Кроніі та Фауна, як обіцяли, дали вам підказку. Коли ви сказали, що ви опитуєте всіх Голоторі, вони зрозуміли, що далі ви підете до Луї. Але базу Голоксу просто так не знайти, тому дівчата підказали вам локацію. Ви прийшли на місце і опинилися перед звичайним собі житловим будинком у спальному районі. Ви знайшли вхід до підвалу та ввели код від двері (1111), який вам повідомили дівчата з ГолоРади. “Дивно, якось занадто легко як для секретної бази”, - подумали ви та зайшли всередину. Підвал виглядав абсолютно звичайно, єдине, що виділялося, - це залізні двері без ручки. Коло них на вас чекала чергова кодова панель. На цей раз із буквенною клавіатурою. Ви подивилися на символи на двері, “常夜”, та ввели правильний пароль."""
)
@app.on_message(
~filters.scheduled & filters.command(["repaint"], prefixes=["/"]) & filters.private
)
async def cmd_event_8(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 7}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 8}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 8, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №8",
)
await msg.reply_text(
"""Тільки-но двері відчинилися, ви побачили перед собою Луї у формі Голоксу та в шикарних окулярах, що нагадували вам окуляри Каміни із Ґуррен Лаґанну, а на плечі в неї сидів її секретар, Ґанмо. Її насторожило, що робітник поліції увірвався на секретну базу Голоксу. Ви поспішили її заспокоїти, та сказали що ви розслідуєте зникнення яєць у Холоторі. Луї відповіла, що її яйця в повному порядку і ніхто їх не крав, а от просто так відпустити вас вона тепер не може, бо ви знаєте, де знаходиться секретний штаб. Після цих слів вона простягнула якусь склянку із рідиною, що виглядала як препарати, які носить із собою Койорі. Після того, як випили вміст тієї склянки, ви знепритомніли, а коли прийшли до тями, то сиділи поруч із поліцейським відділенням. У вас зникли спогади про те, як ви йшли до бази Голоксу, але ви чітко запам'ятали, що яйця у Луї ніхто не крав. Озирнувшись по сторонам, ви побачили, що вас кличе до себе Субару. Зайшовши до неї в кабінет, ви дізналися, що поки ви бігали в пошуках Холоторі, у відділення хтось доставив таємничу коробку із кодовим замком та записку, причеплену до неї.
У записці був написаний ось такий текст (хоча це більше походило на набір літер):
__Lq Pdufk ru Dsulo
Wkhvh wklqjv gr derxqg
D fhuwdlq exqqb
Ohdyhv wkhvh rq wkh jurxqg__
А на зворотній стороні був намальований символ
На кодовому замку ж треба ввести код із 9-и літер без пробілів."""
)
@app.on_message(
~filters.scheduled
& filters.command(["easteregg"], prefixes=["/"])
& filters.private
)
async def cmd_event_9(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 8}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 9}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 9, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №9",
)
await msg.reply_text(
"""Усередині коробки була рація. Субару негайно вихопила її та натиснула на кнопку зв’язку.
- Прийом-прийом! Я не знаю, хто ти і що тобі потрібно, але поверни яйця! Я їй чесно сама висид Пофарбувала!
- AHHAHAHAHA
- ПЕКОРА?! Я так і знала, що це ти!
- Моя люба Субару, ти так сильно старалася, що я не можу відмовити тобі! Приїжджай, забирай їх назад. Якщо знайдеш, звісно! AHHAHAHAHA
На цьому звязок обірвався. Субару почала крутити рацію, шукаючи, чи є щось, що з нею не так. Ви запропонували відкрити відділення для батарейок, і дійсно, там були два папірця. Один із них - це було міні-фото Каели, на якому маркером було написано: ******** doko? На другому було написано рваним почерком: 07 Jan 22, Mute City, never forget. Окрім того, ви помітили, що в коробці лежав маленький шматочок якогось білого мінералу. Зібрав до купи всі підказки, ви повідомили шефу, куди вам треба їхати."""
)
@app.on_message(
~filters.scheduled & filters.command(["atlantis"], prefixes=["/"]) & filters.private
)
async def cmd_event_10(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 9}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 10}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 10, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №10",
)
await msg.reply_text(
"""Ви разом із Субару під’їхали до руїн Атлантиди. Хоча, чи можна це назвати руїнами, коли Ґура просто не добудувала? В будь-якому випадку, на найвищому п’єдесталі стояв кошик, в якому лежали пасхальні яйця Субару, цілі та непошкоджені! Ваша шеф радісно підбігла до нього, але швидко засмутилася, коли побачила серед яєць планшет. Вона увімкнула його - і на заставці екрану було лого Усада Кенсецу. Планшет був повністю пустим, єдиним файлом було відео без назви. Субару увімкнула його - і на екрані з’явився знайомий кролячий силует.
- AHHAHAHAHA Як бачиш, Субару, твої дорогоцінні яйця в повній безпеці! Та й кому вони взагалі потрібні, коли є набагато рідкісніший та особливіший делікатес?
Камера віддвинулася від Пекори і показала стіл, на якому стояла гігантська паска, прикрашена немов би золотом та дорогоцінними камнями. Камера протримала її в фокусі пару секунд, а потім перевелася назад на Пекору.
- До вашої уваги, гордість пекарні Короне, Голо-паска! Якщо я не помиляюся, мала бути презентована особисто Яґо на параді в центрі міста цього вечора. Уявляю собі, як йому зараз сумно від того, що вона зникла. Тепер всі точно побачать його некомпетентність та визнають, що лише Пекора варта звання мера Голо-сіті! AHHAHAHAHAHAHAHAHA
Субару стиснула кулаки та почала кричати в екран, забувши про те, що це запис, а не прямий ефір. Нарешті, Пекора закінчила сміятися і продовжила:
- Моя люба Субару, не плач. Я благородний крадій і дам тобі шанс побути сьогодні героєм та врятувати святковий парад! Якщо хочеш знайти мене та відібрати в мене паску, то рекомендую почати з того, щоб знайти брехуна! Але ти можеш __24__ рази поговорити з усіма мешканцями __Голо__-сіті - тобі все одно не вистачить кмітливості! Адіос!
На цьому відео закінчилося. Ви заспокоїли Субару та звернули її увагу на те, що деякі слова Пекори були сказані іншою інтонацією. Подумав і згадав події сьогоднішнього дня, ви зрозуміли, до кого треба заїхати в першу чергу.
__(У команду треба вписати лише імя дівчинки.)__"""
)
@app.on_message(
~filters.scheduled & filters.command(["kiara"], prefixes=["/"]) & filters.private
)
async def cmd_event_11(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 10}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 11}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 11, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №11",
)
await msg.reply_text(
"""Прийшовши до Кіари, ви почали вимагати від неї пояснень. Вона зізналася, що просто не могла відмовити Пекорі, але вона дасть нам наступну підказку. Після цього Кіара почала нишпорити у шафі і через деякий час дістала звідти скриньку із дивними символами. "Цю коробку мені подарувала Аме після найпершого походу в новий світ Амеверсу. Сюди я й поклала підказки, що мені передала Пекора. Якщо зможеш відкрити - вони твої". На шкатулці були зображені [такі символи](https://docs.google.com/document/d/1w2ARMWpUIkNpmSNWFJVGobIMVh2scgSy2hgyHssGLtA/edit?usp=sharing), під якими був кодовий замок із 8 цифр.""",
disable_web_page_preview=True,
)
@app.on_message(
~filters.scheduled & filters.command(["11022021"], prefixes=["/"]) & filters.private
)
async def cmd_event_12(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 11}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": 12}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": 12, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №12",
)
await msg.reply_text(
"""У скриньці був папірець з географічними координатами. Субару повернулася до відділення, бо їй вже надзвонював на мобільний особисто Яґо, тому далі ви були самі по собі. Ви приїхали на місце і побачили самотній дуб, що ріс посеред парку. У дуплі дуба на вас чекала нова скринька. На її кришці було написано почерком Пекори наступне:
__6 листопада
Греміла битва.
Червоні ведмеді
Та білі вовки -
Ніхто не переміг.
У той день
Я була другою.
Якою була надія?__
Скриньку закривав кодовий замок лише з двох цифер. У вас взагалі не було ідей, але ви не могли підвести Субару, оскільки вона поклалася на вас! Ви сіли під дубом та почали думати, але так і не змогли знайти відповідь. Ви ледве не заплакали від безсилля, коли до вас підійшла Шішіро Ботан, що прогулювалася парком.
- Що, офіцере, не можете одужати геній Усада Кенсецу? Не переймайтеся, я їй відразу сказала, що це занадто складно. Але Пекора любить чесну боротьбу, тому вона й попросила мене дивитися одним оком за цією локацію та дати підказку, якщо тобі буде важко. У той день моїм лідером була ніхто інша як Субару, а номер мій був 28. Далі розберешся, шукай у записах! Отож, бувай, хай тобі щастить, пой!
Шішірон залишила вас, а ви панічно почали діставати смартфон та відкривати ютуб. Ви зрозуміли, про що йшла мова, тому легко змогли ввести правильний номер."""
)
@app.on_message(
~filters.scheduled & filters.command(["konami"], prefixes=["/"]) & filters.private
)
async def cmd_event_bonus(app: Client, msg: Message):
if col_event.find_one({"user": msg.from_user.id, "stage": 4}) is None:
return
if col_event.find_one({"user": msg.from_user.id, "stage": -1}) is None:
col_event.insert_one(
{"user": msg.from_user.id, "stage": -1, "date": datetime.now()}
)
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{msg.from_user.first_name}** (`{msg.from_user.id}`) пройшов етап №-1 (BONUS)",
)
await msg.reply_photo(
path.join("assets", "event", "stage_bonus.jpg"),
caption="""Раптом, стіна почала рухатися, відкриваючи вам прохід. Ви повільно зайшли всередину і побачили якусь дівчину із кролячими вухами. Помітивши вас, вона повернулась і, посміхаючись, промовила:
- Вибач, але твоє яйце знаходиться в іншій печері. Тут тільки я і мій друг - П'ятнична Ніч.
Відвернувшись від вас, вона продовжила спілкуватися з великоднім яйцем, а ви, не бажаючи їй заважати, спішно покинули печеру і повернулися до найпершої розвилки.
__(Введіть команду /next для продовження сюжету.)__""",
)