Created
February 9, 2018 05:31
-
-
Save BEcraft/d67be7828d99c54997a10de08bfeb950 to your computer and use it in GitHub Desktop.
PocketMine
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @name Border | |
* @author BEcraft | |
* @main BEcraft\Border\Loader | |
* @version 1.0 | |
* @api 3.0.0 | |
*/ | |
namespace BEcraft\Border; | |
use pocketmine\event\Listener; | |
use pocketmine\plugin\PluginBase; | |
use pocketmine\level\particle\FlameParticle; | |
use pocketmine\math\Vector3; | |
use pocketmine\utils\TextFormat; | |
use pocketmine\event\player\PlayerChatEvent; | |
use pocketmine\event\player\PlayerMoveEvent; | |
class Loader extends PluginBase implements Listener{ | |
private static $border = 100; | |
public function onEnable(){ | |
$this->getServer()->getPluginManager()->registerEvents($this, $this); | |
} | |
public function getBorder(): int{ | |
return Loader::$border; | |
} | |
public function onChat(PlayerChatEvent $event){ | |
$player = $event->getPlayer(); | |
if($player->isOp()){ | |
$msg = explode(" ", $event->getMessage()); | |
if($msg[0] === "%fuego" and isset($msg[1]) and is_numeric($msg[1]) and $msg[1] > 25){ | |
Loader::$border = $msg[1]; | |
$player->sendMessage(TextFormat::GREEN."El borde se cambió a ".$msg[1]); | |
$event->setCancelled(); | |
} | |
} | |
} | |
public function onMove(PlayerMoveEvent $event){ | |
$player = $event->getPlayer(); | |
$x = round($player->getX()); | |
$y = round($player->getY()); | |
$z = round($player->getZ()); | |
$border = Loader::$border; | |
if(($x > $border or $x < -$border) or ($z > $border or $z < -$border)){ | |
$player->sendTip(TextFormat::RED."Estas fuera del borde"); | |
return; | |
} | |
for($xx = $x - 3; $xx < $x + 3; ++$xx){ | |
for($yy = $y; $yy < $y + 4; ++$yy){ | |
for($zz = $z + 3; $zz > $z - 3; --$zz){ | |
if(($xx == $border or $zz == -$border) or ($zz == $border or $xx == -$border)){ | |
if($xx > $border){ | |
$xx = $border; | |
} | |
if($zz > $border){ | |
$zz = $border; | |
} | |
if($xx < -$border){ | |
$xx = -$border; | |
} | |
if($zz < -$border){ | |
$zz = -$border; | |
} | |
$player->getLevel()->addParticle(new FlameParticle(new Vector3($xx, $yy, $zz))); | |
}else{ | |
continue; | |
} | |
} | |
} | |
} | |
$player->sendTip(TextFormat::YELLOW."Tu posicion: ".TextFormat::GREEN.$x.":".$y.":".$z."\n".TextFormat::YELLOW."Tamaño: ".TextFormat::GREEN.Loader::$border); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment