diff --git a/pom.xml b/pom.xml
index 75bddfba..04de2b7d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,6 +65,12 @@
worldedit
5.6.1
+
+ net.ess3
+ Essentials
+ 2.x-SNAPSHOT
+ provided
+
@@ -72,6 +78,10 @@
repo-daboross-net
http://repo.daboross.net/
+
+ ess-repo
+ http://repo.ess3.net/content/groups/public
+
bukkit-repo
http://repo.bukkit.org/content/groups/public/
diff --git a/src/main/java/com/massivecraft/factions/P.java b/src/main/java/com/massivecraft/factions/P.java
index 004b92c5..f9333f02 100644
--- a/src/main/java/com/massivecraft/factions/P.java
+++ b/src/main/java/com/massivecraft/factions/P.java
@@ -3,6 +3,7 @@ package com.massivecraft.factions;
import com.massivecraft.factions.cmd.CmdAutoHelp;
import com.massivecraft.factions.cmd.FCmdRoot;
import com.massivecraft.factions.integration.Econ;
+import com.massivecraft.factions.integration.Essentials;
import com.massivecraft.factions.integration.Worldguard;
import com.massivecraft.factions.listeners.*;
import com.massivecraft.factions.struct.ChatMode;
@@ -86,6 +87,7 @@ public class P extends MPlugin {
// Load Conf from disk
Conf.load();
+ Essentials.setup();
FPlayers.i.loadFromDisc();
Factions.i.loadFromDisc();
Board.load();
diff --git a/src/main/java/com/massivecraft/factions/integration/Essentials.java b/src/main/java/com/massivecraft/factions/integration/Essentials.java
new file mode 100644
index 00000000..5de1eb52
--- /dev/null
+++ b/src/main/java/com/massivecraft/factions/integration/Essentials.java
@@ -0,0 +1,37 @@
+package com.massivecraft.factions.integration;
+
+import com.earth2me.essentials.IEssentials;
+import com.earth2me.essentials.Teleport;
+import com.earth2me.essentials.Trade;
+import com.massivecraft.factions.Conf;
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.Location;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.Plugin;
+
+public class Essentials {
+
+ private static IEssentials essentials;
+
+ public static void setup() {
+ Plugin ess = Bukkit.getPluginManager().getPlugin("Essentials");
+ if(ess != null) {
+ essentials = (IEssentials) ess;
+ }
+ }
+
+ // return false if feature is disabled or Essentials isn't available
+ public static boolean handleTeleport(Player player, Location loc) {
+ if (!Conf.homesTeleportCommandEssentialsIntegration || essentials == null) return false;
+
+ Teleport teleport = (Teleport) essentials.getUser(player).getTeleport();
+ Trade trade = new Trade(Conf.econCostHome, essentials);
+ try {
+ teleport.teleport(loc, trade);
+ } catch (Exception e) {
+ player.sendMessage(ChatColor.RED.toString() + e.getMessage());
+ }
+ return true;
+ }
+}