*/ final class commands extends core { /** * Start * * Responce for command: "/start" * * @param context $context Request data from Telegram * * @return void */ public static function start(context $context): void { static::menu($context); } /** * Menu * * Responce for command: '/menu' * * @param context $context Request data from Telegram * * @return void */ public static function menu(context $context): void { // Initializing the account $account = $context->get('account'); if ($account instanceof account) { // Initialized the account // Initializing the language $language = $context->get('language'); if ($language instanceof language) { // Initialized the language // Initializing localization $localization = $context->get('localization'); if ($localization) { // Initialized localization // Initializing the title $title = '📋 *' . $localization['menu_title'] . '*'; // Initializing accounts /* $accounts_message = '*' . $localization['menu_accounts'] . ':* ' . ((new account)->database->count() ?? 0); */ // Initializing the account tariff $tariff = $account->tariff(); // Declaring the tariff button $tariff_button = []; if ($tariff instanceof tariff) { // Initialized the account tariff // Initializing the tariff button $tariff_button = [ 'text' => '🔐 ' . $tariff->type->label($language) . ' (' . $tariff->used . '/' . $tariff->tokens . ')', 'callback_data' => 'tariffs' ]; } else { // Initialized the account tariff // Initializing the tariff button $tariff_button = [ 'text' => '⚠️ ' . $localization['menu_tariff_empty'], 'callback_data' => 'tariffs' ]; } // Initializing the account chat $chat = $account->chat(); // Initializing the chto text $howto = $localization['menu_howto']; // Sending the message $context->sendMessage( << [ 'inline_keyboard' => [ /* [ [ 'text' => '⚙️ ' . $localization[''], 'callback_data' => '' ] ] */ ], 'disable_notification' => true, 'remove_keyboard' => true ], ] )->then(function (message $message) use ($context) { // Sended the message }); } else { // Not initialized localization // Sending the message $context->sendMessage('⚠️ *Failed to initialize localization*') ->then(function (message $message) use ($context) { // Ending the conversation process $context->endConversation(); }); } } else { // Not initialized language // Sending the message $context->sendMessage('⚠️ *Failed to initialize language*') ->then(function (message $message) use ($context) { // Sended the message // Ending the conversation process $context->endConversation(); }); } } else { // Not initialized the account // Sending the message $context->sendMessage('⚠️ *Failed to initialize your Telegram account*') ->then(function (message $message) use ($context) { // Ending the conversation process $context->endConversation(); }); } } /** * Account * * Responce for the command: "/account" * * Sends information about account with menu * * @param context $context Request data from Telegram * * @return void */ public static function account(context $context): void { // Initializing the account $account = $context->get('account'); if ($account instanceof account) { // Initialized the account // Initializing localization $localization = $context->get('localization'); if ($localization) { // Initialized localization // Initializing title for the message $title = '🫵 ' . $localization['account_title']; // Declaring buufer of rows about authorizations $authorizations = ''; // Initializing rows about authorization foreach ($account->values() as $key => $value) { // Iterating over account parameters if (str_starts_with($key, 'authorized_')) { // Iterating over account authorizations // Skipping system authorizations if (str_starts_with($key, 'authorized_system_')) continue; // Writing into buffer of rows about authorizations $authorizations .= ($value ? '✅' : '❎') . ' *' . ($localization["account_$key"] ?? $key) . ':* ' . ($value ? $localization['yes'] : $localization['no']) . "\n"; } } // Trimming the last line break character $authorizations = trim($authorizations, "\n"); // Sending the message $context->sendMessage( << [ 'remove_keyboard' => true, 'disable_notification' => true ], 'link_preview_options' => [ 'is_disabled' => true ] ] ); } else { // Not initialized localization // Sending the message $context->sendMessage('⚠️ *Failed to initialize localization*') ->then(function (message $message) use ($context) { // Ending the conversation process $context->endConversation(); }); } } else { // Not initialized the account // Sending the message $context->sendMessage('⚠️ *Failed to initialize your Telegram account*') ->then(function (message $message) use ($context) { // Ending the conversation process $context->endConversation(); }); } } /** * Language * * Responce for the command: "/language" * * Send the language selection menu * * @param context $context Request data from Telegram * * @return void */ public static function language(context $context): void { // Initializing the account $account = $context->get('account'); if ($account instanceof account) { // Initialized the account // Initializing language $language = $context->get('language'); if ($language instanceof language) { // Initialized language // Initializing localization $localization = $context->get('localization'); if ($localization) { // Initialized localization // Sending the language selection process_language_select::menu( context: $context, prefix: 'settings_language_', title: '🌏 *' . $localization['settings_select_language_title'] . '*', description: '🌏 *' . $localization['settings_select_language_description'] . '*' ); } else { // Not initialized localization // Sending the message $context->sendMessage('⚠️ *Failed to initialize localization*') ->then(function (message $message) use ($context) { // Sended the message // Ending the conversation process $context->endConversation(); }); } } else { // Not initialized language // Sending the message $context->sendMessage('⚠️ *Failed to initialize language*') ->then(function (message $message) use ($context) { // Sended the message // Ending the conversation process $context->endConversation(); }); } } else { // Not initialized the account // Sending the message $context->sendMessage('⚠️ *Failed to initialize your Telegram account*') ->then(function (message $message) use ($context) { // Sended the message // Ending the conversation process $context->endConversation(); }); } } /** * Society * * Responce for the command: "/society" * * Sends the "mushroom" image and the localized text "why so shroomious" * * @param context $context Request data from Telegram * * @return void */ public static function society(context $context): void { // Initializing the account $account = $context->get('account'); if ($account instanceof account) { // Initialized the account // Initializing localization $localization = $context->get('localization'); if ($localization) { // Initialized localization // Sending the message $context->sendPhoto( new file_input(STORAGE . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'mushroom.jpg'), [ 'caption' => $localization['why_so_shroomious'], 'disable_notification' => true ] ); } else { // Not initialized localization // Sending the message $context->sendMessage('⚠️ *Failed to initialize localization*') ->then(function (message $message) use ($context) { // Ending the conversation process $context->endConversation(); }); } } else { // Not initialized the account // Sending the message $context->sendMessage('⚠️ *Failed to initialize your Telegram account*') ->then(function (message $message) use ($context) { // Ending the conversation process $context->endConversation(); }); } } }