diff --git a/pom.xml b/pom.xml
index 624ee88f3..5a0737cb3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -192,6 +192,13 @@
2.3.4
provided
+
+
+ com.github.justADeni
+ LogicallyAPI
+ 1.15.4
+ provided
+
diff --git a/src/main/java/com/gamingmesh/jobs/Jobs.java b/src/main/java/com/gamingmesh/jobs/Jobs.java
index 45fb23936..e430b83cd 100644
--- a/src/main/java/com/gamingmesh/jobs/Jobs.java
+++ b/src/main/java/com/gamingmesh/jobs/Jobs.java
@@ -888,6 +888,7 @@ private static void registerListeners() {
JobsHook.PyroFishingPro.registerListener();
JobsHook.mcMMO.registerListener();
JobsHook.MythicMobs.registerListener();
+ JobsHook.Logically.registerListener();
CMIMessages.consoleMessage("&eListeners registered successfully");
}
diff --git a/src/main/java/com/gamingmesh/jobs/hooks/JobsHook.java b/src/main/java/com/gamingmesh/jobs/hooks/JobsHook.java
index 0e0e4344f..2a03172d1 100644
--- a/src/main/java/com/gamingmesh/jobs/hooks/JobsHook.java
+++ b/src/main/java/com/gamingmesh/jobs/hooks/JobsHook.java
@@ -1,5 +1,6 @@
package com.gamingmesh.jobs.hooks;
+import com.gamingmesh.jobs.hooks.Logically.TreeChopListener;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
@@ -171,6 +172,16 @@ public void registerListener() {
JavaPlugin.getPlugin(Jobs.class).getServer().getPluginManager().registerEvents(new JobsCustomFishingPaymentListener(), JavaPlugin.getPlugin(Jobs.class));
printListenerMessage(this);
}
+ },
+ Logically {
+ @Override
+ public void registerListener() {
+ if (!isPresent())
+ return;
+
+ Jobs.getInstance().getServer().getPluginManager().registerEvents(new TreeChopListener(), Jobs.getInstance());
+ printListenerMessage(this);
+ }
};
private boolean enabled;
diff --git a/src/main/java/com/gamingmesh/jobs/hooks/Logically/TreeChopListener.java b/src/main/java/com/gamingmesh/jobs/hooks/Logically/TreeChopListener.java
new file mode 100644
index 000000000..1632a06d9
--- /dev/null
+++ b/src/main/java/com/gamingmesh/jobs/hooks/Logically/TreeChopListener.java
@@ -0,0 +1,39 @@
+package com.gamingmesh.jobs.hooks.Logically;
+
+import com.gamingmesh.jobs.Jobs;
+import com.gamingmesh.jobs.actions.BlockActionInfo;
+import com.gamingmesh.jobs.container.ActionType;
+import com.gamingmesh.jobs.container.JobsPlayer;
+import com.github.justadeni.logically.api.StartChopTreeEvent;
+import org.bukkit.Bukkit;
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.Listener;
+
+public class TreeChopListener implements Listener {
+
+ @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
+ public void onTreeChop(StartChopTreeEvent event) {
+ final Player player = event.getPlayer();
+
+ if (!Jobs.getGCManager().canPerformActionInWorld(player.getWorld()))
+ return;
+
+ if (!Jobs.getPermissionHandler().hasWorldPermission(player, player.getLocation().getWorld().getName()))
+ return;
+
+ JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(player);
+ if (jPlayer == null)
+ return;
+
+ Bukkit.getScheduler().runTask(Jobs.getInstance(), () -> {
+ for (Block block : event.getLogs()) {
+ BlockActionInfo actionInfo = new BlockActionInfo(block, ActionType.BREAK);
+ Jobs.action(jPlayer, actionInfo, block);
+ }
+ });
+ }
+
+}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 56215ed21..ebf63648a 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -8,7 +8,7 @@ website: https://www.spigotmc.org/resources/4216/
authors: [Zrips]
contributors: [montlikadani]
depend: [CMILib]
-softdepend: [Vault, Essentials, MythicMobs, WorldGuard, MyPet, PlaceholderAPI, EcoEnchants, WildStacker, StackMob, PyroFishingPro, BlockTracker, CustomFishing]
+softdepend: [Vault, Essentials, MythicMobs, WorldGuard, MyPet, PlaceholderAPI, EcoEnchants, WildStacker, StackMob, PyroFishingPro, BlockTracker, CustomFishing, Logically]
commands:
jobs:
description: Jobs