tgbotlib/src/TgBotLib/Objects/ReplyKeyboardRemove.php

99 lines
2.8 KiB
PHP
Raw Normal View History

<?php
2024-10-02 00:18:12 -04:00
namespace TgBotLib\Objects;
use TgBotLib\Interfaces\ObjectTypeInterface;
class ReplyKeyboardRemove implements ObjectTypeInterface
{
2024-10-05 00:54:00 -04:00
private bool $remove_keyboard;
private bool $selective;
/**
* ReplyKeyboardRemove constructor.
*/
public function __construct()
{
$this->remove_keyboard = false;
$this->selective = false;
}
/**
* Requests clients to remove the custom keyboard (user will not be able to summon this keyboard; if you want
* to hide the keyboard from sight but keep it accessible, use one_time_keyboard in ReplyKeyboardMarkup)
*
* @return bool
*/
public function isRemoveKeyboard(): bool
{
return $this->remove_keyboard;
}
2024-10-07 15:43:09 -04:00
/**
* Sets the remove keyboard
*
* @param bool $remove_keyboard
* @return ReplyKeyboardRemove
*/
public function setRemoveKeyboard(bool $remove_keyboard): ReplyKeyboardRemove
{
$this->remove_keyboard = $remove_keyboard;
return $this;
}
/**
* Optional. Use this parameter if you want to remove the keyboard for specific users only. Targets: 1) users
* that are @mentioned in the text of the Message object; 2) if the bot's message is a reply
* (has reply_to_message_id), sender of the original message.
*
* Example: A user votes in a poll, bot returns confirmation message in reply to the vote and removes the
* keyboard for that user, while still showing the keyboard with poll options to users who haven't voted yet.
*
* @return bool
*/
public function isSelective(): bool
{
return $this->selective;
}
2024-10-07 15:43:09 -04:00
/**
* Sets the selective
*
* @param bool $selective
* @return ReplyKeyboardRemove
*/
public function setSelective(bool $selective): ReplyKeyboardRemove
{
$this->selective = $selective;
return $this;
}
/**
2024-10-05 00:54:00 -04:00
* @inheritDoc
*/
public function toArray(): array
{
return [
'remove_keyboard' => $this->remove_keyboard,
'selective' => $this->selective,
];
}
/**
2024-10-05 00:54:00 -04:00
* @inheritDoc
*/
2024-10-05 00:54:00 -04:00
public static function fromArray(?array $data): ?ReplyKeyboardRemove
{
2024-10-05 00:54:00 -04:00
if($data === null)
{
return null;
}
$object = new self();
2023-02-14 17:35:16 -05:00
$object->remove_keyboard = $data['remove_keyboard'] ?? false;
$object->selective = $data['selective'] ?? false;
2024-10-05 00:54:00 -04:00
return $object;
}
}