From bab00aed4de959781ecf8ca25d78b7970c50cd20 Mon Sep 17 00:00:00 2001 From: Brian Date: Tue, 18 Dec 2018 14:52:10 +0200 Subject: [PATCH 1/3] Bug Fixes # Conflicts: # src/main/java/com/songoda/ultimatetimber/treefall/NoAnimationTreeDestroyer.java # src/main/java/com/songoda/ultimatetimber/treefall/TreeFallEvent.java # src/main/java/com/songoda/ultimatetimber/treefall/TreeLoot.java --- .../ultimatetimber/treefall/TreeLoot.java | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/songoda/ultimatetimber/treefall/TreeLoot.java b/src/main/java/com/songoda/ultimatetimber/treefall/TreeLoot.java index 88ead78..8ae57cb 100644 --- a/src/main/java/com/songoda/ultimatetimber/treefall/TreeLoot.java +++ b/src/main/java/com/songoda/ultimatetimber/treefall/TreeLoot.java @@ -2,6 +2,7 @@ package com.songoda.ultimatetimber.treefall; import com.songoda.ultimatetimber.utils.LeafToSaplingConverter; import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.entity.FallingBlock; import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; @@ -60,9 +61,47 @@ public class TreeLoot { } + if (itemStack.getType().equals(Material.LOG)){ + if (fallingBlock.getBlockData() == 0 || fallingBlock.getBlockData() == 4 || fallingBlock.getBlockData() == 8) + itemStack = new ItemStack(Material.LOG, 1, (byte) 0); + if (fallingBlock.getBlockData() == 1 || fallingBlock.getBlockData() == 5 || fallingBlock.getBlockData() == 9) + itemStack = new ItemStack(Material.LOG, 1, (byte) 1); + if (fallingBlock.getBlockData() == 2 || fallingBlock.getBlockData() == 6 || fallingBlock.getBlockData() == 10) + itemStack = new ItemStack(Material.LOG, 1, (byte) 2); + if (fallingBlock.getBlockData() == 4 || fallingBlock.getBlockData() == 7 || fallingBlock.getBlockData() == 11) + itemStack = new ItemStack(Material.LOG, 1, (byte) 3); + } + + if (itemStack.getType().equals(Material.LOG_2)){ + if (fallingBlock.getBlockData() == 0 || fallingBlock.getBlockData() == 4 || fallingBlock.getBlockData() == 8) + itemStack = new ItemStack(Material.LOG_2, 1, (byte) 0); + if (fallingBlock.getBlockData() == 1 || fallingBlock.getBlockData() == 5 || fallingBlock.getBlockData() == 9) + itemStack = new ItemStack(Material.LOG_2, 1, (byte) 1); + } + if (hasBonusLoot) - fallingBlock.getWorld().dropItem(fallingBlock.getLocation(), new ItemStack(material, 1)); - fallingBlock.getWorld().dropItem(fallingBlock.getLocation(), new ItemStack(material, 1)); + fallingBlock.getWorld().dropItem(fallingBlock.getLocation(), itemStack); + fallingBlock.getWorld().dropItem(fallingBlock.getLocation(), itemStack); + + } + + public static ItemStack convertBlock(Block block, boolean hasSilkTouch) { + + + ItemStack itemStack = new ItemStack(block.getType(), 1); + + if (itemStack.getType().equals(Material.VINE)) return itemStack; + + if (itemStack.getType().equals(Material.LEAVES) || itemStack.getType().equals(Material.LEAVES_2)) + itemStack = LeafToSaplingConverter.convertLeaves(block, hasSilkTouch); + + if (itemStack.getType().equals(Material.HUGE_MUSHROOM_2)) { + if(!hasSilkTouch) itemStack = new ItemStack(Material.RED_MUSHROOM, 1); + } + + if (itemStack.getType().equals(Material.HUGE_MUSHROOM_1)) { + if(!hasSilkTouch) itemStack = new ItemStack(Material.BROWN_MUSHROOM, 1); + } } From cbf4f1ba0eb8f398f87f77fb2c2614d70ac12b08 Mon Sep 17 00:00:00 2001 From: Brian Date: Tue, 18 Dec 2018 14:53:27 +0200 Subject: [PATCH 2/3] Revert "Bug Fixes" This reverts commit bab00ae --- .../ultimatetimber/treefall/TreeLoot.java | 43 +------------------ 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/songoda/ultimatetimber/treefall/TreeLoot.java b/src/main/java/com/songoda/ultimatetimber/treefall/TreeLoot.java index 8ae57cb..88ead78 100644 --- a/src/main/java/com/songoda/ultimatetimber/treefall/TreeLoot.java +++ b/src/main/java/com/songoda/ultimatetimber/treefall/TreeLoot.java @@ -2,7 +2,6 @@ package com.songoda.ultimatetimber.treefall; import com.songoda.ultimatetimber.utils.LeafToSaplingConverter; import org.bukkit.Material; -import org.bukkit.block.Block; import org.bukkit.entity.FallingBlock; import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; @@ -61,47 +60,9 @@ public class TreeLoot { } - if (itemStack.getType().equals(Material.LOG)){ - if (fallingBlock.getBlockData() == 0 || fallingBlock.getBlockData() == 4 || fallingBlock.getBlockData() == 8) - itemStack = new ItemStack(Material.LOG, 1, (byte) 0); - if (fallingBlock.getBlockData() == 1 || fallingBlock.getBlockData() == 5 || fallingBlock.getBlockData() == 9) - itemStack = new ItemStack(Material.LOG, 1, (byte) 1); - if (fallingBlock.getBlockData() == 2 || fallingBlock.getBlockData() == 6 || fallingBlock.getBlockData() == 10) - itemStack = new ItemStack(Material.LOG, 1, (byte) 2); - if (fallingBlock.getBlockData() == 4 || fallingBlock.getBlockData() == 7 || fallingBlock.getBlockData() == 11) - itemStack = new ItemStack(Material.LOG, 1, (byte) 3); - } - - if (itemStack.getType().equals(Material.LOG_2)){ - if (fallingBlock.getBlockData() == 0 || fallingBlock.getBlockData() == 4 || fallingBlock.getBlockData() == 8) - itemStack = new ItemStack(Material.LOG_2, 1, (byte) 0); - if (fallingBlock.getBlockData() == 1 || fallingBlock.getBlockData() == 5 || fallingBlock.getBlockData() == 9) - itemStack = new ItemStack(Material.LOG_2, 1, (byte) 1); - } - if (hasBonusLoot) - fallingBlock.getWorld().dropItem(fallingBlock.getLocation(), itemStack); - fallingBlock.getWorld().dropItem(fallingBlock.getLocation(), itemStack); - - } - - public static ItemStack convertBlock(Block block, boolean hasSilkTouch) { - - - ItemStack itemStack = new ItemStack(block.getType(), 1); - - if (itemStack.getType().equals(Material.VINE)) return itemStack; - - if (itemStack.getType().equals(Material.LEAVES) || itemStack.getType().equals(Material.LEAVES_2)) - itemStack = LeafToSaplingConverter.convertLeaves(block, hasSilkTouch); - - if (itemStack.getType().equals(Material.HUGE_MUSHROOM_2)) { - if(!hasSilkTouch) itemStack = new ItemStack(Material.RED_MUSHROOM, 1); - } - - if (itemStack.getType().equals(Material.HUGE_MUSHROOM_1)) { - if(!hasSilkTouch) itemStack = new ItemStack(Material.BROWN_MUSHROOM, 1); - } + fallingBlock.getWorld().dropItem(fallingBlock.getLocation(), new ItemStack(material, 1)); + fallingBlock.getWorld().dropItem(fallingBlock.getLocation(), new ItemStack(material, 1)); } From 5ea8dfe9e678dd9f07e54ba5d0dafef85dd64bb0 Mon Sep 17 00:00:00 2001 From: Brian Date: Tue, 18 Dec 2018 16:12:26 +0200 Subject: [PATCH 3/3] Bug Fixes --- .../ultimatetimber/UltimateTimber.java | 21 +++++++ .../treefall/NoAnimationTreeDestroyer.java | 61 +++++-------------- .../treefall/TreeFallEvent.java | 2 +- 3 files changed, 37 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java b/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java index af8fb82..e47436b 100644 --- a/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java +++ b/src/main/java/com/songoda/ultimatetimber/UltimateTimber.java @@ -7,6 +7,7 @@ import com.songoda.ultimatetimber.treefall.TreeFallAnimation; import com.songoda.ultimatetimber.treefall.TreeFallEvent; import com.songoda.ultimatetimber.utils.Methods; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; @@ -31,7 +32,11 @@ public class UltimateTimber extends JavaPlugin { @Override public void onEnable() { + + if (!checkVersion()) return; + INSTANCE = this; + console.sendMessage(Methods.formatText("&a=============================")); console.sendMessage(Methods.formatText("&7" + this.getDescription().getName() + " " + this.getDescription().getVersion() + " by &5Brianna <3&7!")); console.sendMessage(Methods.formatText("&7Action: &aEnabling&7...")); @@ -82,4 +87,20 @@ public class UltimateTimber extends JavaPlugin { public String getPrefix() { return prefix; } + private boolean checkVersion() { + int workingVersion = 13; + int currentVersion = Integer.parseInt(Bukkit.getServer().getClass() + .getPackage().getName().split("\\.")[3].split("_")[1]); + + if (currentVersion < workingVersion) { + Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> { + Bukkit.getConsoleSender().sendMessage(""); + Bukkit.getConsoleSender().sendMessage(String.format("%sYou installed the 1.%s only version of %s on a 1.%s server. Since you are on the wrong version we disabled the plugin for you. Please install correct version to continue using %s.", ChatColor.RED, workingVersion, this.getDescription().getName(), currentVersion, this.getDescription().getName())); + Bukkit.getConsoleSender().sendMessage(""); + }, 20L); + return false; + } + return true; + } + } diff --git a/src/main/java/com/songoda/ultimatetimber/treefall/NoAnimationTreeDestroyer.java b/src/main/java/com/songoda/ultimatetimber/treefall/NoAnimationTreeDestroyer.java index c4315b6..74213e1 100644 --- a/src/main/java/com/songoda/ultimatetimber/treefall/NoAnimationTreeDestroyer.java +++ b/src/main/java/com/songoda/ultimatetimber/treefall/NoAnimationTreeDestroyer.java @@ -17,7 +17,7 @@ public class NoAnimationTreeDestroyer { /* Only ever triggers when people have tree falling animations off in the config */ - public static void destroyTree(HashSet blocks, boolean hasBonusLoot, boolean hasSilkTouch, Block minedLog) { + public static void destroyTree(HashSet blocks, boolean hasBonusLoot, boolean hasSilkTouch) { Material leavesType = null; @@ -27,17 +27,10 @@ public class NoAnimationTreeDestroyer { } else if(!blocks.stream().filter(b -> b.getType() == Material.RED_MUSHROOM_BLOCK).collect(Collectors.toList()).isEmpty()){ leavesType = Material.RED_MUSHROOM_BLOCK; - } else { } for (Block block : blocks) { - if(leavesType != null){ - TreeReplant.replaceOriginalBlock(block, leavesType); - } else{ - TreeReplant.replaceOriginalBlock(block); - } - Material material = LeafToSaplingConverter.convertLeaves(block.getType()); if (material.equals(Material.AIR)) continue; @@ -45,15 +38,6 @@ public class NoAnimationTreeDestroyer { ItemStack toDrop = getItem(material); - if (hasSilkTouch) { - if (hasBonusLoot) - block.getWorld().dropItem(block.getLocation(), toDrop.clone()); - block.getWorld().dropItem(block.getLocation(), toDrop.clone()); - CustomLoot.doCustomItemDrop(block.getLocation()); - block.setType(Material.AIR); - continue; - } - if (material.equals(Material.ACACIA_SAPLING) || material.equals(Material.BIRCH_SAPLING) || material.equals(Material.DARK_OAK_SAPLING) || @@ -77,6 +61,15 @@ public class NoAnimationTreeDestroyer { } + if (hasSilkTouch) { + if (hasBonusLoot) + block.getWorld().dropItem(block.getLocation(), toDrop.clone()); + block.getWorld().dropItem(block.getLocation(), toDrop.clone()); + CustomLoot.doCustomItemDrop(block.getLocation()); + block.setType(Material.AIR); + continue; + } + if (hasBonusLoot) block.getWorld().dropItem(block.getLocation(), toDrop.clone()); block.getWorld().dropItem(block.getLocation(), toDrop.clone()); @@ -85,38 +78,14 @@ public class NoAnimationTreeDestroyer { block.setType(Material.AIR); CustomLoot.doCustomItemDrop(block.getLocation()); - } - - - } - - static Block getMainLog(Location loc){ - - int maxHeight = 7; - - Location clonedLocation = loc.getBlock().getLocation(); - Block toReturn = null; - - Location check1 = clonedLocation.clone(); - - if(check1.add(0,-1,0).getBlock().getType() != loc.getBlock().getType()){ - return clonedLocation.getBlock(); - } - - for(int i = 0; i < maxHeight;i++){ - - if(clonedLocation.add(0,-1,0).getBlock().getType() == loc.getBlock().getType()){ - - Location secondClone = clonedLocation.clone(); - - if(secondClone.add(0,-1,0).getBlock().getType() != loc.getBlock().getType()){ - toReturn = clonedLocation.getBlock(); - } - + if(leavesType != null){ + TreeReplant.replaceOriginalBlock(block, leavesType); + } else{ + TreeReplant.replaceOriginalBlock(block); } } - return toReturn; + } diff --git a/src/main/java/com/songoda/ultimatetimber/treefall/TreeFallEvent.java b/src/main/java/com/songoda/ultimatetimber/treefall/TreeFallEvent.java index 75db0ad..4c5201a 100644 --- a/src/main/java/com/songoda/ultimatetimber/treefall/TreeFallEvent.java +++ b/src/main/java/com/songoda/ultimatetimber/treefall/TreeFallEvent.java @@ -53,7 +53,7 @@ public class TreeFallEvent implements Listener { treeFallAnimation.startAnimation(event.getBlock(), blocks, event.getPlayer()); } else { NoAnimationTreeDestroyer.destroyTree(blocks, event.getPlayer().hasPermission("ultimatetimber.bonusloot"), - event.getPlayer().getInventory().getItemInMainHand().containsEnchantment(Enchantment.SILK_TOUCH), event.getBlock()); + event.getPlayer().getInventory().getItemInMainHand().containsEnchantment(Enchantment.SILK_TOUCH)); } }