mirror of
https://github.com/Zrips/Jobs.git
synced 2025-02-06 23:41:21 +01:00
Add BlockTracker to softdepend
This commit is contained in:
parent
49b8e5cb57
commit
dc2d340539
@ -1,5 +1,6 @@
|
||||
package com.gamingmesh.jobs.hooks;
|
||||
|
||||
import com.gamingmesh.jobs.hooks.blockTracker.BlockTrackerManager;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
@ -25,6 +26,7 @@ public class HookManager {
|
||||
private static WorldGuardManager worldGuardManager;
|
||||
private static StackMobHandler stackMobHandler;
|
||||
private static WildStackerHandler wildStackerHandler;
|
||||
private static BlockTrackerManager blockTrackerManager;
|
||||
|
||||
private static final Jobs PLUGIN = JavaPlugin.getPlugin(Jobs.class);
|
||||
|
||||
@ -38,6 +40,7 @@ public class HookManager {
|
||||
setMythicManager();
|
||||
setStackMobHandler();
|
||||
setWildStackerHandler();
|
||||
setBlockTrackerManager();
|
||||
}
|
||||
|
||||
public static StackMobHandler getStackMobHandler() {
|
||||
@ -87,6 +90,14 @@ public class HookManager {
|
||||
return Jobs.getGCManager().MythicMobsEnabled && MythicManager != null && MythicManager.check();
|
||||
}
|
||||
|
||||
public static BlockTrackerManager getBlockTrackerManager() {
|
||||
if (blockTrackerManager == null) {
|
||||
blockTrackerManager = new BlockTrackerManager();
|
||||
}
|
||||
|
||||
return blockTrackerManager;
|
||||
}
|
||||
|
||||
private static boolean setWorldGuard() {
|
||||
if (JobsHook.WorldGuard.isEnabled()) {
|
||||
worldGuardManager = new WorldGuardManager();
|
||||
@ -145,4 +156,10 @@ public class HookManager {
|
||||
wildStackerHandler = new WildStackerHandler();
|
||||
}
|
||||
}
|
||||
|
||||
private static void setBlockTrackerManager() {
|
||||
if (JobsHook.BlockTracker.isEnabled()) {
|
||||
blockTrackerManager = new BlockTrackerManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,8 @@ public enum JobsHook {
|
||||
WildStacker,
|
||||
WorldGuard,
|
||||
MythicMobs,
|
||||
mcMMO;
|
||||
mcMMO,
|
||||
BlockTracker;
|
||||
|
||||
private Boolean enabled;
|
||||
private Boolean present;
|
||||
|
@ -1,2 +1,30 @@
|
||||
package com.gamingmesh.jobs.hooks.blockTracker;public class BlockTrackerManager {
|
||||
package com.gamingmesh.jobs.hooks.blockTracker;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class BlockTrackerManager {
|
||||
private final Method isTrackedMethod;
|
||||
public BlockTrackerManager() {
|
||||
try {
|
||||
Class<? extends Plugin> pluginClazz = (Class<? extends Plugin>) Class.forName("dev.krakenied.blocktracker.bukkit.BukkitBlockTrackerPlugin");
|
||||
this.isTrackedMethod = pluginClazz.getMethod("isTracked", Block.class);
|
||||
} catch (ClassCastException | ClassNotFoundException | NoSuchMethodException ignored) {
|
||||
throw new IllegalStateException("BlockTracker plugin not found");
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isTracked(Block block) {
|
||||
try {
|
||||
return (boolean) this.isTrackedMethod.invoke(null, block);
|
||||
} catch (Throwable e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public Method getIsTrackedMethod() {
|
||||
return isTrackedMethod;
|
||||
}
|
||||
}
|
||||
|
@ -417,13 +417,18 @@ public final class JobsPaymentListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
final Block block = event.getBlock();
|
||||
|
||||
if (!Jobs.getGCManager().canPerformActionInWorld(block.getWorld()))
|
||||
return;
|
||||
|
||||
// Checks whether the broken block has been tracked by BlockTracker
|
||||
if (JobsHook.BlockTracker.isEnabled()) {
|
||||
if (HookManager.getBlockTrackerManager().isTracked(block)) return;
|
||||
}
|
||||
|
||||
Player player = event.getPlayer();
|
||||
|
||||
// Remove block owner ships
|
||||
@ -440,6 +445,7 @@ public final class JobsPaymentListener implements Listener {
|
||||
if (!Jobs.getPermissionHandler().hasWorldPermission(player, player.getLocation().getWorld().getName()))
|
||||
return;
|
||||
|
||||
|
||||
BlockActionInfo bInfo = new BlockActionInfo(block, ActionType.BREAK);
|
||||
|
||||
FastPayment fp = Jobs.FASTPAYMENT.get(player.getUniqueId());
|
||||
|
@ -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]
|
||||
softdepend: [Vault, Essentials, MythicMobs, WorldGuard, MyPet, PlaceholderAPI, EcoEnchants, WildStacker, StackMob, BlockTracker]
|
||||
commands:
|
||||
jobs:
|
||||
description: Jobs
|
||||
|
Loading…
Reference in New Issue
Block a user