Minecraft10.net

Моды, карты и сервера



Как сделать свой плагин #5 Minecraft PE

28 июль, 2016
Сегодня у нас будет урок по: sendPopup / sendTip()


Если вы хотите отправить строчку в чат своим игрокам со своей информацией. То это просто!

В PocketMine есть две функции у игроков:

$player->sendPopup("Hello, PMLearn");
$player->sendTip("Hello, PMLearn");
Они отличаются только тем, что sendTip отправляет сообщение немного выше чем sendPopup. Можно даже сказать по центру экрана.
Давайте научимся добавлять его в код и сделаем сразу несколько строк!

Для начала выясним, когда будет отправляться нужный текст. Мне, например тогда, когда игрок заходит! Поэтому я буду использовать эвент. Эвент - функция , которая будет выполняться тогда, когда игрок совершил какое-либо действие!

Я буду обрабатывать эвент PlayerJoinEvent т.к мне нужно это.

/* Начнем обрабатывать эвент входа игрока! */
public function onJoin(PlayerJoinEvent $event /* Обозначим эвент как переменную $event */){
$player = $event->getPlayer(); //Получим игрока из эвента;
if($player instanceof Player){ //проверим, точно ли это игрок?? *подозрительность*
$player->sendPopup("Hello, PMLearn");
$player->sendTip("Hello, PMLearn");
}
}
/* Заканчиваем обрабатывать эвент входа игрока */

ТАКЖЕ ВАЖНО! Не забудьте добавить в onEnable() код, который обозначит, что вы в плагине используете эвенты!

Для этого добавим:

class mk10 extends PluginBase{
Заменим на:
class mk10 extends PluginBase implements Listener{
Также, добавим в импорт:
use pocketmine\event\Listener;
А также добавим:
$this->getServer()->getPluginManager()->registerEvents($this,$this); //Будет читать эвенты из нашего основного файла
Это нужно было добавить в:
public function onEnable(){
if(!is_dir($this->getDataFolder())){ //Проверим, есть ли папка плагина, в котором будет конфиг
@mkdir($this->getDataFolder()); //Если её нету, то создадим.
$this->config = new Config($this->getDataFolder()."config.yml",Config::YAML); //Теперь мы будем читать файл config.yml из папки.
}
$this->getServer()->getPluginManager()->registerEvents($this,$this); //Будет читать ивенты из нашего основного файла
$this->getLogger()->info("ExamplePlugin загружен "); //Сообщит в консоль что плагин загружен. Тип сообщения: info (42)
}
Теперь наш плагин умеет отправлять "Hello, PMLearn" игроку, который вошел на сервер! НО! Время! Время Popup очень маленькое чтобы рассмотреть его. И нам понадобится дополнительный код, который позволит увеличить время Popup! Но это уже не будет в другом уроке!

Как сделать свой плагин #5 Minecraft PE

Комментарии: