Skip to content
This repository has been archived by the owner on Jun 12, 2018. It is now read-only.

Commit

Permalink
Prevent fall damage + Added launchpad strength
Browse files Browse the repository at this point in the history
  • Loading branch information
DaPigGuy committed Aug 2, 2016
1 parent 50c93ec commit 8af090b
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 13 deletions.
2 changes: 1 addition & 1 deletion plugin.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: LaunchPads
main: LaunchPads\Main
version: 1.0.2
version: 1.0.3
api: [2.0.0]
load: POSTWORLD
author: MCPEPIG
4 changes: 3 additions & 1 deletion resources/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
#

#The blocks you want as launchpad
launchpad: [152]
launchpads: [152]
#Strength of launchpad
launchpad-stength: 1
#If enabled, you can change a launchpad's direction by placing a torch the direction you want.
enable-torch-mode: true
42 changes: 31 additions & 11 deletions src/LaunchPads/EventListener.php
Original file line number Diff line number Diff line change
@@ -1,52 +1,72 @@
<?php
namespace LaunchPads;

use pocketmine\event\Listener;
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\event\player\PlayerMoveEvent;
use pocketmine\event\Listener;
use pocketmine\Player;

class EventListener implements Listener {
public function __construct($plugin) {
$this->plugin = $plugin;
}

public function onDamage(EntityDamageEvent $event) {
$entity = $event->getEntity();
$cause = $event->getCause();
if($entity instanceof Player && $cause == 4) {
if(isset($this->plugin->launchpad[strtolower($entity->getName())])) {
unset($this->plugin->launchpad[strtolower($entity->getName())]);
$event->setCancelled();
}
}
}

public function onMove(PlayerMoveEvent $event) {
$player = $event->getPlayer();
$block = $player->getLevel()->getBlock($player->floor()->subtract(0, 1));
$block2 = $player->getLevel()->getBlock($player->floor()->subtract(0, 2));
$launchpads = $this->plugin->getconfig()->get("launchpad");
$launchpads = $this->plugin->getConfig()->get("launchpads");
$strength = $this->plugin->getConfig()->get("launchpad-strength");
if(in_array($block->getId(), $launchpads)) {
if($this->plugin->getconfig()->get("enable-torch-mode")) {
$this->plugin->launchpad[strtolower($player->getName())] = true;
if($this->plugin->getConfig()->get("enable-torch-mode")) {
if($block2->getId() == 50) {
switch($block2->getDamage()) {
case 2:
$player->knockBack($player, 0, -1, 0, 1);
$player->knockBack($player, 0, -1, 0, $strength);
return true;
case 1:
$player->knockBack($player, 0, 1, 0, 1);
$player->knockBack($player, 0, 1, 0, $strength);
return true;
case 4:
$player->knockBack($player, 0, 0, -1, 1);
$player->knockBack($player, 0, 0, -1, $strength);
return true;
case 3:
$player->knockBack($player, 0, 0, 1, 1);
$player->knockBack($player, 0, 0, 1, $strength);
return true;
}
}
}
switch($player->getDirection()) {
case 0:
$player->knockBack($player, 0, 1, 0, 1);
$player->knockBack($player, 0, 1, 0, $strength);
return true;
case 1:
$player->knockBack($player, 0, 0, 1, 1);
$player->knockBack($player, 0, 0, 1, $strength);
return true;
case 2:
$player->knockBack($player, 0, -1, 0, 1);
$player->knockBack($player, 0, -1, 0, $strength);
return true;
case 3:
$player->knockBack($player, 0, 0, -1, 1);
$player->knockBack($player, 0, 0, -1, $strength);
return true;
}
}
if(isset($this->plugin->launchpad[strtolower($player->getName())])) {
if(!$block->getId() == 0) {
unset($this->plugin->launchpad[strtolower($player->getName())]);
}
}
}
}
2 changes: 2 additions & 0 deletions src/LaunchPads/Main.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
use pocketmine\utils\Config;

class Main extends PluginBase {
public $launchpad;

public function onEnable() {
$this->saveDefaultConfig();
$this->getServer()->getPluginManager()->registerEvents(new EventListener($this), $this);
Expand Down

0 comments on commit 8af090b

Please sign in to comment.