1
0
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:
flo0s 2024-04-25 19:52:36 +02:00
parent 49b8e5cb57
commit dc2d340539
5 changed files with 56 additions and 4 deletions

View File

@ -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();
}
}
}

View File

@ -10,7 +10,8 @@ public enum JobsHook {
WildStacker,
WorldGuard,
MythicMobs,
mcMMO;
mcMMO,
BlockTracker;
private Boolean enabled;
private Boolean present;

View File

@ -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;
}
}

View File

@ -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());

View File

@ -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