Позишен )
<?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;
use pocketmine\Server;
use pocketmine\world\WorldManger;
use pocketmine\world\Position;
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);
}
public function execute(CommandSender $sender, string $commandLabel, array $args) : void
{
$sender->teleport(new Position(1000, 1000, 1000, Server::getInstance()->getWorldManager()->getWorldByName( "world")));
if ($sender instanceof Player)
{
$world = Server::getInstance()->getWorldManager()->getWorldByName( "world");
$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, Server::getInstance()->getWorldManager()->getWorldByName( "world" ));
$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Используйте только в игре");
}
}}
С какого плагина взял?
Выше смотри
pizdec? eyesyesyesyses
Callback hell