refactor to api 3.0.0

This commit is contained in:
2025-11-06 12:43:28 +03:00
parent a324127660
commit 22845d4170
11 changed files with 32 additions and 23 deletions

View File

@@ -1,6 +1,6 @@
name: FormConstructor name: FormConstructor
version: 1.0.0 version: 1.0.0
api: 5.0.0 api: 3.0.0
author: MEFRREEX author: MEFRREEX
description: Library for easy creating and handling of forms description: Library for easy creating and handling of forms
main: com\formconstructor\FormConstructor main: com\formconstructor\FormConstructor

View File

@@ -4,11 +4,10 @@ namespace com\formconstructor\event;
use com\formconstructor\form\Form; use com\formconstructor\form\Form;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
use pocketmine\event\CancellableTrait;
use pocketmine\event\Event; use pocketmine\event\Event;
abstract class FormEvent extends Event implements Cancellable { abstract class FormEvent extends Event implements Cancellable {
use CancellableTrait;
private Form $form; private Form $form;

View File

@@ -3,7 +3,8 @@
namespace com\formconstructor\event; namespace com\formconstructor\event;
use com\formconstructor\form\Form; use com\formconstructor\form\Form;
use pocketmine\player\Player; use pocketmine\Player;
class PlayerFormCloseEvent extends FormEvent { class PlayerFormCloseEvent extends FormEvent {

View File

@@ -3,7 +3,8 @@
namespace com\formconstructor\event; namespace com\formconstructor\event;
use com\formconstructor\form\Form; use com\formconstructor\form\Form;
use pocketmine\player\Player; use pocketmine\Player;
class PlayerFormSendEvent extends FormEvent { class PlayerFormSendEvent extends FormEvent {

View File

@@ -8,7 +8,7 @@ use com\formconstructor\form\element\custom\Label;
use com\formconstructor\form\element\custom\validator\IValidator; use com\formconstructor\form\element\custom\validator\IValidator;
use com\formconstructor\form\response\CustomFormResponse; use com\formconstructor\form\response\CustomFormResponse;
use com\formconstructor\form\response\FormResponse; use com\formconstructor\form\response\FormResponse;
use pocketmine\player\Player; use pocketmine\Player;
class CustomForm extends CloseableForm { class CustomForm extends CloseableForm {

View File

@@ -2,24 +2,25 @@
namespace com\formconstructor\form; namespace com\formconstructor\form;
use pocketmine\player\Player;
use pocketmine\Server;
use pocketmine\form\Form as PMForm;
use com\formconstructor\event\PlayerFormSendEvent; use com\formconstructor\event\PlayerFormSendEvent;
use com\formconstructor\task\FormHandlingTask;
use com\formconstructor\form\response\FormResponse; use com\formconstructor\form\response\FormResponse;
use pocketmine\thread\NonThreadSafeValue; use com\formconstructor\task\FormHandlingTask;
use pocketmine\form\Form as PMForm;
use pocketmine\Player;
abstract class Form implements PMForm { abstract class Form implements PMForm
{
private FormType $type; private FormType $type;
private bool $async; private bool $async;
public function __construct(FormType $type) { public function __construct(FormType $type)
{
$this->type = $type; $this->type = $type;
} }
public function send(Player $player, bool $async = false): void { public function send(Player $player, bool $async = false): void
{
$event = new PlayerFormSendEvent($player, $this, $async); $event = new PlayerFormSendEvent($player, $this, $async);
$event->call(); $event->call();
@@ -29,15 +30,18 @@ abstract class Form implements PMForm {
} }
} }
public function sendAsync(Player $player) { public function sendAsync(Player $player)
{
$this->send($player, true); $this->send($player, true);
} }
public function getType(): FormType { public function getType(): FormType
{
return $this->type; return $this->type;
} }
public function isAsync(): bool { public function isAsync(): bool
{
return $this->async; return $this->async;
} }
@@ -45,7 +49,8 @@ abstract class Form implements PMForm {
public abstract function getResponse(): ?FormResponse; public abstract function getResponse(): ?FormResponse;
public final function handleResponse(Player $player, $data): void { public final function handleResponse(Player $player, $data): void
{
$this->setResponse($data); $this->setResponse($data);
$handler = new FormHandlingTask($this->getResponse(), $this, $player); $handler = new FormHandlingTask($this->getResponse(), $this, $player);

View File

@@ -13,7 +13,8 @@ use com\formconstructor\form\element\custom\StepSlider;
use com\formconstructor\form\element\custom\Toggle; use com\formconstructor\form\element\custom\Toggle;
use com\formconstructor\form\element\custom\validator\IValidator; use com\formconstructor\form\element\custom\validator\IValidator;
use com\formconstructor\form\element\ElementType; use com\formconstructor\form\element\ElementType;
use pocketmine\player\Player; use pocketmine\Player;
class CustomFormResponse extends FormResponse { class CustomFormResponse extends FormResponse {

View File

@@ -3,7 +3,7 @@
namespace com\formconstructor\form\response; namespace com\formconstructor\form\response;
use Closure; use Closure;
use pocketmine\player\Player; use pocketmine\Player;
abstract class FormResponse { abstract class FormResponse {

View File

@@ -3,7 +3,8 @@
namespace com\formconstructor\form\response; namespace com\formconstructor\form\response;
use Closure; use Closure;
use pocketmine\player\Player; use pocketmine\Player;
class ModalFormResponse extends FormResponse { class ModalFormResponse extends FormResponse {

View File

@@ -2,8 +2,9 @@
namespace com\formconstructor\form\response; namespace com\formconstructor\form\response;
use pocketmine\player\Player;
use com\formconstructor\form\element\simple\Button; use com\formconstructor\form\element\simple\Button;
use pocketmine\Player;
class SimpleFormResponse extends FormResponse { class SimpleFormResponse extends FormResponse {

View File

@@ -9,7 +9,7 @@ use com\formconstructor\form\response\CustomFormResponse;
use com\formconstructor\form\response\FormResponse; use com\formconstructor\form\response\FormResponse;
use com\formconstructor\form\response\ModalFormResponse; use com\formconstructor\form\response\ModalFormResponse;
use com\formconstructor\form\response\SimpleFormResponse; use com\formconstructor\form\response\SimpleFormResponse;
use pocketmine\player\Player; use pocketmine\Player;
// TODO async handing // TODO async handing
class FormHandlingTask { class FormHandlingTask {