64 lines
No EOL
2.1 KiB
Java
64 lines
No EOL
2.1 KiB
Java
package nl.kallestruik.vanillatweaks.HoeHarvesting;
|
|
|
|
import nl.kallestruik.vanillatweaks.config;
|
|
import org.bukkit.*;
|
|
import org.bukkit.block.Block;
|
|
import org.bukkit.block.data.Ageable;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.block.BlockBreakEvent;
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
|
public class HoeHarvestingHandler implements Listener {
|
|
|
|
@EventHandler
|
|
public void onHoeBreaksBlock(BlockBreakEvent event) {
|
|
Player player = event.getPlayer();
|
|
Block block = event.getBlock();
|
|
World world = block.getWorld();
|
|
ItemStack itemInHand = player.getInventory().getItemInMainHand();
|
|
int range;
|
|
|
|
if (itemInHand.getType() == Material.WOODEN_HOE)
|
|
range = config.HOE_HARVESTING_RANGE_WOOD;
|
|
else if (itemInHand.getType() == Material.STONE_HOE)
|
|
range = config.HOE_HARVESTING_RANGE_STONE;
|
|
else if (itemInHand.getType() == Material.IRON_HOE)
|
|
range = config.HOE_HARVESTING_RANGE_IRON;
|
|
else if (itemInHand.getType() == Material.GOLDEN_HOE)
|
|
range = config.HOE_HARVESTING_RANGE_GOLD;
|
|
else if (itemInHand.getType() == Material.DIAMOND_HOE)
|
|
range = config.HOE_HARVESTING_RANGE_DIAMOND;
|
|
else
|
|
return;
|
|
|
|
|
|
if (!isCrop(block.getType()))
|
|
return;
|
|
|
|
Location startLocation = block.getLocation();
|
|
|
|
for (int x = -range; x <= range; x++) {
|
|
for (int z = -range; z <= range; z++) {
|
|
Block b = world.getBlockAt(startLocation.clone().add(x, 0, z));
|
|
if (isCrop(b.getType())) {
|
|
Ageable ageable = (Ageable) b.getBlockData();
|
|
if (ageable.getAge() == ageable.getMaximumAge()) {
|
|
b.breakNaturally();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
private static boolean isCrop(Material material) {
|
|
return material == Material.WHEAT ||
|
|
material == Material.BEETROOTS ||
|
|
material == Material.CARROTS ||
|
|
material == Material.POTATOES;
|
|
|
|
}
|
|
} |