From 6ea9ef906d499e19c84aac99a071660e979464cc Mon Sep 17 00:00:00 2001 From: Brianna Date: Fri, 29 May 2020 10:59:31 -0500 Subject: [PATCH] FabledSkyBlock Support (Beta) --- .../java/com/songoda/epicfarming/EpicFarming.java | 6 ++++++ .../compatibility/EpicFarmingPermission.java | 13 +++++++++++++ .../epicfarming/listeners/InteractListeners.java | 14 +++++++++++++- src/main/resources/plugin.yml | 2 +- 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/songoda/epicfarming/compatibility/EpicFarmingPermission.java diff --git a/src/main/java/com/songoda/epicfarming/EpicFarming.java b/src/main/java/com/songoda/epicfarming/EpicFarming.java index af01db2..167c13d 100644 --- a/src/main/java/com/songoda/epicfarming/EpicFarming.java +++ b/src/main/java/com/songoda/epicfarming/EpicFarming.java @@ -15,6 +15,7 @@ import com.songoda.core.utils.TextUtils; import com.songoda.epicfarming.boost.BoostData; import com.songoda.epicfarming.boost.BoostManager; import com.songoda.epicfarming.commands.*; +import com.songoda.epicfarming.compatibility.EpicFarmingPermission; import com.songoda.epicfarming.farming.Farm; import com.songoda.epicfarming.farming.FarmManager; import com.songoda.epicfarming.farming.FarmType; @@ -37,6 +38,7 @@ import com.songoda.epicfarming.tasks.GrowthTask; import com.songoda.epicfarming.tasks.HopperTask; import com.songoda.epicfarming.utils.EntityUtils; import com.songoda.epicfarming.utils.Methods; +import com.songoda.skyblock.SkyBlock; import org.apache.commons.lang.math.NumberUtils; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -191,6 +193,10 @@ public class EpicFarming extends SongodaPlugin { pluginManager.registerEvents(new InteractListeners(this), this); pluginManager.registerEvents(new UnloadListeners(this), this); + if (pluginManager.isPluginEnabled("FabledSkyBlock")) { + SkyBlock.getInstance().getPermissionManager().registerPermission(new EpicFarmingPermission()); + } + // Start tasks this.growthTask = GrowthTask.startTask(this); this.farmTask = FarmTask.startTask(this); diff --git a/src/main/java/com/songoda/epicfarming/compatibility/EpicFarmingPermission.java b/src/main/java/com/songoda/epicfarming/compatibility/EpicFarmingPermission.java new file mode 100644 index 0000000..2e79ba1 --- /dev/null +++ b/src/main/java/com/songoda/epicfarming/compatibility/EpicFarmingPermission.java @@ -0,0 +1,13 @@ +package com.songoda.epicfarming.compatibility; + +import com.songoda.skyblock.core.compatibility.CompatibleMaterial; +import com.songoda.skyblock.permission.BasicPermission; +import com.songoda.skyblock.permission.PermissionType; + +public class EpicFarmingPermission extends BasicPermission { + + public EpicFarmingPermission() { + super("EpicFarming", CompatibleMaterial.END_ROD, PermissionType.GENERIC); + } + +} diff --git a/src/main/java/com/songoda/epicfarming/listeners/InteractListeners.java b/src/main/java/com/songoda/epicfarming/listeners/InteractListeners.java index a8c5215..b473386 100644 --- a/src/main/java/com/songoda/epicfarming/listeners/InteractListeners.java +++ b/src/main/java/com/songoda/epicfarming/listeners/InteractListeners.java @@ -2,6 +2,8 @@ package com.songoda.epicfarming.listeners; import com.songoda.epicfarming.EpicFarming; import com.songoda.epicfarming.settings.Settings; +import com.songoda.skyblock.SkyBlock; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -20,7 +22,7 @@ public class InteractListeners implements Listener { this.instance = instance; } - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + @EventHandler(priority = EventPriority.HIGHEST) public void onBlockInteract(PlayerInteractEvent e) { if (e.getClickedBlock() == null || e.getClickedBlock().getType() != Settings.FARM_BLOCK_MATERIAL.getMaterial().getMaterial()) @@ -28,6 +30,16 @@ public class InteractListeners implements Listener { if (e.getAction() != Action.RIGHT_CLICK_BLOCK) return; + if (Bukkit.getPluginManager().isPluginEnabled("FabledSkyBlock")) { + SkyBlock skyBlock = SkyBlock.getInstance(); + + if (skyBlock.getWorldManager().isIslandWorld(e.getPlayer().getWorld())) + if (!skyBlock.getPermissionManager().hasPermission(e.getPlayer(), + skyBlock.getIslandManager().getIslandAtLocation(e.getClickedBlock().getLocation()), + "EpicFarming")) + return; + } + Location location = e.getClickedBlock().getLocation(); if (instance.getFarmManager().getFarms().containsKey(location)) { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 8aef810..07e4e8f 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,7 +2,7 @@ name: EpicFarming description: EpicFarming main: com.songoda.epicfarming.EpicFarming version: maven-version-number -softdepend: [Arconix, SkyBlock, Towny, RedProtect, Kingdoms, PlotSquared, GriefPrevention, USkyBlock, ASkyBlock, WorldGuard, Factions, PlaceholderAPI, Vault, PlayerPoints, Reserve, StackMob, UltimateStacker, WildStacker] +softdepend: [FabledSkyBlock, Arconix, SkyBlock, Towny, RedProtect, Kingdoms, PlotSquared, GriefPrevention, USkyBlock, ASkyBlock, WorldGuard, Factions, PlaceholderAPI, Vault, PlayerPoints, Reserve, StackMob, UltimateStacker, WildStacker] author: Songoda api-version: 1.13 commands: