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

Commit 8af090b

Browse files
committed
Prevent fall damage + Added launchpad strength
1 parent 50c93ec commit 8af090b

File tree

4 files changed

+37
-13
lines changed

4 files changed

+37
-13
lines changed

plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: LaunchPads
22
main: LaunchPads\Main
3-
version: 1.0.2
3+
version: 1.0.3
44
api: [2.0.0]
55
load: POSTWORLD
66
author: MCPEPIG

resources/config.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
#
1717

1818
#The blocks you want as launchpad
19-
launchpad: [152]
19+
launchpads: [152]
20+
#Strength of launchpad
21+
launchpad-stength: 1
2022
#If enabled, you can change a launchpad's direction by placing a torch the direction you want.
2123
enable-torch-mode: true

src/LaunchPads/EventListener.php

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,72 @@
11
<?php
22
namespace LaunchPads;
33

4-
use pocketmine\event\Listener;
4+
use pocketmine\event\entity\EntityDamageEvent;
55
use pocketmine\event\player\PlayerMoveEvent;
6+
use pocketmine\event\Listener;
7+
use pocketmine\Player;
68

79
class EventListener implements Listener {
810
public function __construct($plugin) {
911
$this->plugin = $plugin;
1012
}
1113

14+
public function onDamage(EntityDamageEvent $event) {
15+
$entity = $event->getEntity();
16+
$cause = $event->getCause();
17+
if($entity instanceof Player && $cause == 4) {
18+
if(isset($this->plugin->launchpad[strtolower($entity->getName())])) {
19+
unset($this->plugin->launchpad[strtolower($entity->getName())]);
20+
$event->setCancelled();
21+
}
22+
}
23+
}
24+
1225
public function onMove(PlayerMoveEvent $event) {
1326
$player = $event->getPlayer();
1427
$block = $player->getLevel()->getBlock($player->floor()->subtract(0, 1));
1528
$block2 = $player->getLevel()->getBlock($player->floor()->subtract(0, 2));
16-
$launchpads = $this->plugin->getconfig()->get("launchpad");
29+
$launchpads = $this->plugin->getConfig()->get("launchpads");
30+
$strength = $this->plugin->getConfig()->get("launchpad-strength");
1731
if(in_array($block->getId(), $launchpads)) {
18-
if($this->plugin->getconfig()->get("enable-torch-mode")) {
32+
$this->plugin->launchpad[strtolower($player->getName())] = true;
33+
if($this->plugin->getConfig()->get("enable-torch-mode")) {
1934
if($block2->getId() == 50) {
2035
switch($block2->getDamage()) {
2136
case 2:
22-
$player->knockBack($player, 0, -1, 0, 1);
37+
$player->knockBack($player, 0, -1, 0, $strength);
2338
return true;
2439
case 1:
25-
$player->knockBack($player, 0, 1, 0, 1);
40+
$player->knockBack($player, 0, 1, 0, $strength);
2641
return true;
2742
case 4:
28-
$player->knockBack($player, 0, 0, -1, 1);
43+
$player->knockBack($player, 0, 0, -1, $strength);
2944
return true;
3045
case 3:
31-
$player->knockBack($player, 0, 0, 1, 1);
46+
$player->knockBack($player, 0, 0, 1, $strength);
3247
return true;
3348
}
3449
}
3550
}
3651
switch($player->getDirection()) {
3752
case 0:
38-
$player->knockBack($player, 0, 1, 0, 1);
53+
$player->knockBack($player, 0, 1, 0, $strength);
3954
return true;
4055
case 1:
41-
$player->knockBack($player, 0, 0, 1, 1);
56+
$player->knockBack($player, 0, 0, 1, $strength);
4257
return true;
4358
case 2:
44-
$player->knockBack($player, 0, -1, 0, 1);
59+
$player->knockBack($player, 0, -1, 0, $strength);
4560
return true;
4661
case 3:
47-
$player->knockBack($player, 0, 0, -1, 1);
62+
$player->knockBack($player, 0, 0, -1, $strength);
4863
return true;
4964
}
5065
}
66+
if(isset($this->plugin->launchpad[strtolower($player->getName())])) {
67+
if(!$block->getId() == 0) {
68+
unset($this->plugin->launchpad[strtolower($player->getName())]);
69+
}
70+
}
5171
}
5272
}

src/LaunchPads/Main.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
use pocketmine\utils\Config;
66

77
class Main extends PluginBase {
8+
public $launchpad;
9+
810
public function onEnable() {
911
$this->saveDefaultConfig();
1012
$this->getServer()->getPluginManager()->registerEvents(new EventListener($this), $this);

0 commit comments

Comments
 (0)