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 @@
 <?php
 namespace MyPlot;
 
+use EssentialsPE\Loader;
 use MyPlot\provider\EconomySProvider;
+use MyPlot\provider\EssentialsPEProvider;
 use MyPlot\provider\PocketMoneyProvider;
 use MyPlot\provider\YAMLDataProvider;
 use MyPlot\task\ClearPlotTask;
@@ -9,6 +11,7 @@
 use MyPlot\provider\SQLiteDataProvider;
 use MyPlot\provider\EconomyProvider;
 
+use onebone\economyapi\EconomyAPI;
 use pocketmine\block\Air;
 use pocketmine\event\level\LevelLoadEvent;
 use pocketmine\lang\BaseLang;
@@ -21,6 +24,7 @@
 use pocketmine\Player;
 use pocketmine\level\Level;
 use pocketmine\utils\TextFormat as TF;
+use PocketMoney\PocketMoney;
 
 class MyPlot extends PluginBase
 {
@@ -500,10 +504,18 @@ public function onEnable() {
 
         // Initialize EconomyProvider
         if ($this->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 @@
+<?php
+namespace MyPlot\provider;
+
+use EssentialsPE\Loader;
+use pocketmine\Player;
+
+class EssentialsPEProvider implements EconomyProvider {
+	/** @var Loader */
+	private $plugin;
+
+	public function __construct(Loader $plugin) {
+		$this->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) {