Напиши простой код для плагина PocketMine-MP PM API 5.37.3 как мне установить фиксированное значение полоски опыта у всех игроков кодом $player->setXpLevel(1); $player->setXpProgress(1.0);, а то у меня неработает это.
В PocketMine-MP PM5 методы setXpLevel() и setXpProgress() не существуют в классе Player.
Вместо этого используются методы:
setXpLevel(int $level) → ❌ не существуетsetXpProgress(float $progress) → ❌ не существуетВместо них используются:
setCurrentTotalXp(int $xp) — устанавливает всё количество опытаgetCurrentTotalXp() — получает текущее количество опытаsetCurrentXpLevel(int $level) — устанавливает уровень опытаsetCurrentXpProgress(float $progress) — устанавливает прогресс до следующего уровня (от 0.0 до 1.0)<?php
declare(strict_types=1);
namespace FixedXp;
use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\player\Player;
class Main extends PluginBase implements Listener {
protected function onEnable(): void {
$this->getServer()->getPluginManager()->registerEvents($this, $this);
}
public function onPlayerJoin(PlayerJoinEvent $event): void {
$player = $event->getPlayer();
$player->setCurrentXpLevel(1); // Уровень 1
$player->setCurrentXpProgress(1.0); // Полная полоска
}
}
plugins/FixedXp/
├── plugin.yml
└── src/
└── FixedXp/
└── Main.php
plugin.yml:name: FixedXp
main: FixedXp\Main
api: 5.0.0
version: 1.0.0
author: YourName
При заходе игрока на сервер его уровень опыта будет 1, а полоска — полностью заполнена.
Если нужно всем активным игрокам установить такие значения по команде или таймеру — напиши, и я дополню.