From d9411b306987107aa582d962450305b1f432ef9b Mon Sep 17 00:00:00 2001 From: jasonwynn10 Date: Fri, 9 Dec 2016 16:13:19 -0500 Subject: [PATCH] added EssentialsPE support for #9 --- src/MyPlot/MyPlot.php | 18 ++++++++++-- src/MyPlot/provider/EconomyProvider.php | 10 ++----- src/MyPlot/provider/EconomySProvider.php | 16 +++++++---- src/MyPlot/provider/EssentialsPEProvider.php | 30 ++++++++++++++++++++ src/MyPlot/provider/PocketMoneyProvider.php | 1 + 5 files changed, 59 insertions(+), 16 deletions(-) create mode 100644 src/MyPlot/provider/EssentialsPEProvider.php diff --git a/src/MyPlot/MyPlot.php b/src/MyPlot/MyPlot.php index 173fb56e..88123f0d 100644 --- a/src/MyPlot/MyPlot.php +++ b/src/MyPlot/MyPlot.php @@ -1,7 +1,9 @@ getConfig()->get("UseEconomy") == true) { - if ($this->getServer()->getPluginManager()->getPlugin("EconomyAPI") !== null) { - $this->economyProvider = new EconomySProvider(); + if (($plugin = $this->getServer()->getPluginManager()->getPlugin("EconomyAPI")) !== null) { + if($plugin instanceof EconomyAPI) { + $this->economyProvider = new EconomySProvider($plugin); + } + } elseif (($plugin = $this->getServer()->getPluginManager()->getPlugin("EssentialsPE")) !== null) { + if($plugin instanceof Loader) { + $this->economyProvider = new EssentialsPEProvider($plugin); + } } elseif (($plugin = $this->getServer()->getPluginManager()->getPlugin("PocketMoney")) !== null) { - $this->economyProvider = new PocketMoneyProvider($plugin); + if($plugin instanceof PocketMoney) { + $this->economyProvider = new PocketMoneyProvider($plugin); + } } } diff --git a/src/MyPlot/provider/EconomyProvider.php b/src/MyPlot/provider/EconomyProvider.php index 9ceed2da..4ba2eb8c 100644 --- a/src/MyPlot/provider/EconomyProvider.php +++ b/src/MyPlot/provider/EconomyProvider.php @@ -3,12 +3,6 @@ use pocketmine\Player; -interface EconomyProvider -{ - /** - * @param Player $player - * @param int $amount - * @return bool - */ - public function reduceMoney(Player $player, $amount); +interface EconomyProvider{ + public function reduceMoney(Player $player, $amount); } \ No newline at end of file diff --git a/src/MyPlot/provider/EconomySProvider.php b/src/MyPlot/provider/EconomySProvider.php index 49a638c7..9528f048 100644 --- a/src/MyPlot/provider/EconomySProvider.php +++ b/src/MyPlot/provider/EconomySProvider.php @@ -6,15 +6,21 @@ class EconomySProvider implements EconomyProvider { - public function reduceMoney(Player $player, $amount) { + /** @var EconomyAPI */ + private $plugin; + + public function __construct(EconomyAPI $plugin) { + $this->plugin = $plugin; + } + + public function reduceMoney(Player $player, $amount) { if ($amount == 0) { return true; } elseif ($amount < 0) { - $ret = EconomyAPI::getInstance()->addMoney($player, $amount, true); + $ret = $this->plugin->addMoney($player, $amount, true); } else { - $ret = EconomyAPI::getInstance()->reduceMoney($player, $amount, true); + $ret = $this->plugin->reduceMoney($player, $amount, true); } - - return ($ret === EconomyAPI::RET_SUCCESS); + return ($ret == 1); } } \ No newline at end of file diff --git a/src/MyPlot/provider/EssentialsPEProvider.php b/src/MyPlot/provider/EssentialsPEProvider.php new file mode 100644 index 00000000..346afa19 --- /dev/null +++ b/src/MyPlot/provider/EssentialsPEProvider.php @@ -0,0 +1,30 @@ +plugin = $plugin; + } + + public function reduceMoney(Player $player, $amount) { + if ($amount == 0) { + return true; + } elseif ($amount < 0) { + $pre = $this->plugin->getAPI()->getPlayerBalance($player); + $this->plugin->getAPI()->addToPlayerBalance($player, $amount); + } else { + $pre = $this->plugin->getAPI()->getPlayerBalance($player); + $this->plugin->getAPI()->addToPlayerBalance($player, -$amount); + } + if($this->plugin->getAPI()->getPlayerBalance($player) == $pre - $amount) { + return true; + } + return false; + } +} \ No newline at end of file diff --git a/src/MyPlot/provider/PocketMoneyProvider.php b/src/MyPlot/provider/PocketMoneyProvider.php index 9c715370..64bcbdd3 100644 --- a/src/MyPlot/provider/PocketMoneyProvider.php +++ b/src/MyPlot/provider/PocketMoneyProvider.php @@ -6,6 +6,7 @@ class PocketMoneyProvider implements EconomyProvider { + /** @var PocketMoney */ private $plugin; public function __construct(PocketMoney $plugin) {