mirror of
https://github.com/songoda/UltimateTimber.git
synced 2024-06-26 06:34:50 +02:00
Merge branch 'OOP-778-master' into 'master'
Resolve OOP-778 "Master" Closes OOP-778 See merge request Songoda/ultimatetimber!8
This commit is contained in:
commit
2ff0745a32
|
@ -7,6 +7,7 @@ import com.songoda.ultimatetimber.treefall.TreeFallAnimation;
|
||||||
import com.songoda.ultimatetimber.treefall.TreeFallEvent;
|
import com.songoda.ultimatetimber.treefall.TreeFallEvent;
|
||||||
import com.songoda.ultimatetimber.utils.Methods;
|
import com.songoda.ultimatetimber.utils.Methods;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
@ -31,7 +32,11 @@ public class UltimateTimber extends JavaPlugin {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
|
|
||||||
|
if (!checkVersion()) return;
|
||||||
|
|
||||||
INSTANCE = this;
|
INSTANCE = this;
|
||||||
|
|
||||||
console.sendMessage(Methods.formatText("&a============================="));
|
console.sendMessage(Methods.formatText("&a============================="));
|
||||||
console.sendMessage(Methods.formatText("&7" + this.getDescription().getName() + " " + this.getDescription().getVersion() + " by &5Brianna <3&7!"));
|
console.sendMessage(Methods.formatText("&7" + this.getDescription().getName() + " " + this.getDescription().getVersion() + " by &5Brianna <3&7!"));
|
||||||
console.sendMessage(Methods.formatText("&7Action: &aEnabling&7..."));
|
console.sendMessage(Methods.formatText("&7Action: &aEnabling&7..."));
|
||||||
|
@ -82,4 +87,20 @@ public class UltimateTimber extends JavaPlugin {
|
||||||
public String getPrefix() {
|
public String getPrefix() {
|
||||||
return prefix;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class NoAnimationTreeDestroyer {
|
||||||
/*
|
/*
|
||||||
Only ever triggers when people have tree falling animations off in the config
|
Only ever triggers when people have tree falling animations off in the config
|
||||||
*/
|
*/
|
||||||
public static void destroyTree(HashSet<Block> blocks, boolean hasBonusLoot, boolean hasSilkTouch, Block minedLog) {
|
public static void destroyTree(HashSet<Block> blocks, boolean hasBonusLoot, boolean hasSilkTouch) {
|
||||||
|
|
||||||
Material leavesType = null;
|
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()){
|
} else if(!blocks.stream().filter(b -> b.getType() == Material.RED_MUSHROOM_BLOCK).collect(Collectors.toList()).isEmpty()){
|
||||||
leavesType = Material.RED_MUSHROOM_BLOCK;
|
leavesType = Material.RED_MUSHROOM_BLOCK;
|
||||||
} else {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Block block : blocks) {
|
for (Block block : blocks) {
|
||||||
|
|
||||||
if(leavesType != null){
|
|
||||||
TreeReplant.replaceOriginalBlock(block, leavesType);
|
|
||||||
} else{
|
|
||||||
TreeReplant.replaceOriginalBlock(block);
|
|
||||||
}
|
|
||||||
|
|
||||||
Material material = LeafToSaplingConverter.convertLeaves(block.getType());
|
Material material = LeafToSaplingConverter.convertLeaves(block.getType());
|
||||||
|
|
||||||
if (material.equals(Material.AIR)) continue;
|
if (material.equals(Material.AIR)) continue;
|
||||||
|
@ -45,15 +38,6 @@ public class NoAnimationTreeDestroyer {
|
||||||
|
|
||||||
ItemStack toDrop = getItem(material);
|
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) ||
|
if (material.equals(Material.ACACIA_SAPLING) ||
|
||||||
material.equals(Material.BIRCH_SAPLING) ||
|
material.equals(Material.BIRCH_SAPLING) ||
|
||||||
material.equals(Material.DARK_OAK_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)
|
if (hasBonusLoot)
|
||||||
block.getWorld().dropItem(block.getLocation(), toDrop.clone());
|
block.getWorld().dropItem(block.getLocation(), toDrop.clone());
|
||||||
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);
|
block.setType(Material.AIR);
|
||||||
CustomLoot.doCustomItemDrop(block.getLocation());
|
CustomLoot.doCustomItemDrop(block.getLocation());
|
||||||
|
|
||||||
}
|
if(leavesType != null){
|
||||||
|
TreeReplant.replaceOriginalBlock(block, leavesType);
|
||||||
|
} else{
|
||||||
}
|
TreeReplant.replaceOriginalBlock(block);
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return toReturn;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class TreeFallEvent implements Listener {
|
||||||
treeFallAnimation.startAnimation(event.getBlock(), blocks, event.getPlayer());
|
treeFallAnimation.startAnimation(event.getBlock(), blocks, event.getPlayer());
|
||||||
} else {
|
} else {
|
||||||
NoAnimationTreeDestroyer.destroyTree(blocks, event.getPlayer().hasPermission("ultimatetimber.bonusloot"),
|
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));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user