В чем ошибка? Помогите

fly
[Server] [12:45:39] [Server thread/INFO]: [FlyCmd] Используйте команду в игре!
[Server] [12:45:39] [Server thread/INFO]: Произошла неизвестная ошибка при выполнении команды
[Server] [12:45:39] [Server thread/CRITICAL]: Необработанное исключение при выполнении команды ‘fly’ в fly: Call to undefined method pocketmine\command\ConsoleCommandSender::getGamemode()
[Server] [12:45:39] [Server thread/CRITICAL]: Error: “Call to undefined method pocketmine\command\ConsoleCommandSender::getGamemode()” (EXCEPTION) in “FlyCmd/src/FlyCmd/Fly” at line 37

<?php


namespace FlyCmd;




use pocketmine\{
plugin\PluginBase,
command\Command,
command\CommandSender,
Player
};



class Fly extends PluginBase {
	function onEnable(){
	
	
	
	$this->getLogger()->info("Плагин FlyCmd запущен");
	
		}
		
		
		
		function onCommand(CommandSender $s, Command $cmd, $label, array $args) {
								
								
								
							if(!$s instanceof Player && $cmd->getName()){
					$s->sendMessage("[§l§eFlyCmd§r] §cИспользуйте команду в игре!");
	}
if($cmd->getName() == "fly"){
											if($s->getGamemode() === 1 || $s->getGamemode() === 3){
												
												
												
												
												
												
												$s->sendMessage("[§l§eFlyCmd§r] §cИспользуйте команду в выживании!");
												
												
												
									} elseif($s->getAllowFlight()){
														
														
														$s->setAllowFlight(false);
														$s->sendMessage("[§l§eFlyCmd§r] §aФлай выключен!");
														
						} else {
														
														$s->setAllowFlight(true);
														$s->sendMessage("[§l§eFlyCmd§r] §aФлай включен!");
	}
	}
	}
	}
?>

С нормальнлй табуляцией кидай код пж

<?php

namespace FlyCmd;

use pocketmine\{
plugin\PluginBase,
command\Command,
command\CommandSender,
Player
};

class Fly extends PluginBase {
	function onEnable(){
		$this->getLogger()->info("Плагин FlyCmd запущен");
	}
	
	function onCommand(CommandSender $s, Command $cmd, $label, array $args) {
		if(!$s instanceof Player && $cmd->getName()){
			$s->sendMessage("[§l§eFlyCmd§r] §cИспользуйте команду в игре!");
		}
		if($cmd->getName() == "fly"){
			if($s->getGamemode() === 1 || $s->getGamemode() === 3){
				$s->sendMessage("[§l§eFlyCmd§r] §cИспользуйте команду в выживании!");
			} elseif($s->getAllowFlight()){
				$s->setAllowFlight(false);
				$s->sendMessage("[§l§eFlyCmd§r] §aФлай выключен!");
			} else {
				$s->setAllowFlight(true);
				$s->sendMessage("[§l§eFlyCmd§r] §aФлай включен!");
			}
		}
	}
}
?>

Мне прост легче было так делать

Весь код хуйня, давай по новой вася

Та пох

<?php

namespace FlyCmd;

use pocketmine\plugin\PluginBase;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\Player;

class Fly extends PluginBase {
    function onEnable(): void {
        $this->getLogger()->info("Плагин FlyCmd запущен");
    }

    function onCommand(CommandSender $sender, Command $command, $label, array $args) {
        if (!$sender instanceof Player) {
            $sender->sendMessage("[§l§eFlyCmd§r] §cИспользуйте команду в игре!");
            return true;
        } elseif ($command->getName() === "fly") {
            if ($sender->getGamemode() !== 0) {
                $sender->sendMessage("[§l§eFlyCmd§r] §cИспользуйте команду в выживании!");
            } else {
                $flight = !$sender->getAllowFlight();
                $sender->setAllowFlight($flight);
                $sender->sendMessage($flight ? "[§l§eFlyCmd§r] §aФлай включен!" : "[§l§eFlyCmd§r] §aФлай выключен!");
            }
        }
    }
}

Максимально улучшила код
Исправила ошибку :slight_smile:
Пробуй, может где-то ошиблась

Сейчас

[Server] [13:05:01] [Server thread/INFO]: Loading (Source) FlyCmd vPM-1V
[Server]
[Server] Fatal error: Declaration of FlyCmd\Fly::onCommand(pocketmine\command\CommandSender $sender, pocketmine\command\Command $command, string $label, array $args): bool must be compatible with pocketmine\plugin\PluginBase::onCommand(pocketmine\command\CommandSender $sender, pocketmine\command\Command $command, $label, array $args) in /storage/emulated/0/PocketMine/plugins/FlyCmd/src/FlyCmd/Fly.php on line 31
[Server] [13:05:01] [Server thread/EMERGENCY]: Произошла фатальная ошибка и сервер вышел из строя. Создание аварийного дампа
[Server] [13:05:01] [Server thread/EMERGENCY]: Пожалуйста, загрузите файл"/storage/emulated/0/PocketMine/crashdumps/CrashDump_Mon_Jul_24-13.05.01-UTC_2023.log" в краш-архив и отправьте ссылку на страницу исправления ошибок. Дайте как можно больше информации.

цбери :bool и в конце return true

$allowFlight = $player->getAllowFlight();
$player->setAllowFlight(!$allowFlight);
$player->sendMessage("Флай " . ($allowFlight ? “вы” : “в”) . “ключен”);

Я исправила, копируй @ruyko

Работает

Приятного использования!

1 лайк

максимально улучшила код:joy::joy::joy::joy::joy::joy::joy:

меня рил вырвало без рофла

С кода?)

кто бы говорил

а че кто говорил, я тот код написал ночью, так что, поверь на слово

божж когда уже easy forms завезут на пм 5 Crash occurred while handling a packet from session: chejliok
[15:04:16.852] [Server thread/CRITICAL]: TypeError: “register\Main::register{closure}(): Argument #2 ($data) must be of type ?int, array given, called in C:\Users\Колян\Desktop\ро\local\plugins\FormAPI-master\src\jojoe77777\FormAPI\Form.php on line 46” (EXCEPTION) in “plugins/Register/src/register/Main” at line 60
— Stack trace — вечные ошибки

1 лайк