diff --git a/pom.xml b/pom.xml index 0abba74..fe86e27 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ - com.songoda.core + com.craftaro.core com.songoda.ultimatetimber.core @@ -68,6 +68,14 @@ LICENSE.** + + + com.craftaro:CraftaroCore + false + + **/nms/v*/** + + @@ -85,8 +93,8 @@ - public - https://repo.songoda.com/repository/public/ + craftaro-minecraft-plugins + https://repo.craftaro.com/repository/minecraft-plugins/ @@ -97,9 +105,9 @@ - com.songoda - SongodaCore - 2.6.19 + com.craftaro + CraftaroCore + 3.0.0-SNAPSHOT compile diff --git a/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java b/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java index 04abf32..ff9d3e1 100644 --- a/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java +++ b/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java @@ -1,11 +1,11 @@ package com.songoda.ultimatetimber; -import com.songoda.core.SongodaCore; -import com.songoda.core.SongodaPlugin; -import com.songoda.core.commands.CommandManager; -import com.songoda.core.compatibility.CompatibleMaterial; -import com.songoda.core.configuration.Config; -import com.songoda.core.hooks.LogManager; +import com.craftaro.core.SongodaCore; +import com.craftaro.core.SongodaPlugin; +import com.craftaro.core.commands.CommandManager; +import com.craftaro.core.configuration.Config; +import com.craftaro.core.hooks.LogManager; +import com.craftaro.core.third_party.com.cryptomorin.xseries.XMaterial; import com.songoda.ultimatetimber.commands.CommandGiveAxe; import com.songoda.ultimatetimber.commands.CommandReload; import com.songoda.ultimatetimber.commands.CommandToggle; @@ -51,7 +51,7 @@ public class UltimateTimber extends SongodaPlugin { @Override public void onPluginEnable() { // Run Songoda Updater - SongodaCore.registerPlugin(this, 18, CompatibleMaterial.IRON_AXE); + SongodaCore.registerPlugin(this, 18, XMaterial.IRON_AXE); // Load hooks LogManager.load(); diff --git a/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimation.java b/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimation.java index 83d52ed..695b5ea 100644 --- a/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimation.java +++ b/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimation.java @@ -1,7 +1,8 @@ package com.songoda.ultimatetimber.animation; -import com.songoda.core.compatibility.CompatibleHand; -import com.songoda.core.compatibility.CompatibleMaterial; +import com.craftaro.core.compatibility.CompatibleHand; +import com.craftaro.core.compatibility.CompatibleMaterial; +import com.craftaro.core.third_party.com.cryptomorin.xseries.XMaterial; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.tree.DetectedTree; import com.songoda.ultimatetimber.tree.FallingTreeBlock; @@ -97,9 +98,8 @@ public abstract class TreeAnimation { protected FallingTreeBlock convertToFallingBlock(TreeBlock treeBlock) { Location location = treeBlock.getLocation().clone().add(0.5, 0, 0.5); Block block = treeBlock.getBlock(); - CompatibleMaterial material = CompatibleMaterial.getMaterial(block); - - if (material.isAir()) { + XMaterial material = CompatibleMaterial.getMaterial(block.getType()).get(); + if (CompatibleMaterial.isAir(material)) { this.replaceBlock(treeBlock); return null; } diff --git a/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimationCrumble.java b/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimationCrumble.java index b40a2b1..ce9d2bc 100644 --- a/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimationCrumble.java +++ b/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimationCrumble.java @@ -1,6 +1,6 @@ package com.songoda.ultimatetimber.animation; -import com.songoda.core.compatibility.CompatibleMaterial; +import com.craftaro.core.compatibility.CompatibleMaterial; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.manager.ConfigurationManager; import com.songoda.ultimatetimber.tree.DetectedTree; @@ -64,11 +64,11 @@ public class TreeAnimationCrumble extends TreeAnimation { for (int i = 0; i < 3 && !partition.isEmpty(); i++) { ITreeBlock treeBlock = partition.remove(0); if (treeBlock.getTreeBlockType() == TreeBlockType.LOG) { - if (td.getLogMaterial().stream().noneMatch(x -> x == CompatibleMaterial.getMaterial(treeBlock.getBlock()))) { + if (td.getLogMaterial().stream().noneMatch(x -> x == CompatibleMaterial.getMaterial(treeBlock.getBlock().getType()).orElse(null))) { continue; } } else if (treeBlock.getTreeBlockType() == TreeBlockType.LEAF) { - if (td.getLeafMaterial().stream().noneMatch(x -> x == CompatibleMaterial.getMaterial(treeBlock.getBlock()))) { + if (td.getLeafMaterial().stream().noneMatch(x -> x == CompatibleMaterial.getMaterial(treeBlock.getBlock().getType()).orElse(null))) { continue; } } diff --git a/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimationDisintegrate.java b/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimationDisintegrate.java index d196094..2c746c5 100644 --- a/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimationDisintegrate.java +++ b/src/main/java/com/songoda/ultimatetimber/animation/TreeAnimationDisintegrate.java @@ -1,6 +1,6 @@ package com.songoda.ultimatetimber.animation; -import com.songoda.core.compatibility.CompatibleMaterial; +import com.craftaro.core.compatibility.CompatibleMaterial; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.manager.ConfigurationManager; import com.songoda.ultimatetimber.manager.TreeDefinitionManager; @@ -76,11 +76,11 @@ public class TreeAnimationDisintegrate extends TreeAnimation { for (ITreeBlock treeBlock : toDestroy) { if (treeBlock.getTreeBlockType() == TreeBlockType.LOG) { - if (td.getLogMaterial().stream().noneMatch(x -> x == CompatibleMaterial.getMaterial(treeBlock.getBlock()))) { + if (td.getLogMaterial().stream().noneMatch(x -> x == CompatibleMaterial.getMaterial(treeBlock.getBlock().getType()).orElse(null))) { continue; } } else if (treeBlock.getTreeBlockType() == TreeBlockType.LEAF) { - if (td.getLeafMaterial().stream().noneMatch(x -> x == CompatibleMaterial.getMaterial(treeBlock.getBlock()))) { + if (td.getLeafMaterial().stream().noneMatch(x -> x == CompatibleMaterial.getMaterial(treeBlock.getBlock().getType()).orElse(null))) { continue; } } diff --git a/src/main/java/com/songoda/ultimatetimber/commands/CommandGiveAxe.java b/src/main/java/com/songoda/ultimatetimber/commands/CommandGiveAxe.java index 1169faf..f11fa07 100644 --- a/src/main/java/com/songoda/ultimatetimber/commands/CommandGiveAxe.java +++ b/src/main/java/com/songoda/ultimatetimber/commands/CommandGiveAxe.java @@ -1,7 +1,7 @@ package com.songoda.ultimatetimber.commands; -import com.songoda.core.commands.AbstractCommand; -import com.songoda.core.utils.PlayerUtils; +import com.craftaro.core.commands.AbstractCommand; +import com.craftaro.core.utils.PlayerUtils; import com.songoda.ultimatetimber.UltimateTimber; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; diff --git a/src/main/java/com/songoda/ultimatetimber/commands/CommandReload.java b/src/main/java/com/songoda/ultimatetimber/commands/CommandReload.java index cda4971..842606b 100644 --- a/src/main/java/com/songoda/ultimatetimber/commands/CommandReload.java +++ b/src/main/java/com/songoda/ultimatetimber/commands/CommandReload.java @@ -1,6 +1,6 @@ package com.songoda.ultimatetimber.commands; -import com.songoda.core.commands.AbstractCommand; +import com.craftaro.core.commands.AbstractCommand; import com.songoda.ultimatetimber.UltimateTimber; import org.bukkit.command.CommandSender; diff --git a/src/main/java/com/songoda/ultimatetimber/commands/CommandToggle.java b/src/main/java/com/songoda/ultimatetimber/commands/CommandToggle.java index db98209..03202ad 100644 --- a/src/main/java/com/songoda/ultimatetimber/commands/CommandToggle.java +++ b/src/main/java/com/songoda/ultimatetimber/commands/CommandToggle.java @@ -1,6 +1,6 @@ package com.songoda.ultimatetimber.commands; -import com.songoda.core.commands.AbstractCommand; +import com.craftaro.core.commands.AbstractCommand; import com.songoda.ultimatetimber.UltimateTimber; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/src/main/java/com/songoda/ultimatetimber/manager/PlacedBlockManager.java b/src/main/java/com/songoda/ultimatetimber/manager/PlacedBlockManager.java index bf12c02..d653893 100644 --- a/src/main/java/com/songoda/ultimatetimber/manager/PlacedBlockManager.java +++ b/src/main/java/com/songoda/ultimatetimber/manager/PlacedBlockManager.java @@ -1,6 +1,6 @@ package com.songoda.ultimatetimber.manager; -import com.songoda.core.compatibility.CompatibleMaterial; +import com.craftaro.core.compatibility.CompatibleMaterial; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.events.TreeFellEvent; import com.songoda.ultimatetimber.tree.ITreeBlock; @@ -57,7 +57,7 @@ public class PlacedBlockManager extends Manager implements Listener { } // Ignore stripping logs - if (event.getBlockPlaced().getType().name().contains("STRIPPED") && !CompatibleMaterial.getMaterial(event.getBlockReplacedState().getType()).isAir()) { + if (event.getBlockPlaced().getType().name().contains("STRIPPED") && !CompatibleMaterial.isAir(CompatibleMaterial.getMaterial(event.getBlockReplacedState().getType()).get())) { return; } diff --git a/src/main/java/com/songoda/ultimatetimber/manager/SaplingManager.java b/src/main/java/com/songoda/ultimatetimber/manager/SaplingManager.java index 7d264e7..35f467b 100644 --- a/src/main/java/com/songoda/ultimatetimber/manager/SaplingManager.java +++ b/src/main/java/com/songoda/ultimatetimber/manager/SaplingManager.java @@ -1,6 +1,8 @@ package com.songoda.ultimatetimber.manager; -import com.songoda.core.compatibility.CompatibleMaterial; +import com.craftaro.core.compatibility.CompatibleMaterial; +import com.craftaro.core.third_party.com.cryptomorin.xseries.XBlock; +import com.craftaro.core.third_party.com.cryptomorin.xseries.XMaterial; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.tree.ITreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockType; @@ -61,7 +63,7 @@ public class SaplingManager extends Manager { * @param treeBlock The ITreeBlock to replant for */ public void replantSaplingWithChance(TreeDefinition treeDefinition, ITreeBlock treeBlock) { - if (!ConfigurationManager.Setting.FALLING_BLOCKS_REPLANT_SAPLINGS.getBoolean() || !CompatibleMaterial.getMaterial(treeBlock.getLocation().getBlock()).isAir()) { + if (!ConfigurationManager.Setting.FALLING_BLOCKS_REPLANT_SAPLINGS.getBoolean() || !CompatibleMaterial.isAir(CompatibleMaterial.getMaterial(treeBlock.getLocation().getBlock().getType()).get())) { return; } @@ -85,8 +87,8 @@ public class SaplingManager extends Manager { Block block = treeBlock.getLocation().getBlock(); Block blockBelow = block.getRelative(BlockFace.DOWN); boolean isValidSoil = false; - for (CompatibleMaterial soilMaterial : treeDefinitionManager.getPlantableSoilMaterial(treeDefinition)) { - if (soilMaterial == CompatibleMaterial.getMaterial(blockBelow)) { + for (XMaterial soilMaterial : treeDefinitionManager.getPlantableSoilMaterial(treeDefinition)) { + if (soilMaterial == CompatibleMaterial.getMaterial(blockBelow.getType()).orElse(null)) { isValidSoil = true; break; } @@ -96,8 +98,8 @@ public class SaplingManager extends Manager { return; } - CompatibleMaterial material = treeDefinition.getSaplingMaterial(); - material.applyToBlock(block); + XMaterial material = treeDefinition.getSaplingMaterial(); + XBlock.setType(block, material); int cooldown = ConfigurationManager.Setting.REPLANT_SAPLINGS_COOLDOWN.getInt(); if (cooldown != 0) { diff --git a/src/main/java/com/songoda/ultimatetimber/manager/TreeAnimationManager.java b/src/main/java/com/songoda/ultimatetimber/manager/TreeAnimationManager.java index e92906f..4153d61 100644 --- a/src/main/java/com/songoda/ultimatetimber/manager/TreeAnimationManager.java +++ b/src/main/java/com/songoda/ultimatetimber/manager/TreeAnimationManager.java @@ -1,7 +1,7 @@ package com.songoda.ultimatetimber.manager; -import com.songoda.core.compatibility.CompatibleMaterial; -import com.songoda.core.compatibility.ServerVersion; +import com.craftaro.core.compatibility.CompatibleMaterial; +import com.craftaro.core.compatibility.ServerVersion; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.animation.TreeAnimation; import com.songoda.ultimatetimber.animation.TreeAnimationCrumble; @@ -173,7 +173,7 @@ public class TreeAnimationManager extends Manager implements Listener, Runnable Block block = treeBlock.getLocation().subtract(0, 1, 0).getBlock(); if (ConfigurationManager.Setting.FRAGILE_BLOCKS.getStringList().contains(block.getType().toString())) { - block.getWorld().dropItemNaturally(block.getLocation(), CompatibleMaterial.getMaterial(block).getItem()); + block.getWorld().dropItemNaturally(block.getLocation(), CompatibleMaterial.getMaterial(block.getType()).get().parseItem()); block.breakNaturally(); } diff --git a/src/main/java/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java b/src/main/java/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java index 66a60fe..6c7e401 100644 --- a/src/main/java/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java +++ b/src/main/java/com/songoda/ultimatetimber/manager/TreeDefinitionManager.java @@ -1,11 +1,12 @@ package com.songoda.ultimatetimber.manager; +import com.craftaro.core.compatibility.CompatibleMaterial; +import com.craftaro.core.compatibility.ServerVersion; +import com.craftaro.core.hooks.McMMOHook; +import com.craftaro.core.third_party.com.cryptomorin.xseries.XMaterial; +import com.craftaro.core.third_party.de.tr7zw.nbtapi.NBTItem; +import com.craftaro.core.utils.TextUtils; import com.google.common.base.Strings; -import com.songoda.core.compatibility.CompatibleMaterial; -import com.songoda.core.compatibility.ServerVersion; -import com.songoda.core.hooks.McMMOHook; -import com.songoda.core.third_party.de.tr7zw.nbtapi.NBTItem; -import com.songoda.core.utils.TextUtils; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.tree.ITreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockType; @@ -26,6 +27,7 @@ import org.bukkit.inventory.meta.ItemMeta; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Optional; import java.util.Random; import java.util.Set; import java.util.stream.Collectors; @@ -33,7 +35,7 @@ import java.util.stream.Collectors; public class TreeDefinitionManager extends Manager { private final Random random; private final Set treeDefinitions; - private final Set globalPlantableSoil; + private final Set globalPlantableSoil; private final Set globalLogLoot, globalLeafLoot, globalEntireTreeLoot; private final Set globalRequiredTools; @@ -70,10 +72,10 @@ public class TreeDefinitionManager extends Manager { for (String key : treeSection.getKeys(false)) { ConfigurationSection tree = treeSection.getConfigurationSection(key); - Set logMaterials = new HashSet<>(); - Set leafMaterials = new HashSet<>(); - CompatibleMaterial saplingMaterial; - Set plantableSoilMaterial = new HashSet<>(); + Set logMaterials = new HashSet<>(); + Set leafMaterials = new HashSet<>(); + XMaterial saplingMaterial; + Set plantableSoilMaterial = new HashSet<>(); double maxLogDistanceFromTrunk; int maxLeafDistanceFromLog; boolean detectLeavesDiagonally; @@ -86,29 +88,29 @@ public class TreeDefinitionManager extends Manager { boolean requiredAxe; for (String materialString : tree.getStringList("logs")) { - CompatibleMaterial material = CompatibleMaterial.getMaterial(materialString); - if (material == null || material.getMaterial() == null) { + Optional material = CompatibleMaterial.getMaterial(materialString); + if (!material.isPresent() || !material.get().isSupported()) { continue top; } - logMaterials.add(material); + logMaterials.add(material.get()); } for (String materialString : tree.getStringList("leaves")) { - CompatibleMaterial material = CompatibleMaterial.getMaterial(materialString); - if (material == null || material.getMaterial() == null) { + Optional material = CompatibleMaterial.getMaterial(materialString); + if (!material.isPresent() || !material.get().isSupported()) { continue top; } - leafMaterials.add(material); + leafMaterials.add(material.get()); } - saplingMaterial = CompatibleMaterial.getMaterial(tree.getString("sapling")); + saplingMaterial = CompatibleMaterial.getMaterial(tree.getString("sapling")).get(); for (String materialString : tree.getStringList("plantable-soil")) { - CompatibleMaterial material = CompatibleMaterial.getMaterial(materialString); - if (material == null || material.getMaterial() == null) { + Optional material = CompatibleMaterial.getMaterial(materialString); + if (!material.isPresent() || !material.get().isSupported()) { continue top; } - plantableSoilMaterial.add(material); + plantableSoilMaterial.add(material.get()); } maxLogDistanceFromTrunk = tree.getDouble("max-log-distance-from-trunk"); @@ -139,11 +141,11 @@ public class TreeDefinitionManager extends Manager { } for (String itemStackString : tree.getStringList("required-tools")) { - CompatibleMaterial material = CompatibleMaterial.getMaterial(itemStackString); - if (material == null) { + Optional material = CompatibleMaterial.getMaterial(itemStackString); + if (!material.isPresent()) { continue top; } - requiredTools.add(material.getItem()); + requiredTools.add(material.get().parseItem()); } requiredAxe = tree.getBoolean("required-axe", false); @@ -154,7 +156,7 @@ public class TreeDefinitionManager extends Manager { // Load global plantable soil for (String material : config.getStringList("global-plantable-soil")) { - this.globalPlantableSoil.add(CompatibleMaterial.getMaterial(material)); + this.globalPlantableSoil.add(CompatibleMaterial.getMaterial(material).get()); } // Load global log drops @@ -183,11 +185,11 @@ public class TreeDefinitionManager extends Manager { // Load global tools for (String itemStackString : config.getStringList("global-required-tools")) { - ItemStack tool = CompatibleMaterial.getMaterial(itemStackString).getItem(); - if (tool == null) { + Optional tool = CompatibleMaterial.getMaterial(itemStackString); + if (!tool.isPresent()) { continue; } - this.globalRequiredTools.add(tool); + this.globalRequiredTools.add(tool.get().parseItem()); } this.globalAxeRequired = config.getBoolean("global-required-axe", false); @@ -210,14 +212,13 @@ public class TreeDefinitionManager extends Manager { return; } - CompatibleMaterial material = CompatibleMaterial.getMaterial(typeString); - - if (material == null) { + Optional material = CompatibleMaterial.getMaterial(typeString); + if (!material.isPresent()) { this.plugin.getLogger().warning("Material " + typeString + " is invalid."); return; } - ItemStack item = material.getItem(); + ItemStack item = material.get().parseItem(); // Add display name and lore String displayName = TextUtils.formatText(config.getString("required-axe.name")); @@ -310,8 +311,8 @@ public class TreeDefinitionManager extends Manager { switch (treeBlockType) { case LOG: for (TreeDefinition treeDefinition : possibleTreeDefinitions) { - for (CompatibleMaterial material : treeDefinition.getLogMaterial()) { - if (material == CompatibleMaterial.getMaterial(block)) { + for (XMaterial material : treeDefinition.getLogMaterial()) { + if (material == CompatibleMaterial.getMaterial(block.getType()).orElse(null)) { matchingTreeDefinitions.add(treeDefinition); break; } @@ -320,8 +321,8 @@ public class TreeDefinitionManager extends Manager { break; case LEAF: for (TreeDefinition treeDefinition : possibleTreeDefinitions) { - for (CompatibleMaterial material : treeDefinition.getLeafMaterial()) { - if (material == CompatibleMaterial.getMaterial(block)) { + for (XMaterial material : treeDefinition.getLeafMaterial()) { + if (material == CompatibleMaterial.getMaterial(block.getType()).orElse(null)) { matchingTreeDefinitions.add(treeDefinition); break; } @@ -354,14 +355,14 @@ public class TreeDefinitionManager extends Manager { for (TreeDefinition treeDefinition : this.treeDefinitions) { for (ItemStack requiredTool : treeDefinition.getRequiredTools()) { - if (requiredTool.getType() == tool.getType()) { + if (tool != null && requiredTool.getType() == tool.getType()) { return true; } } } for (ItemStack requiredTool : this.globalRequiredTools) { - if (requiredTool.getType() == tool.getType()) { + if (tool != null && requiredTool.getType() == tool.getType()) { return true; } } @@ -516,8 +517,8 @@ public class TreeDefinitionManager extends Manager { * @param treeDefinition The TreeDefinition * @return A Set of IBlockData of plantable soil */ - public Set getPlantableSoilMaterial(TreeDefinition treeDefinition) { - Set plantableSoilBlockData = new HashSet<>(); + public Set getPlantableSoilMaterial(TreeDefinition treeDefinition) { + Set plantableSoilBlockData = new HashSet<>(); plantableSoilBlockData.addAll(treeDefinition.getPlantableSoilMaterial()); plantableSoilBlockData.addAll(this.globalPlantableSoil); return plantableSoilBlockData; @@ -532,9 +533,9 @@ public class TreeDefinitionManager extends Manager { */ private TreeLoot getTreeLootEntry(TreeBlockType treeBlockType, ConfigurationSection configurationSection) { String material = configurationSection.getString("material"); - CompatibleMaterial compatibleMaterial = material == null ? null : CompatibleMaterial.getMaterial(material); + Optional compatibleMaterial = material == null ? Optional.empty() : CompatibleMaterial.getMaterial(material); - ItemStack item = compatibleMaterial == null ? null : compatibleMaterial.getItem(); + ItemStack item = compatibleMaterial.map(XMaterial::parseItem).orElse(null); String command = configurationSection.getString("command"); double chance = configurationSection.getDouble("chance"); return new TreeLoot(treeBlockType, item, command, chance); diff --git a/src/main/java/com/songoda/ultimatetimber/manager/TreeDetectionManager.java b/src/main/java/com/songoda/ultimatetimber/manager/TreeDetectionManager.java index 6aa4221..bab304a 100644 --- a/src/main/java/com/songoda/ultimatetimber/manager/TreeDetectionManager.java +++ b/src/main/java/com/songoda/ultimatetimber/manager/TreeDetectionManager.java @@ -1,6 +1,7 @@ package com.songoda.ultimatetimber.manager; -import com.songoda.core.compatibility.CompatibleMaterial; +import com.craftaro.core.compatibility.CompatibleMaterial; +import com.craftaro.core.third_party.com.cryptomorin.xseries.XMaterial; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.tree.DetectedTree; import com.songoda.ultimatetimber.tree.ITreeBlock; @@ -148,8 +149,8 @@ public class TreeDetectionManager extends Manager { Block blockBelow = block.getRelative(BlockFace.DOWN); boolean blockBelowIsLog = this.isValidLogType(possibleTreeDefinitions, null, blockBelow); boolean blockBelowIsSoil = false; - for (CompatibleMaterial material : treeDefinitionManager.getPlantableSoilMaterial(actualTreeDefinition)) { - if (material == CompatibleMaterial.getMaterial(blockBelow)) { + for (XMaterial material : treeDefinitionManager.getPlantableSoilMaterial(actualTreeDefinition)) { + if (material == CompatibleMaterial.getMaterial(blockBelow.getType()).orElse(null)) { blockBelowIsSoil = true; break; } @@ -248,8 +249,8 @@ public class TreeDetectionManager extends Manager { // Check if it matches the tree definition boolean isCorrectType = false; for (TreeDefinition treeDefinition : treeDefinitions) { - for (CompatibleMaterial material : treeDefinition.getLogMaterial()) { - if (material == CompatibleMaterial.getMaterial(block)) { + for (XMaterial material : treeDefinition.getLogMaterial()) { + if (material == CompatibleMaterial.getMaterial(block.getType()).orElse(null)) { isCorrectType = true; break; } @@ -299,8 +300,8 @@ public class TreeDetectionManager extends Manager { // Check if it matches the tree definition boolean isCorrectType = false; for (TreeDefinition treeDefinition : treeDefinitions) { - for (CompatibleMaterial material : treeDefinition.getLeafMaterial()) { - if (material == CompatibleMaterial.getMaterial(block)) { + for (XMaterial material : treeDefinition.getLeafMaterial()) { + if (material == CompatibleMaterial.getMaterial(block.getType()).orElse(null)) { isCorrectType = true; break; } diff --git a/src/main/java/com/songoda/ultimatetimber/manager/TreeFallManager.java b/src/main/java/com/songoda/ultimatetimber/manager/TreeFallManager.java index f38ea3b..db3c9dc 100644 --- a/src/main/java/com/songoda/ultimatetimber/manager/TreeFallManager.java +++ b/src/main/java/com/songoda/ultimatetimber/manager/TreeFallManager.java @@ -1,11 +1,11 @@ package com.songoda.ultimatetimber.manager; -import com.songoda.core.compatibility.CompatibleHand; -import com.songoda.core.hooks.JobsHook; -import com.songoda.core.hooks.LogManager; -import com.songoda.core.hooks.McMMOHook; -import com.songoda.core.utils.ItemUtils; -import com.songoda.core.world.SItemStack; +import com.craftaro.core.compatibility.CompatibleHand; +import com.craftaro.core.hooks.JobsHook; +import com.craftaro.core.hooks.LogManager; +import com.craftaro.core.hooks.McMMOHook; +import com.craftaro.core.utils.ItemUtils; +import com.craftaro.core.world.SItemStack; import com.songoda.ultimatetimber.UltimateTimber; import com.songoda.ultimatetimber.events.TreeFallEvent; import com.songoda.ultimatetimber.events.TreeFellEvent; diff --git a/src/main/java/com/songoda/ultimatetimber/tree/TreeDefinition.java b/src/main/java/com/songoda/ultimatetimber/tree/TreeDefinition.java index 7938df0..38b855e 100644 --- a/src/main/java/com/songoda/ultimatetimber/tree/TreeDefinition.java +++ b/src/main/java/com/songoda/ultimatetimber/tree/TreeDefinition.java @@ -1,6 +1,6 @@ package com.songoda.ultimatetimber.tree; -import com.songoda.core.compatibility.CompatibleMaterial; +import com.craftaro.core.third_party.com.cryptomorin.xseries.XMaterial; import org.bukkit.inventory.ItemStack; import java.util.Collections; @@ -8,8 +8,8 @@ import java.util.Set; public class TreeDefinition { private final String key; - private final Set logMaterial, leafMaterial, plantableSoilMaterial; - private final CompatibleMaterial saplingMaterial; + private final Set logMaterial, leafMaterial, plantableSoilMaterial; + private final XMaterial saplingMaterial; private final double maxLogDistanceFromTrunk; private final int maxLeafDistanceFromLog; private final boolean detectLeavesDiagonally; @@ -18,8 +18,8 @@ public class TreeDefinition { private final Set requiredTools; private final boolean requiredAxe; - public TreeDefinition(String key, Set logMaterial, Set leafMaterial, CompatibleMaterial saplingMaterial, - Set plantableSoilMaterial, double maxLogDistanceFromTrunk, int maxLeafDistanceFromLog, + public TreeDefinition(String key, Set logMaterial, Set leafMaterial, XMaterial saplingMaterial, + Set plantableSoilMaterial, double maxLogDistanceFromTrunk, int maxLeafDistanceFromLog, boolean detectLeavesDiagonally, boolean dropOriginalLog, boolean dropOriginalLeaf, Set logLoot, Set leafLoot, Set entireTreeLoot, Set requiredTools, boolean requiredAxe) { this.key = key; @@ -53,7 +53,7 @@ public class TreeDefinition { * * @return A Set of CompatibleMaterial */ - public Set getLogMaterial() { + public Set getLogMaterial() { return Collections.unmodifiableSet(this.logMaterial); } @@ -62,7 +62,7 @@ public class TreeDefinition { * * @return A Set of CompatibleMaterial */ - public Set getLeafMaterial() { + public Set getLeafMaterial() { return Collections.unmodifiableSet(this.leafMaterial); } @@ -71,7 +71,7 @@ public class TreeDefinition { * * @return An CompatibleMaterial instance for the sapling */ - public CompatibleMaterial getSaplingMaterial() { + public XMaterial getSaplingMaterial() { return this.saplingMaterial; } @@ -80,7 +80,7 @@ public class TreeDefinition { * * @return A Set of CompatibleMaterial */ - public Set getPlantableSoilMaterial() { + public Set getPlantableSoilMaterial() { return Collections.unmodifiableSet(this.plantableSoilMaterial); } diff --git a/src/main/java/com/songoda/ultimatetimber/utils/BlockUtils.java b/src/main/java/com/songoda/ultimatetimber/utils/BlockUtils.java index 22d2aab..53a92df 100644 --- a/src/main/java/com/songoda/ultimatetimber/utils/BlockUtils.java +++ b/src/main/java/com/songoda/ultimatetimber/utils/BlockUtils.java @@ -1,7 +1,8 @@ package com.songoda.ultimatetimber.utils; -import com.songoda.core.compatibility.CompatibleMaterial; -import com.songoda.core.compatibility.ServerVersion; +import com.craftaro.core.compatibility.CompatibleMaterial; +import com.craftaro.core.compatibility.ServerVersion; +import com.craftaro.core.third_party.com.cryptomorin.xseries.XMaterial; import com.songoda.ultimatetimber.tree.ITreeBlock; import org.bukkit.Location; import org.bukkit.block.Block; @@ -10,6 +11,7 @@ import org.bukkit.inventory.ItemStack; import java.util.Collection; import java.util.HashSet; +import java.util.Optional; import java.util.Set; public class BlockUtils { @@ -17,26 +19,29 @@ public class BlockUtils { Set drops = new HashSet<>(); if (treeBlock.getBlock() instanceof Block) { Block block = (Block) treeBlock.getBlock(); - CompatibleMaterial material = CompatibleMaterial.getMaterial(block); - if (material.isAir()) + Optional material = CompatibleMaterial.getMaterial(block.getType()); + if (!material.isPresent() || CompatibleMaterial.isAir(material.get())) { return drops; - drops.add(CompatibleMaterial.getMaterial(block).getItem()); + } + drops.add(material.get().parseItem()); } else if (treeBlock.getBlock() instanceof FallingBlock) { - CompatibleMaterial material = CompatibleMaterial.getMaterial((FallingBlock) treeBlock.getBlock()); - if (material == null) + Optional material = CompatibleMaterial.getMaterial(((FallingBlock) treeBlock.getBlock()).getBlockData().getMaterial()); + if (!material.isPresent()) { return drops; - drops.add(material.getItem()); + } + drops.add(material.get().parseItem()); } return drops; } public static void toggleGravityFallingBlock(FallingBlock fallingBlock, boolean applyGravity) { - if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_9)) + if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_9)) { fallingBlock.setGravity(applyGravity); + } } - public static FallingBlock spawnFallingBlock(Location location, CompatibleMaterial material) { - return location.getWorld().spawnFallingBlock(location, material.getMaterial(), material.getData()); + public static FallingBlock spawnFallingBlock(Location location, XMaterial material) { + return location.getWorld().spawnFallingBlock(location, material.parseMaterial(), material.getData()); } public static void configureFallingBlock(FallingBlock fallingBlock) { diff --git a/src/main/java/com/songoda/ultimatetimber/utils/ParticleUtils.java b/src/main/java/com/songoda/ultimatetimber/utils/ParticleUtils.java index 87ae3ae..a31a91c 100644 --- a/src/main/java/com/songoda/ultimatetimber/utils/ParticleUtils.java +++ b/src/main/java/com/songoda/ultimatetimber/utils/ParticleUtils.java @@ -1,6 +1,6 @@ package com.songoda.ultimatetimber.utils; -import com.songoda.core.compatibility.ServerVersion; +import com.craftaro.core.compatibility.ServerVersion; import com.songoda.ultimatetimber.tree.ITreeBlock; import org.bukkit.Effect; import org.bukkit.Location; diff --git a/src/main/java/com/songoda/ultimatetimber/utils/SoundUtils.java b/src/main/java/com/songoda/ultimatetimber/utils/SoundUtils.java index a0d2293..3c2daaa 100644 --- a/src/main/java/com/songoda/ultimatetimber/utils/SoundUtils.java +++ b/src/main/java/com/songoda/ultimatetimber/utils/SoundUtils.java @@ -1,6 +1,6 @@ package com.songoda.ultimatetimber.utils; -import com.songoda.core.compatibility.CompatibleSound; +import com.craftaro.core.third_party.com.cryptomorin.xseries.XSound; import com.songoda.ultimatetimber.tree.ITreeBlock; import com.songoda.ultimatetimber.tree.TreeBlockType; import org.bukkit.Location; @@ -11,7 +11,7 @@ public class SoundUtils { if (location.getWorld() == null) { return; } - CompatibleSound.BLOCK_CHEST_OPEN.play(location.getWorld(), location, 2F, 0.1F); + XSound.BLOCK_CHEST_OPEN.play(location, 2, .1f); } public static void playLandingSound(ITreeBlock block) { @@ -21,9 +21,9 @@ public class SoundUtils { } if (block.getTreeBlockType() == TreeBlockType.LOG) { - CompatibleSound.BLOCK_WOOD_FALL.play(location.getWorld(), location, 2F, 0.1F); + XSound.BLOCK_WOOD_FALL.play(location, 2, .1f); } else { - CompatibleSound.BLOCK_GRASS_BREAK.play(location.getWorld(), location, 0.5F, 0.75F); + XSound.BLOCK_GRASS_BREAK.play(location, .5f, .75f); } } }