@Kdjdndbd

Php pmmp как сохранить данные в конфиг?

Делаю плагин для Майнкрафт пе
Ядро 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;
    }
    }
  • Вопрос задан
  • 307 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Vadim200102
Чтобы сохранить: $this->home->save();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы