[PMMP5] RandomTeleport

RandomTeleport

Описание: Телепортирует игрока в случайное место

Команда

/rtp – телепортироваться в случайное место

Ядро: PocketMine-MP (API: 5.0.0)
Автор: BedrockTime

Спойлер

подпишись пж

Github: RandomTeleport

Скачать:
RandomTeleport.zip (2,2 КБ)

а зач кста пермишионы регистрировать в 4-5 строк? Можно же просто в plugin.yml заполнить_)

кому как

в 2 строки*

эх… (жду когда мой код обосрут)

А ты всталяй код под спойлер или кидай ссылку на гитхаб. Мне вот просто лень скачивать, думаю остальным так же

1 лайк
<?php

use pocketmine\plugin\PluginBase;
use RandomTeleport\command\RandomTeleportCommand;

class RandomTeleport extends PluginBase
{
    private static self $instance;

    function onEnable() : void
    {
        self::$instance = $this;
        $this->getServer()->getCommandMap()->register("", new RandomTeleportCommand());
    }

    /**
     * @return $this
     */
    public static function getInstance() : self
    {
        return self::$instance;
    }
}
<?php

namespace RandomTeleport\command;

use pocketmine\command\Command;
use pocketmine\permission\PermissionManager;
use pocketmine\permission\DefaultPermissions;
use pocketmine\permission\Permission;
use pocketmine\command\CommandSender;
use pocketmine\player\Player;
use pocketmine\entity\effect\EffectInstance;
use pocketmine\entity\effect\VanillaEffects;
use pocketmine\world\format\Chunk;
use pocketmine\math\Vector3;
use RandomTeleport;
use pocketmine\scheduler\ClosureTask;
use pocketmine\world\sound\EndermanTeleportSound;

class RandomTeleportCommand extends Command
{
    public const COMMAND_PERMISSION_RTP = "command.permission.rtp";

    function __construct()
    {
        parent::__construct("rtp", "Телепортация в случайное место");
        $root = PermissionManager::getInstance()->getPermission(DefaultPermissions::ROOT_USER);
        DefaultPermissions::registerPermission(new Permission(self::COMMAND_PERMISSION_RTP), [$root]);
        $this->setPermission(self::COMMAND_PERMISSION_RTP);
    }

    function execute(CommandSender $sender, string $commandLabel, array $args) : void
    {
        if ($sender instanceof Player)
        {
            $world = $sender->getWorld();
            $x = mt_rand(-5000, 5000);
            $z = mt_rand(-5000, 5000);
            $sender->getEffects()->add(new EffectInstance(VanillaEffects::BLINDNESS(), 80));
            $world->orderChunkPopulation(($x >> Chunk::COORD_BIT_SIZE), ($z >> Chunk::COORD_BIT_SIZE), null)->onCompletion(
                function () use ($world, $x, $z, $sender) : void
                {
                    $y = ($world->getHighestBlockAt($x, $z) + 1);
                    $position = new Vector3($x, $y, $z);
                    $sender->teleport($position);
                    $sender->sendMessage("Вы телепортировались в случайное место:§9 $x $y $z");
                    RandomTeleport::getInstance()->getScheduler()->scheduleDelayedTask(
                        new ClosureTask(
                            function () use ($world, $position) : void
                            {
                                $world->addSound($position, new EndermanTeleportSound());
                            }
                        ),
                        5
                    );
                },
                fn () => null
            );
        } else
        {
            $sender->sendMessage("§cИспользуйте только в игре");
        }
    }
}

что с кодом не так?

эх… Ждём недокодеров, которые будут писать глупые высеры, а может и кто-то из норм кодеров докапается, не докапается, а выскажет критику точнее

я люблю когда критикуют мой код, прям вот обожаю

в одном месте есть модификатор доступа в другом нет, жесть

Твоя аватарка :skull_and_crossbones::skull_and_crossbones:

Спойлер

@MIP-321

1 лайк

Но мог бы хотябы ее нормально скачать правда

ну бро серьёзно ртп?

ДДАА, я тоже заметил…я уже даже не знаю кто это MmOaowo8

chejilok или как там его

Аа все, вспомнил