Введение
Ядро PocketMine-MP (и форки) поддерживает не только плагины, но и скрипты. Это мини-плагины, которые могут использоваться для реализации временного функционала и тестирования других плагинов.
Впервые слышу!
PocketMine-MP поддерживает скрипты с 2015 года, однако они по некоторым причинам не стали популярны среди разработчиков.
И как они выглядят?
Готовый скрипт представляет собой .php
файл, который можно просто положить в папку plugins
и он будет работать!
Hello World скрипт для PM4
<?php
/**
* @author Gaprix
* @name TestScript
* @main Gaprix\TestScript
* @api 4.0.0
* @version 1.0.0
*/
namespace Gaprix;
use pocketmine\event\EventPriority;
use pocketmine\plugin\PluginBase;
use pocketmine\event\player\PlayerJoinEvent;
class TestScript extends PluginBase{
public function onEnable(): void{
$this->getServer()->getPluginManager()->registerEvent(PlayerJoinEvent::class, function(PlayerJoinEvent $event) : void{
$event->getPlayer()->sendMessage("Привет, мир!");
}, EventPriority::NORMAL, $this, true);
}
}
Hello World скрипт для PM3 и LiteCore
<?php
/**
* @author Gaprix
* @name TestScript
* @main Gaprix\TestScript
* @api 3.0.0
* @version 1.0.0
*/
namespace Gaprix;
use pocketmine\event\Listener;
use pocketmine\plugin\PluginBase;
use pocketmine\event\player\PlayerJoinEvent;
class TestScript extends PluginBase{
public function onEnable(): void{
$this->getServer()->getPluginManager()->registerEvents(new class implements Listener{
function onJoin(PlayerJoinEvent $event){
$event->getPlayer()->sendMessage("Привет, мир!");
}
}, $this);
}
}
Объяснение
Комментарий в начале файла является обязательным и заполняется таким же образом, как plugin.yml в плагинах. В данном примере я показал как регистрируются ивенты.
Результат
Хочу попробовать!
Для установки просто скопируйте этот файл в папку с плагинами и перезагрузите сервер.
PM4:
TestScript.php (602 Байта)
PM3/LiteCore:
TestScript.php (566 Байт)