[PMMP5] Помогите с плагином

Не появляется форма при вводе команды в игре. Сама команда есть.



Доброго времени суток! Я внимательно изучил ваше изображение и решил проблему. Просто скопируйте мой код с картинки

3 симпатии

Не от этого, этот плагин был сначала без команды, там форма появлялась при заходе игрока, а я переделал по команде.

Изначальная версия плагина работала, добавил команду ничего не работает.

class EventListener implements Listener {
	public function __construct(private Config $config) {
	}
    public function onCommand(CommandSender $player, Command $cmd, string $label, array $args):bool{
        if($cmd->getName() === "servers"){
            $player->sendMessage("Бета");
            $this->sendForm($player);
        }
    }
	private function sendForm(Player $player) : void {
		$cfg = $this->config;

		$form = new SimpleForm(function (Player $player, ?string $data) use ($cfg) : void {
			if ($data === NULL) {
				$this->sendForm($player);
				return;
			}

			$server = $cfg->getNested("servers.$data");
			$player->transfer($server["ip"], $server["port"]);
		});

		$form->setTitle($cfg->get("title"));
		$form->setContent($cfg->get("content"));

		foreach ($cfg->get("servers") as $server => $data) {
			$form->addButton($server . "\n§r§0Нажмите, чтобы подключиться", -1, "", $server);
		}

		$player->sendForm($form);
	}
}

до этой строки выполнение доходит?

Нет

Хорошо, как скажешь

1 симпатия

У меня в основном коде идет создание Конфига, а в EventListener я засунул это

Подумай хорошо, почему не выполняется функция onCommand.

Даю подсказку: посмотри класс Listener и PluginBase

1 симпатия

Нельзя просто так взять и написать плагин не зная API ядра.

ну так разбирайся, при чем тут формы то

игрок ввел команду->pluginbase->plugin->onCommand
1 симпатия

А где 17 строка ? Ясно ее нет вот в чем проблема !

Player::sendForm() он существует и занят!

И откуда ты конфиг взял?

Он переопределяет эту функцию в Player?

Сам решил.

Солнышко, поспи пожалуйста

Эта тема была автоматически закрыта через 12 часов после последнего ответа. В ней больше нельзя отвечать.