Делаю плагин для Майнкрафт пе
Ядро pmmp api 3.15.1
Сделал команду sethome, home, delhome
Всё работает, но когда сервер перезагружается нужно заново создавать точку дома!
Встаёт вопрос как сохранить данные и брать оттуда!
Я пытался сделать, не работает(
Надеюсь поможете, прошу немного)
Вот код:
<?php
namespace MeHome;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\math\Vector3;
use pocketmine\Player;
use pocketmine\utils\Config;
class Main extends PluginBase implements Listener {
public $home;
public $x;
public $y;
public $z;
public $config;
public function onEnable() {
$this->getServer()->getPluginManager()->registerEvents($this, $this);
$this->config = new Config($this->getDataFolder()."config.yml",Config::YAML);
$this->config->get($this->home);
$this->config->get($this->x);
$this->config->get($this->y);
$this->config->get($this->z);
}
public function onDisable() {
$this->config->set($this->home);
$this->config->set($this->x);
$this->config->set($this->y);
$this->config->set($this->z);
$this->config->save();
}
public function onCommand(CommandSender $player, Command $cmd, $label, array $args) :bool {
switch ($cmd->getName()) {
case "sethome":
if ($this->home == 0) {
$this->x = $player->getX();
$this->y = $player->getY();
$this->z = $player->getZ();
$this->home = 1;
$player->sendMessage("Вы успешно установили точку дома!");
}
else {
$player->sendMessage("У тебя уже есть точка дома!");
}
break;
case "home":
if ($this->home == 1) {
$x = $this->x;
$y = $this->y;
$z = $this->z;
$player->teleport(new Vector3((float) $x,(float) $y, (float) $z));
$player->sendMessage("Ты телепортировался на точку дома!");
}
else {
$player->sendMessage("У тебя нет точки дома!");
}
break;
case "delhome":
if ($this->home == 1) {
$this->home = 0;
$player->sendMessage("Вы успешно удалили точку дома!");
}
else {
$player->sendMessage("У тебя нет точки дома!");
}
break;
}
return true;
}
}