From ee50d504ff6d838bff4b99975733ed9faedb7b1d Mon Sep 17 00:00:00 2001 From: Ad5001 Date: Sat, 4 Feb 2017 16:18:43 +0100 Subject: [PATCH] 1.0 ! --- README.md | 20 ++++++++++++ releases/FastTravel_v1.phar | Bin 0 -> 63945 bytes resources/config.yml | 16 +++++++-- src/Ad5001/FastTravel/Main.php | 34 ++++++++++++++------ src/Ad5001/FastTravel/tasks/FastingTask.php | 18 ++++++++++- 5 files changed, 76 insertions(+), 12 deletions(-) create mode 100644 README.md create mode 100644 releases/FastTravel_v1.phar diff --git a/README.md b/README.md new file mode 100644 index 0000000..097836d --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# FastTravel +Travel in MCPE faster and easier than you ever tought ! + +Discover brand new way of traveling that this plugin brings: +- Elevators +- BoostBlocks +- FlyBlocks + +### Elevators +Elevators are blocks that allows you to change floors by sneaking to go down / jumping to go up. +Create a floor by adding an elevator block (defined in the config, noteblock by default) and then create some another ones by adding an other elevator block at different height. +ProTip: Try making squares of 2x2 to make sure the user get tp when sneaking/jumping. + +### BoostBlocks +BoostBlocks are blocks that allows you to go super fast for 2 seconds after steping on them. +Just place one (defined in the config, ice by default) on the ground and step on it to see how fast can you go and regulate the amplifier in the config (10 by default). + +### FlyBlocks (aka JumpBlocks) +FlyBlocks throws you in the air which allows you a great start for your elytras or to jump to high platforms. +Place one (defined in the config, hay bale by default) on the ground and step on it to see how high can you go and regulate the amplifier in the config (2 by default). \ No newline at end of file diff --git a/releases/FastTravel_v1.phar b/releases/FastTravel_v1.phar new file mode 100644 index 0000000000000000000000000000000000000000..da63d0d5e71597449b4c3bb187dd3cc5bbc02208 GIT binary patch literal 63945 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 literal 0 HcmV?d00001 diff --git a/resources/config.yml b/resources/config.yml index 34f892d..3fed08f 100644 --- a/resources/config.yml +++ b/resources/config.yml @@ -11,8 +11,20 @@ # Website: http://github.com/Ad5001/FastTravel # -# Put here the block you want to be an elevetor. +# Put here the block you want to have as an elevetor. ElevatorBlock: note_block -SpeedBlock: ice + +# Put here the block you want to have as a booster block +BoostBlock: ice + +# Put here how much do you want the amplifier of the speed of the boost to be. +BoostAmplifier: 10 + + +# Put here the block you want to have as a jump to sky block. +JumpBlock: hay_bale + +# Put here the amplifier of the jump when steping on the block set above. +JumpAmplifier: 2 ... \ No newline at end of file diff --git a/src/Ad5001/FastTravel/Main.php b/src/Ad5001/FastTravel/Main.php index f40d1f1..e574af4 100644 --- a/src/Ad5001/FastTravel/Main.php +++ b/src/Ad5001/FastTravel/Main.php @@ -27,6 +27,8 @@ use pocketmine\plugin\PluginBase; use pocketmine\Server; +use pocketmine\entity\Entity; + use pocketmine\Player; @@ -45,7 +47,8 @@ class Main extends PluginBase implements Listener { protected $elevator; - protected $speed; + protected $boost; + protected $jump; public $cancelUpAfterDown = []; @@ -60,11 +63,16 @@ class Main extends PluginBase implements Listener { $this->getLogger()->warning("Invalid block provided as elevator."); $this->elevator = Item::get(139); } - $this->speed = Item::fromString($this->getConfig()->get("SpeedBlock")); + $this->boost = Item::fromString($this->getConfig()->get("BoostBlock")); if(!($this->elevator instanceof ItemBlock)) { - $this->getLogger()->warning("Invalid block provided as speed block."); + $this->getLogger()->warning("Invalid block provided as boost block."); $this->elevator = Item::get(79); } + $this->jump = Item::fromString($this->getConfig()->get("JumpBlock")); + if(!($this->elevator instanceof ItemBlock)) { + $this->getLogger()->warning("Invalid block provided as jump block."); + $this->elevator = Item::get(170); + } $this->getServer()->getScheduler()->scheduleRepeatingTask(new tasks\FastingTask($this), 5); } @@ -93,7 +101,6 @@ class Main extends PluginBase implements Listener { } } if(!is_null($bl)) { // A elevator under exists - // $this->getLogger()->debug("Down " . $bl->y); $event->getPlayer()->teleport(new \pocketmine\math\Vector3($bl->x, $bl->y + 1.5, $bl->z)); $this->setCooldown($event->getPlayer()); $event->getPlayer()->getLevel()->addSound(new \pocketmine\level\sound\EndermanTeleportSound($event->getPlayer())); @@ -109,7 +116,7 @@ class Main extends PluginBase implements Listener { public function onPlayerMove(PlayerMoveEvent $event) { $b = $event->getPlayer()->getLevel()->getBlock(new \pocketmine\math\Vector3(round($event->getFrom()->x), floor($event->getFrom()->y - 1), round($event->getFrom()->z))); if($b->getId() == $this->elevator->getId() && $b->getDamage() == $this->elevator->getDamage() && $event->getTo()->y > $event->getFrom()->y) { // Checking if the player is sneaking on the block set as elevator. - $this->getLogger()->debug($event->getFrom() . "/" . $event->getTo()); + // $this->getLogger()->debug($event->getFrom() . "/" . $event->getTo()); $bl = $this->getBlockAbove($b); if(!is_null($bl) && !$this->hasFreeSpace($bl)) { while(!is_null($bl) && !$this->hasFreeSpace($bl)) { @@ -183,16 +190,25 @@ class Main extends PluginBase implements Listener { @return \pocketmine\block\Block */ public function getElevatorBlock() : \pocketmine\block\Block { - return clone $this->elevator; + return clone $this->elevator->getBlock(); } /* - Return a clone of the speeding block + Return a clone of the boosting block @return \pocketmine\block\Block */ - public function getSpeedBlock() : \pocketmine\block\Block { - return clone $this->speed; + public function getBoostBlock() : \pocketmine\block\Block { + return clone $this->boost->getBlock(); + } + + + /* + Return a clone of the jumpig block block + @return \pocketmine\block\Block + */ + public function getJumpBlock() : \pocketmine\block\Block { + return clone $this->jump->getBlock(); } diff --git a/src/Ad5001/FastTravel/tasks/FastingTask.php b/src/Ad5001/FastTravel/tasks/FastingTask.php index bd0aefd..f910e3d 100644 --- a/src/Ad5001/FastTravel/tasks/FastingTask.php +++ b/src/Ad5001/FastTravel/tasks/FastingTask.php @@ -37,6 +37,7 @@ class FastingTask extends PluginTask { parent::__construct($main); $this->main = $main; $this->server = $main->getServer(); + $this->boostPlayers = []; } @@ -45,7 +46,22 @@ class FastingTask extends PluginTask { public function onRun($tick) { foreach($this->server->getOnlinePlayers() as $p) { - + $r = $p->round(); + $r->y = $p->getFloorY() - 1; + if($p->getLevel()->getBlock($r)->getId() == $this->main->getBoostBlock()->getId() && $p->getLevel()->getBlock($r)->getDamage() == $this->main->getBoostBlock()->getDamage()) { + $attr = $p->getAttributeMap()->getAttribute(\pocketmine\entity\Attribute::MOVEMENT_SPEED); + $attr->setValue(0.11 * $this->main->getConfig()->get("BoostAmplifier")); + $this->boostPlayers[$p->getName()] = 8; // 2 seconds. + } elseif(isset($this->boostPlayers[$p->getName()])) { + $this->boostPlayers[$p->getName()]--; + if($this->boostPlayers[$p->getName()] <= 0) { + $attr = $p->getAttributeMap()->getAttribute(\pocketmine\entity\Attribute::MOVEMENT_SPEED); + $attr->setValue(0.11); + } + } + if($p->getLevel()->getBlock($r)->getId() == $this->main->getJumpBlock()->getId() && $p->getLevel()->getBlock($r)->getDamage() == $this->main->getJumpBlock()->getDamage()) { + $p->setMotion(new \pocketmine\math\Vector3($p->getMotion()->x, $this->main->getConfig()->get("JumpAmplifier"), $p->getMotion()->x)); + } } }