Skip to content

Instantly share code, notes, and snippets.

@BEcraft
Created February 9, 2018 05:31
Show Gist options
  • Save BEcraft/d67be7828d99c54997a10de08bfeb950 to your computer and use it in GitHub Desktop.
Save BEcraft/d67be7828d99c54997a10de08bfeb950 to your computer and use it in GitHub Desktop.
PocketMine
<?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