From d3e2d27913a108ec160ac98c20536dee96905427 Mon Sep 17 00:00:00 2001 From: Brianna Date: Fri, 28 Aug 2020 08:41:15 -0500 Subject: [PATCH 1/4] Wrong seed. --- UltimateTimber/Plugin/resources/config-current.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UltimateTimber/Plugin/resources/config-current.yml b/UltimateTimber/Plugin/resources/config-current.yml index 91d3e6e..0a5e163 100644 --- a/UltimateTimber/Plugin/resources/config-current.yml +++ b/UltimateTimber/Plugin/resources/config-current.yml @@ -390,7 +390,7 @@ trees: leaves: - WARPED_WART_BLOCK - SHROOMLIGHT - sapling: CRIMSON_FUNGUS + sapling: WARPED_FUNGUS plantable-soil: - WARPED_NYLIUM max-log-distance-from-trunk: 27 From 151b443a807a939c64545c1696c5d10e6835d982 Mon Sep 17 00:00:00 2001 From: Brianna Date: Fri, 28 Aug 2020 17:54:47 -0500 Subject: [PATCH 2/4] Lets use SongodaCore hooks. --- UltimateTimber-Hook/CoreProtect/pom.xml | 35 ----- .../ultimatetimber/hook/CoreProtectHook.java | 44 ------ UltimateTimber-Hook/Jobs/pom.xml | 35 ----- .../songoda/ultimatetimber/hook/JobsHook.java | 41 ------ UltimateTimber-Hook/McMMO/pom.xml | 35 ----- .../ultimatetimber/hook/McMMOHook.java | 47 ------- UltimateTimber-Hook/McMMOClassic12/pom.xml | 35 ----- .../hook/McMMOClassic12Hook.java | 52 -------- UltimateTimber-Hook/McMMOClassic13/pom.xml | 35 ----- .../hook/McMMOClassic13Hook.java | 53 -------- UltimateTimber-Hook/McMMOClassic8/pom.xml | 35 ----- .../hook/McMMOClassic8Hook.java | 52 -------- .../ultimatetimber/hook/TimberHook.java | 33 ----- UltimateTimber/Plugin/pom.xml | 36 ----- UltimateTimber/Plugin/resources/plugin.yml | 2 +- .../ultimatetimber/UltimateTimber.java | 19 ++- .../ultimatetimber/manager/HookManager.java | 125 ------------------ .../manager/TreeDefinitionManager.java | 13 +- .../manager/TreeFallManager.java | 21 ++- pom.xml | 6 - 20 files changed, 33 insertions(+), 721 deletions(-) delete mode 100644 UltimateTimber-Hook/CoreProtect/pom.xml delete mode 100644 UltimateTimber-Hook/CoreProtect/src/com/songoda/ultimatetimber/hook/CoreProtectHook.java delete mode 100644 UltimateTimber-Hook/Jobs/pom.xml delete mode 100644 UltimateTimber-Hook/Jobs/src/com/songoda/ultimatetimber/hook/JobsHook.java delete mode 100644 UltimateTimber-Hook/McMMO/pom.xml delete mode 100644 UltimateTimber-Hook/McMMO/src/com/songoda/ultimatetimber/hook/McMMOHook.java delete mode 100644 UltimateTimber-Hook/McMMOClassic12/pom.xml delete mode 100644 UltimateTimber-Hook/McMMOClassic12/src/com/songoda/ultimatetimber/hook/McMMOClassic12Hook.java delete mode 100644 UltimateTimber-Hook/McMMOClassic13/pom.xml delete mode 100644 UltimateTimber-Hook/McMMOClassic13/src/com/songoda/ultimatetimber/hook/McMMOClassic13Hook.java delete mode 100644 UltimateTimber-Hook/McMMOClassic8/pom.xml delete mode 100644 UltimateTimber-Hook/McMMOClassic8/src/com/songoda/ultimatetimber/hook/McMMOClassic8Hook.java delete mode 100644 UltimateTimber/Core/src/com/songoda/ultimatetimber/hook/TimberHook.java delete mode 100644 UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/HookManager.java diff --git a/UltimateTimber-Hook/CoreProtect/pom.xml b/UltimateTimber-Hook/CoreProtect/pom.xml deleted file mode 100644 index 1e15ccb..0000000 --- a/UltimateTimber-Hook/CoreProtect/pom.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - com.songoda - UltimateTimber - 2.0.8 - ../../ - - - CoreProtect - - 4.0.0 - jar - - - - org.spigotmc - spigot - 1.15 - provided - - - ${project.groupId} - Core - ${project.version} - compile - - - net - coreprotect - 2.17.5 - provided - - - \ No newline at end of file diff --git a/UltimateTimber-Hook/CoreProtect/src/com/songoda/ultimatetimber/hook/CoreProtectHook.java b/UltimateTimber-Hook/CoreProtect/src/com/songoda/ultimatetimber/hook/CoreProtectHook.java deleted file mode 100644 index 60c57ae..0000000 --- a/UltimateTimber-Hook/CoreProtect/src/com/songoda/ultimatetimber/hook/CoreProtectHook.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.songoda.ultimatetimber.hook; - -import com.songoda.ultimatetimber.tree.ITreeBlock; -import com.songoda.ultimatetimber.tree.TreeBlockSet; -import com.songoda.ultimatetimber.utils.NMSUtil; -import net.coreprotect.CoreProtect; -import net.coreprotect.CoreProtectAPI; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; - -public class CoreProtectHook implements TimberHook { - - private CoreProtectAPI api; - private boolean useDeprecatedMethod = NMSUtil.getVersionNumber() <= 12; - - public CoreProtectHook() { - this.api = CoreProtect.getInstance().getAPI(); - } - - @Override - public void applyExperience(Player player, TreeBlockSet treeBlocks) { - if (!this.api.isEnabled()) - return; - - for (ITreeBlock treeBlock : treeBlocks.getAllTreeBlocks()) { - if (this.useDeprecatedMethod) { - this.api.logRemoval(player.getName(), treeBlock.getLocation(), treeBlock.getBlock().getType(), treeBlock.getBlock().getData()); - } else { - this.api.logRemoval(player.getName(), treeBlock.getLocation(), treeBlock.getBlock().getType(), treeBlock.getBlock().getBlockData()); - } - } - } - - @Override - public boolean shouldApplyDoubleDrops(Player player) { - return false; - } - - @Override - public boolean isUsingAbility(Player player) { - return false; - } - -} diff --git a/UltimateTimber-Hook/Jobs/pom.xml b/UltimateTimber-Hook/Jobs/pom.xml deleted file mode 100644 index 096cdb6..0000000 --- a/UltimateTimber-Hook/Jobs/pom.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - com.songoda - UltimateTimber - 2.0.8 - ../../ - - - Jobs - - 4.0.0 - jar - - - - org.spigotmc - spigot - 1.15 - provided - - - ${project.groupId} - Core - ${project.version} - compile - - - com.gamingmesh - jobs - 4.13.0 - provided - - - \ No newline at end of file diff --git a/UltimateTimber-Hook/Jobs/src/com/songoda/ultimatetimber/hook/JobsHook.java b/UltimateTimber-Hook/Jobs/src/com/songoda/ultimatetimber/hook/JobsHook.java deleted file mode 100644 index 052d02d..0000000 --- a/UltimateTimber-Hook/Jobs/src/com/songoda/ultimatetimber/hook/JobsHook.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.songoda.ultimatetimber.hook; - -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.songoda.ultimatetimber.tree.ITreeBlock; -import com.songoda.ultimatetimber.tree.TreeBlockSet; -import org.bukkit.GameMode; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; - -public class JobsHook implements TimberHook { - - @Override - public void applyExperience(Player player, TreeBlockSet treeBlocks) { - if (player.getGameMode().equals(GameMode.CREATIVE)) - return; - - JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(player); - if (jPlayer == null) - return; - - for (ITreeBlock treeBlock : treeBlocks.getLogBlocks()) { - Block block = treeBlock.getBlock(); - BlockActionInfo bInfo = new BlockActionInfo(block, ActionType.BREAK); - Jobs.action(jPlayer, bInfo, block); - } - } - - @Override - public boolean shouldApplyDoubleDrops(Player player) { - return false; - } - - @Override - public boolean isUsingAbility(Player player) { - return true; - } - -} diff --git a/UltimateTimber-Hook/McMMO/pom.xml b/UltimateTimber-Hook/McMMO/pom.xml deleted file mode 100644 index 799abdb..0000000 --- a/UltimateTimber-Hook/McMMO/pom.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - com.songoda - UltimateTimber - 2.0.8 - ../../ - - - McMMO - - 4.0.0 - jar - - - - org.spigotmc - spigot - 1.15 - provided - - - ${project.groupId} - Core - ${project.version} - compile - - - com.gmail.nossr50 - mcmmo - 2.1.50 - provided - - - \ No newline at end of file diff --git a/UltimateTimber-Hook/McMMO/src/com/songoda/ultimatetimber/hook/McMMOHook.java b/UltimateTimber-Hook/McMMO/src/com/songoda/ultimatetimber/hook/McMMOHook.java deleted file mode 100644 index dbc42c8..0000000 --- a/UltimateTimber-Hook/McMMO/src/com/songoda/ultimatetimber/hook/McMMOHook.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.songoda.ultimatetimber.hook; - -import com.gmail.nossr50.api.AbilityAPI; -import com.gmail.nossr50.api.ExperienceAPI; -import com.gmail.nossr50.datatypes.skills.PrimarySkillType; -import com.gmail.nossr50.datatypes.skills.SubSkillType; -import com.gmail.nossr50.util.Permissions; -import com.gmail.nossr50.util.player.UserManager; -import com.gmail.nossr50.util.random.RandomChanceUtil; -import com.gmail.nossr50.util.skills.RankUtils; -import com.gmail.nossr50.util.skills.SkillActivationType; -import com.songoda.ultimatetimber.tree.TreeBlockSet; -import org.bukkit.GameMode; -import org.bukkit.block.Block; -import org.bukkit.block.BlockState; -import org.bukkit.entity.Player; - -import java.util.ArrayList; - -public class McMMOHook implements TimberHook { - - @Override - public void applyExperience(Player player, TreeBlockSet treeBlocks) { - if (player.getGameMode().equals(GameMode.CREATIVE)) - return; - - ArrayList blockStates = new ArrayList<>(); - treeBlocks.getLogBlocks().forEach(x -> blockStates.add(x.getBlock().getState())); - ExperienceAPI.addXpFromBlocksBySkill(blockStates, UserManager.getPlayer(player), PrimarySkillType.WOODCUTTING); - } - - @Override - public boolean shouldApplyDoubleDrops(Player player) { - if (PrimarySkillType.WOODCUTTING.getDoubleDropsDisabled()) - return false; - - return Permissions.isSubSkillEnabled(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) - && RankUtils.hasReachedRank(1, player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) - && RandomChanceUtil.isActivationSuccessful(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkillType.WOODCUTTING_HARVEST_LUMBER, player); - } - - @Override - public boolean isUsingAbility(Player player) { - return AbilityAPI.treeFellerEnabled(player); - } - -} diff --git a/UltimateTimber-Hook/McMMOClassic12/pom.xml b/UltimateTimber-Hook/McMMOClassic12/pom.xml deleted file mode 100644 index 179c1f3..0000000 --- a/UltimateTimber-Hook/McMMOClassic12/pom.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - com.songoda - UltimateTimber - 2.0.8 - ../../ - - - McMMOClassic12 - - 4.0.0 - jar - - - - org.spigotmc - spigot - 1.12.2 - provided - - - ${project.groupId} - Core - ${project.version} - compile - - - com.gmail.nossr50 - mcmmo - 1.5.10 - provided - - - \ No newline at end of file diff --git a/UltimateTimber-Hook/McMMOClassic12/src/com/songoda/ultimatetimber/hook/McMMOClassic12Hook.java b/UltimateTimber-Hook/McMMOClassic12/src/com/songoda/ultimatetimber/hook/McMMOClassic12Hook.java deleted file mode 100644 index c5bdc87..0000000 --- a/UltimateTimber-Hook/McMMOClassic12/src/com/songoda/ultimatetimber/hook/McMMOClassic12Hook.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.songoda.ultimatetimber.hook; - -import com.gmail.nossr50.api.AbilityAPI; -import com.gmail.nossr50.api.ExperienceAPI; -import com.gmail.nossr50.config.experience.ExperienceConfig; -import com.gmail.nossr50.datatypes.skills.SecondaryAbility; -import com.gmail.nossr50.datatypes.skills.SkillType; -import com.gmail.nossr50.util.Permissions; -import com.gmail.nossr50.util.player.UserManager; -import com.gmail.nossr50.util.skills.PerksUtils; -import com.gmail.nossr50.util.skills.SkillUtils; -import com.songoda.ultimatetimber.tree.ITreeBlock; -import com.songoda.ultimatetimber.tree.TreeBlockSet; -import org.bukkit.GameMode; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.material.MaterialData; - -public class McMMOClassic12Hook implements TimberHook { - - @Override - public void applyExperience(Player player, TreeBlockSet treeBlocks) { - if (player.getGameMode().equals(GameMode.CREATIVE)) - return; - - int xp = 0; - for (ITreeBlock treeBlock : treeBlocks.getLogBlocks()) { - Block block = treeBlock.getBlock(); - MaterialData materialData = block.getState().getData(); - xp += ExperienceConfig.getInstance().getXp(SkillType.WOODCUTTING, materialData); - } - - ExperienceAPI.addXP(player, "woodcutting", xp, "pve"); - } - - @Override - public boolean shouldApplyDoubleDrops(Player player) { - if (player == null || !player.hasMetadata("mcMMO: Player Data") || SkillType.WOODCUTTING.getDoubleDropsDisabled()) - return false; - - int skillLevel = UserManager.getPlayer(player).getSkillLevel(SkillType.WOODCUTTING); - int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.WOODCUTTING); - return Permissions.secondaryAbilityEnabled(player, SecondaryAbility.WOODCUTTING_DOUBLE_DROPS) - && SkillUtils.activationSuccessful(SecondaryAbility.WOODCUTTING_DOUBLE_DROPS, player, skillLevel, activationChance); - } - - @Override - public boolean isUsingAbility(Player player) { - return AbilityAPI.treeFellerEnabled(player); - } - -} diff --git a/UltimateTimber-Hook/McMMOClassic13/pom.xml b/UltimateTimber-Hook/McMMOClassic13/pom.xml deleted file mode 100644 index a091dbb..0000000 --- a/UltimateTimber-Hook/McMMOClassic13/pom.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - com.songoda - UltimateTimber - 2.0.8 - ../../ - - - McMMOClassic13 - - 4.0.0 - jar - - - - org.spigotmc - spigot - 1.15 - provided - - - ${project.groupId} - Core - ${project.version} - compile - - - com.gmail.nossr50 - mcmmo - 1.6.0 - provided - - - \ No newline at end of file diff --git a/UltimateTimber-Hook/McMMOClassic13/src/com/songoda/ultimatetimber/hook/McMMOClassic13Hook.java b/UltimateTimber-Hook/McMMOClassic13/src/com/songoda/ultimatetimber/hook/McMMOClassic13Hook.java deleted file mode 100644 index a074fa9..0000000 --- a/UltimateTimber-Hook/McMMOClassic13/src/com/songoda/ultimatetimber/hook/McMMOClassic13Hook.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.songoda.ultimatetimber.hook; - -import com.gmail.nossr50.api.AbilityAPI; -import com.gmail.nossr50.api.ExperienceAPI; -import com.gmail.nossr50.config.experience.ExperienceConfig; -import com.gmail.nossr50.datatypes.player.McMMOPlayer; -import com.gmail.nossr50.datatypes.skills.SecondaryAbility; -import com.gmail.nossr50.datatypes.skills.SkillType; -import com.gmail.nossr50.util.Permissions; -import com.gmail.nossr50.util.player.UserManager; -import com.gmail.nossr50.util.skills.PerksUtils; -import com.gmail.nossr50.util.skills.SkillUtils; -import com.songoda.ultimatetimber.tree.ITreeBlock; -import com.songoda.ultimatetimber.tree.TreeBlockSet; -import org.bukkit.GameMode; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.entity.Player; - -public class McMMOClassic13Hook implements TimberHook { - - @Override - public void applyExperience(Player player, TreeBlockSet treeBlocks) { - if (player.getGameMode().equals(GameMode.CREATIVE)) - return; - - int xp = 0; - for (ITreeBlock treeBlock : treeBlocks.getLogBlocks()) { - Block block = treeBlock.getBlock(); - BlockData blockData = block.getBlockData(); - xp += ExperienceConfig.getInstance().getXp(SkillType.WOODCUTTING, blockData); - } - - ExperienceAPI.addXP(player, "woodcutting", xp, "pve"); - } - - @Override - public boolean shouldApplyDoubleDrops(Player player) { - if (player == null || !player.hasMetadata("mcMMO: Player Data") || SkillType.WOODCUTTING.getDoubleDropsDisabled()) - return false; - - int skillLevel = UserManager.getPlayer(player).getSkillLevel(SkillType.WOODCUTTING); - int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.WOODCUTTING); - return Permissions.secondaryAbilityEnabled(player, SecondaryAbility.WOODCUTTING_DOUBLE_DROPS) - && SkillUtils.activationSuccessful(SecondaryAbility.WOODCUTTING_DOUBLE_DROPS, player, skillLevel, activationChance); - } - - @Override - public boolean isUsingAbility(Player player) { - return AbilityAPI.treeFellerEnabled(player); - } - -} diff --git a/UltimateTimber-Hook/McMMOClassic8/pom.xml b/UltimateTimber-Hook/McMMOClassic8/pom.xml deleted file mode 100644 index 2e3c8b3..0000000 --- a/UltimateTimber-Hook/McMMOClassic8/pom.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - com.songoda - UltimateTimber - 2.0.8 - ../../ - - - McMMOClassic8 - - 4.0.0 - jar - - - - org.spigotmc - spigot - 1.8.8 - provided - - - ${project.groupId} - Core - ${project.version} - compile - - - com.gmail.nossr50 - mcmmo - 1.5.04 - provided - - - \ No newline at end of file diff --git a/UltimateTimber-Hook/McMMOClassic8/src/com/songoda/ultimatetimber/hook/McMMOClassic8Hook.java b/UltimateTimber-Hook/McMMOClassic8/src/com/songoda/ultimatetimber/hook/McMMOClassic8Hook.java deleted file mode 100644 index 05153dc..0000000 --- a/UltimateTimber-Hook/McMMOClassic8/src/com/songoda/ultimatetimber/hook/McMMOClassic8Hook.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.songoda.ultimatetimber.hook; - -import com.gmail.nossr50.api.AbilityAPI; -import com.gmail.nossr50.api.ExperienceAPI; -import com.gmail.nossr50.config.experience.ExperienceConfig; -import com.gmail.nossr50.datatypes.skills.SecondaryAbility; -import com.gmail.nossr50.datatypes.skills.SkillType; -import com.gmail.nossr50.util.Permissions; -import com.gmail.nossr50.util.player.UserManager; -import com.gmail.nossr50.util.skills.PerksUtils; -import com.gmail.nossr50.util.skills.SkillUtils; -import com.songoda.ultimatetimber.tree.ITreeBlock; -import com.songoda.ultimatetimber.tree.TreeBlockSet; -import org.bukkit.GameMode; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; - -public class McMMOClassic8Hook implements TimberHook { - - @Override - public void applyExperience(Player player, TreeBlockSet treeBlocks) { - if (player.getGameMode().equals(GameMode.CREATIVE)) - return; - - int xp = 0; - for (ITreeBlock treeBlock : treeBlocks.getLogBlocks()) { - Block block = treeBlock.getBlock(); - Material material = block.getType(); - xp += ExperienceConfig.getInstance().getXp(SkillType.WOODCUTTING, material); - } - - ExperienceAPI.addXP(player, "woodcutting", xp, "pve"); - } - - @Override - public boolean shouldApplyDoubleDrops(Player player) { - if (player == null || !player.hasMetadata("mcMMO: Player Data") || SkillType.WOODCUTTING.getDoubleDropsDisabled()) - return false; - - int skillLevel = UserManager.getPlayer(player).getSkillLevel(SkillType.WOODCUTTING); - int activationChance = PerksUtils.handleLuckyPerks(player, SkillType.WOODCUTTING); - return Permissions.secondaryAbilityEnabled(player, SecondaryAbility.WOODCUTTING_DOUBLE_DROPS) - && SkillUtils.activationSuccessful(SecondaryAbility.WOODCUTTING_DOUBLE_DROPS, player, skillLevel, activationChance); - } - - @Override - public boolean isUsingAbility(Player player) { - return AbilityAPI.treeFellerEnabled(player); - } - -} diff --git a/UltimateTimber/Core/src/com/songoda/ultimatetimber/hook/TimberHook.java b/UltimateTimber/Core/src/com/songoda/ultimatetimber/hook/TimberHook.java deleted file mode 100644 index 8a032da..0000000 --- a/UltimateTimber/Core/src/com/songoda/ultimatetimber/hook/TimberHook.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.songoda.ultimatetimber.hook; - -import com.songoda.ultimatetimber.tree.TreeBlockSet; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; - -public interface TimberHook { - - /** - * Applies experience to a player for a fallen tree - * - * @param player The player - * @param treeBlocks The tree blocks that were broken - */ - void applyExperience(Player player, TreeBlockSet treeBlocks); - - /** - * Checks if double drops should be applied - * - * @param player The player - * @return True if double drops should be applied, otherwise false - */ - boolean shouldApplyDoubleDrops(Player player); - - /** - * Checks if a player is using an ability - * - * @param player The player - * @return True if an ability is being used, otherwise false - */ - boolean isUsingAbility(Player player); - -} diff --git a/UltimateTimber/Plugin/pom.xml b/UltimateTimber/Plugin/pom.xml index f8511e9..5ec6913 100644 --- a/UltimateTimber/Plugin/pom.xml +++ b/UltimateTimber/Plugin/pom.xml @@ -101,41 +101,5 @@ ${project.version} compile - - ${project.groupId} - CoreProtect - ${project.version} - compile - - - ${project.groupId} - Jobs - ${project.version} - compile - - - ${project.groupId} - McMMO - ${project.version} - compile - - - ${project.groupId} - McMMOClassic8 - ${project.version} - compile - - - ${project.groupId} - McMMOClassic12 - ${project.version} - compile - - - ${project.groupId} - McMMOClassic13 - ${project.version} - compile - \ No newline at end of file diff --git a/UltimateTimber/Plugin/resources/plugin.yml b/UltimateTimber/Plugin/resources/plugin.yml index a478fa1..b9d9744 100644 --- a/UltimateTimber/Plugin/resources/plugin.yml +++ b/UltimateTimber/Plugin/resources/plugin.yml @@ -3,7 +3,7 @@ version: maven-version-number authors: [Songoda, Esophose] main: com.songoda.ultimatetimber.UltimateTimber api-version: 1.13 -softdepend: [mcMMO, Jobs] +softdepend: [mcMMO, Jobs, CoreProtect] commands: ut: description: Reloads the configuration file diff --git a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/UltimateTimber.java b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/UltimateTimber.java index 344eadf..1d45cf8 100644 --- a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/UltimateTimber.java +++ b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/UltimateTimber.java @@ -4,6 +4,7 @@ import com.songoda.core.SongodaCore; import com.songoda.core.SongodaPlugin; import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.configuration.Config; +import com.songoda.core.hooks.LogManager; import com.songoda.ultimatetimber.adapter.VersionAdapter; import com.songoda.ultimatetimber.adapter.current.CurrentAdapter; import com.songoda.ultimatetimber.adapter.legacy.LegacyAdapter; @@ -28,7 +29,6 @@ public class UltimateTimber extends SongodaPlugin { private VersionAdapter versionAdapter; private ChoppingManager choppingManager; private ConfigurationManager configurationManager; - private HookManager hookManager; private com.songoda.core.commands.CommandManager commandManager; private PlacedBlockManager placedBlockManager; private SaplingManager saplingManager; @@ -51,6 +51,9 @@ public class UltimateTimber extends SongodaPlugin { // Run Songoda Updater SongodaCore.registerPlugin(this, 18, CompatibleMaterial.IRON_AXE); + // Load hooks + LogManager.load(); + // Setup plugin commands this.commandManager = new com.songoda.core.commands.CommandManager(this); this.commandManager.addMainCommand("ut") @@ -62,7 +65,6 @@ public class UltimateTimber extends SongodaPlugin { this.managers = new HashSet<>(); this.choppingManager = this.registerManager(ChoppingManager.class); this.configurationManager = new ConfigurationManager(this); - this.hookManager = this.registerManager(HookManager.class); this.placedBlockManager = this.registerManager(PlacedBlockManager.class); this.saplingManager = this.registerManager(SaplingManager.class); this.treeAnimationManager = this.registerManager(TreeAnimationManager.class); @@ -80,6 +82,10 @@ public class UltimateTimber extends SongodaPlugin { this.disable(); } + @Override + public void onDataLoad() { + } + @Override public void onConfigReload() { this.configurationManager.reload(); @@ -156,15 +162,6 @@ public class UltimateTimber extends SongodaPlugin { return this.configurationManager; } - /** - * Gets the hook manager - * - * @return The HookManager instance - */ - public HookManager getHookManager() { - return this.hookManager; - } - /** * Gets the placed block manager * diff --git a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/HookManager.java b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/HookManager.java deleted file mode 100644 index ae34105..0000000 --- a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/HookManager.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.songoda.ultimatetimber.manager; - -import com.songoda.ultimatetimber.UltimateTimber; -import com.songoda.ultimatetimber.adapter.VersionAdapterType; -import com.songoda.ultimatetimber.hook.CoreProtectHook; -import com.songoda.ultimatetimber.hook.JobsHook; -import com.songoda.ultimatetimber.hook.McMMOClassic12Hook; -import com.songoda.ultimatetimber.hook.McMMOClassic13Hook; -import com.songoda.ultimatetimber.hook.McMMOClassic8Hook; -import com.songoda.ultimatetimber.hook.McMMOHook; -import com.songoda.ultimatetimber.hook.TimberHook; -import com.songoda.ultimatetimber.tree.TreeBlockSet; -import com.songoda.ultimatetimber.utils.NMSUtil; -import java.util.HashSet; -import java.util.Set; -import org.bukkit.Bukkit; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; - -public class HookManager extends Manager { - - private Set hooks; - - public HookManager(UltimateTimber ultimateTimber) { - super(ultimateTimber); - this.hooks = new HashSet<>(); - } - - @Override - public void reload() { - this.hooks.clear(); - - this.tryHook("Jobs", JobsHook.class); - this.tryHook("CoreProtect", CoreProtectHook.class); - - Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { - if (this.plugin.getVersionAdapter().getVersionAdapterType().equals(VersionAdapterType.CURRENT)) { - Plugin mcMMO = Bukkit.getPluginManager().getPlugin("mcMMO"); - if (mcMMO != null) { - String version = mcMMO.getDescription().getVersion(); - if (version.startsWith("2")) { - this.tryHook("mcMMO", McMMOHook.class); - } else { - this.tryHook("mcMMO", McMMOClassic13Hook.class); - } - } - } else { - if (NMSUtil.getVersionNumber() == 12) { - this.tryHook("mcMMO", McMMOClassic12Hook.class); - } else if (NMSUtil.getVersionNumber() == 8) { - this.tryHook("mcMMO", McMMOClassic8Hook.class); - } - } - }); - } - - @Override - public void disable() { - this.hooks.clear(); - } - - /** - * Tries to hook into a compatible plugin - * - * @param pluginName The name of the plugin - * @param hookClass The hook class - */ - private void tryHook(String pluginName, Class hookClass) { - if (!Bukkit.getPluginManager().isPluginEnabled(pluginName)) - return; - - try { - this.hooks.add(hookClass.newInstance()); - Bukkit.getConsoleSender().sendMessage(String.format("Hooks: Hooked into %s!", pluginName)); - } catch (Exception ex) { - Bukkit.getConsoleSender().sendMessage(String.format("Hooks: Unable to hook with %s, the version installed is not supported!", pluginName)); - } - } - - /** - * Applies experience to the loaded hooks - * - * @param player The player to apply experience to - * @param treeBlocks The blocks of the tree that were broken - */ - public void applyExperienceHooks(Player player, TreeBlockSet treeBlocks) { - if (!ConfigurationManager.Setting.HOOKS_APPLY_EXPERIENCE.getBoolean()) - return; - - for (TimberHook hook : this.hooks) - hook.applyExperience(player, treeBlocks); - } - - /** - * Checks if double drops should be applied from the loaded hooks - * - * @param player The player to check - */ - public boolean shouldApplyDoubleDropsHooks(Player player) { - if (!ConfigurationManager.Setting.HOOKS_APPLY_EXTRA_DROPS.getBoolean()) - return false; - - for (TimberHook hook : this.hooks) - if (hook.shouldApplyDoubleDrops(player)) - return true; - return false; - } - - /** - * Checks if a player is using an ability from the loaded hooks - * - * @param player The player to check - */ - public boolean isUsingAbilityHooks(Player player) { - if (!ConfigurationManager.Setting.HOOKS_REQUIRE_ABILITY_ACTIVE.getBoolean() || this.hooks.isEmpty()) - return true; - - for (TimberHook hook : this.hooks) - if (hook.isUsingAbility(player)) - return true; - return false; - } - -} diff --git a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java index 524957e..7ec4df9 100644 --- a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java +++ b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java @@ -1,5 +1,6 @@ package com.songoda.ultimatetimber.manager; +import com.songoda.core.hooks.McMMOHook; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.adapter.IBlockData; import com.songoda.ultimatetimber.adapter.VersionAdapter; @@ -246,7 +247,6 @@ public class TreeDefinitionManager extends Manager { */ public void dropTreeLoot(TreeDefinition treeDefinition, ITreeBlock treeBlock, Player player, boolean hasSilkTouch, boolean isForEntireTree) { VersionAdapter versionAdapter = this.plugin.getVersionAdapter(); - HookManager hookManager = this.plugin.getHookManager(); boolean addToInventory = ConfigurationManager.Setting.ADD_ITEMS_TO_INVENTORY.getBoolean(); boolean hasBonusChance = player.hasPermission("ultimatetimber.bonusloot"); @@ -260,7 +260,7 @@ public class TreeDefinitionManager extends Manager { toTry.addAll(this.globalEntireTreeLoot); } else { if (ConfigurationManager.Setting.APPLY_SILK_TOUCH.getBoolean() && hasSilkTouch) { - if (hookManager.shouldApplyDoubleDropsHooks(player)) + if (McMMOHook.hasWoodcuttingDoubleDrops(player)) lootedItems.addAll(versionAdapter.getBlockDrops(treeDefinition, treeBlock)); lootedItems.addAll(versionAdapter.getBlockDrops(treeDefinition, treeBlock)); } else { @@ -269,7 +269,7 @@ public class TreeDefinitionManager extends Manager { toTry.addAll(treeDefinition.getLogLoot()); toTry.addAll(this.globalLogLoot); if (treeDefinition.shouldDropOriginalLog()) { - if (hookManager.shouldApplyDoubleDropsHooks(player)) + if (McMMOHook.hasWoodcuttingDoubleDrops(player)) lootedItems.addAll(versionAdapter.getBlockDrops(treeDefinition, treeBlock)); lootedItems.addAll(versionAdapter.getBlockDrops(treeDefinition, treeBlock)); } @@ -278,7 +278,7 @@ public class TreeDefinitionManager extends Manager { toTry.addAll(treeDefinition.getLeafLoot()); toTry.addAll(this.globalLeafLoot); if (treeDefinition.shouldDropOriginalLeaf()) { - if (hookManager.shouldApplyDoubleDropsHooks(player)) + if (McMMOHook.hasWoodcuttingDoubleDrops(player)) lootedItems.addAll(versionAdapter.getBlockDrops(treeDefinition, treeBlock)); lootedItems.addAll(versionAdapter.getBlockDrops(treeDefinition, treeBlock)); } @@ -295,13 +295,13 @@ public class TreeDefinitionManager extends Manager { continue; if (treeLoot.hasItem()) { - if (hookManager.shouldApplyDoubleDropsHooks(player)) + if (McMMOHook.hasWoodcuttingDoubleDrops(player)) lootedItems.add(treeLoot.getItem()); lootedItems.add(treeLoot.getItem()); } if (treeLoot.hasCommand()) { - if (hookManager.shouldApplyDoubleDropsHooks(player)) + if (McMMOHook.hasWoodcuttingDoubleDrops(player)) lootedCommands.add(treeLoot.getCommand()); lootedCommands.add(treeLoot.getCommand()); } @@ -359,5 +359,4 @@ public class TreeDefinitionManager extends Manager { double chance = configurationSection.getDouble("chance"); return new TreeLoot(treeBlockType, item, command, chance); } - } diff --git a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java index 69c8f09..365028a 100644 --- a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java +++ b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java @@ -1,12 +1,17 @@ package com.songoda.ultimatetimber.manager; +import com.songoda.core.hooks.JobsHook; +import com.songoda.core.hooks.LogManager; +import com.songoda.core.hooks.McMMOHook; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.adapter.VersionAdapter; import com.songoda.ultimatetimber.events.TreeFallEvent; import com.songoda.ultimatetimber.events.TreeFellEvent; import com.songoda.ultimatetimber.misc.OnlyToppleWhile; import com.songoda.ultimatetimber.tree.DetectedTree; +import com.songoda.ultimatetimber.tree.ITreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockSet; +import com.songoda.ultimatetimber.tree.TreeBlockType; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; @@ -19,6 +24,8 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.inventory.ItemStack; +import java.util.stream.Collectors; + public class TreeFallManager extends Manager implements Listener { public TreeFallManager(UltimateTimber ultimateTimber) { @@ -44,7 +51,6 @@ public class TreeFallManager extends Manager implements Listener { ChoppingManager choppingManager = this.plugin.getChoppingManager(); SaplingManager saplingManager = this.plugin.getSaplingManager(); VersionAdapter versionAdapter = this.plugin.getVersionAdapter(); - HookManager hookManager = this.plugin.getHookManager(); Player player = event.getPlayer(); Block block = event.getBlock(); @@ -85,7 +91,8 @@ public class TreeFallManager extends Manager implements Listener { if (!treeDefinitionManager.isToolValidForAnyTreeDefinition(tool)) isValid = false; - if (!hookManager.isUsingAbilityHooks(player)) + if (ConfigurationManager.Setting.HOOKS_REQUIRE_ABILITY_ACTIVE.getBoolean() + && McMMOHook.isUsingTreeFeller(player)) isValid = false; boolean alwaysReplantSapling = ConfigurationManager.Setting.ALWAYS_REPLANT_SAPLING.getBoolean(); @@ -131,7 +138,15 @@ public class TreeFallManager extends Manager implements Listener { if (!player.getGameMode().equals(GameMode.CREATIVE)) versionAdapter.applyToolDurability(player, toolDamage); - hookManager.applyExperienceHooks(player, detectedTree.getDetectedTreeBlocks()); + McMMOHook.addWoodcutting(player, detectedTree.getDetectedTreeBlocks().getAllTreeBlocks().stream() + .map(ITreeBlock::getBlock).collect(Collectors.toList())); + + for (ITreeBlock treeBlock : detectedTree.getDetectedTreeBlocks().getAllTreeBlocks()) { + if (JobsHook.isEnabled() && treeBlock.getTreeBlockType() == TreeBlockType.LOG) + JobsHook.breakBlock(player, block); + LogManager.logRemoval(player, treeBlock.getBlock()); + } + treeAnimationManager.runAnimation(detectedTree, player); treeDefinitionManager.dropTreeLoot(detectedTree.getTreeDefinition(), detectedTree.getDetectedTreeBlocks().getInitialLogBlock(), player, false, true); diff --git a/pom.xml b/pom.xml index da59f66..514ad22 100644 --- a/pom.xml +++ b/pom.xml @@ -11,12 +11,6 @@ UltimateTimber/Plugin UltimateTimber-Adapter/Current UltimateTimber-Adapter/Legacy - UltimateTimber-Hook/Jobs - UltimateTimber-Hook/McMMO - UltimateTimber-Hook/McMMOClassic13 - UltimateTimber-Hook/McMMOClassic12 - UltimateTimber-Hook/McMMOClassic8 - UltimateTimber-Hook/CoreProtect From 9feb8752a7a920565b64d19b8ad21f491b6474f6 Mon Sep 17 00:00:00 2001 From: MattAKAFred Date: Mon, 29 Jun 2020 17:05:17 +0000 Subject: [PATCH 3/4] Adds PlayerItemBreakEvent to tool breaking, fixes issue preventing plugins like AutomaticInventory from recognizing tool breaks. Tested working in 1.16.1. Fix should also work in Legacy Adapter, though that is untested and thus not part of this PR (would also require import org.bukkit.Bukkit in legacy). --- .../CurrentAdapter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/UltimateTimber-Adapter/Current/src/com.songoda.ultimatetimber.adapter.current/CurrentAdapter.java b/UltimateTimber-Adapter/Current/src/com.songoda.ultimatetimber.adapter.current/CurrentAdapter.java index 3620755..0066175 100644 --- a/UltimateTimber-Adapter/Current/src/com.songoda.ultimatetimber.adapter.current/CurrentAdapter.java +++ b/UltimateTimber-Adapter/Current/src/com.songoda.ultimatetimber.adapter.current/CurrentAdapter.java @@ -21,6 +21,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.Damageable; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.event.player.PlayerItemBreakEvent; import java.util.Collection; import java.util.HashSet; @@ -79,8 +80,11 @@ public class CurrentAdapter implements VersionAdapter { damageable.setDamage(damageable.getDamage() + actualDamage); tool.setItemMeta((ItemMeta) damageable); - if (!this.hasEnoughDurability(tool, 1)) + if (!this.hasEnoughDurability(tool, 1)) { + PlayerItemBreakEvent breakEvent = new PlayerItemBreakEvent(player, tool); + Bukkit.getServer().getPluginManager().callEvent(breakEvent); this.removeItemInHand(player); + } } @Override From 23e7643eb9c6f52689e38200314de83867a95f72 Mon Sep 17 00:00:00 2001 From: Brianna Date: Fri, 28 Aug 2020 18:09:33 -0500 Subject: [PATCH 4/4] version 2.0.9 --- UltimateTimber-Adapter/Current/pom.xml | 2 +- UltimateTimber-Adapter/Legacy/pom.xml | 2 +- UltimateTimber/Core/pom.xml | 2 +- UltimateTimber/Plugin/pom.xml | 2 +- pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/UltimateTimber-Adapter/Current/pom.xml b/UltimateTimber-Adapter/Current/pom.xml index f8a9fde..5a0ad6c 100644 --- a/UltimateTimber-Adapter/Current/pom.xml +++ b/UltimateTimber-Adapter/Current/pom.xml @@ -3,7 +3,7 @@ com.songoda UltimateTimber - 2.0.8 + 2.0.9 ../../ diff --git a/UltimateTimber-Adapter/Legacy/pom.xml b/UltimateTimber-Adapter/Legacy/pom.xml index c5b78e2..33e26ee 100644 --- a/UltimateTimber-Adapter/Legacy/pom.xml +++ b/UltimateTimber-Adapter/Legacy/pom.xml @@ -3,7 +3,7 @@ com.songoda UltimateTimber - 2.0.8 + 2.0.9 ../../ diff --git a/UltimateTimber/Core/pom.xml b/UltimateTimber/Core/pom.xml index 08a913e..961f5cc 100644 --- a/UltimateTimber/Core/pom.xml +++ b/UltimateTimber/Core/pom.xml @@ -3,7 +3,7 @@ com.songoda UltimateTimber - 2.0.8 + 2.0.9 ../../ diff --git a/UltimateTimber/Plugin/pom.xml b/UltimateTimber/Plugin/pom.xml index 5ec6913..8ccc59e 100644 --- a/UltimateTimber/Plugin/pom.xml +++ b/UltimateTimber/Plugin/pom.xml @@ -3,7 +3,7 @@ com.songoda UltimateTimber - 2.0.8 + 2.0.9 ../../ diff --git a/pom.xml b/pom.xml index 514ad22..a27c5a1 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ com.songoda UltimateTimber - 2.0.8 + 2.0.9 4.0.0 pom