mirror of
https://github.com/BentoBoxWorld/Limits.git
synced 2024-09-28 22:47:36 +02:00
Adds support for crop trample and turtle eggs
https://github.com/BentoBoxWorld/Limits/issues/42
This commit is contained in:
parent
af59047f57
commit
814272905a
@ -1,6 +1,14 @@
|
|||||||
package bentobox.addon.limits.listeners;
|
package bentobox.addon.limits.listeners;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -8,11 +16,12 @@ import org.bukkit.World;
|
|||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
import org.bukkit.event.block.BlockBurnEvent;
|
import org.bukkit.event.block.BlockBurnEvent;
|
||||||
import org.bukkit.event.block.BlockExplodeEvent;
|
import org.bukkit.event.block.BlockExplodeEvent;
|
||||||
@ -26,6 +35,7 @@ import org.bukkit.event.block.EntityBlockFormEvent;
|
|||||||
import org.bukkit.event.block.LeavesDecayEvent;
|
import org.bukkit.event.block.LeavesDecayEvent;
|
||||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
|
||||||
import bentobox.addon.limits.Limits;
|
import bentobox.addon.limits.Limits;
|
||||||
import bentobox.addon.limits.objects.IslandBlockCount;
|
import bentobox.addon.limits.objects.IslandBlockCount;
|
||||||
@ -146,10 +156,17 @@ public class BlockLimitsListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||||
public void onBlock(BlockBreakEvent e) {
|
public void onBlock(BlockBreakEvent e) {
|
||||||
handleBreak(e, e.getPlayer(), e.getBlock());
|
handleBreak(e, e.getBlock());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleBreak(Cancellable e, Player player, Block b) {
|
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||||
|
public void onTurtleEggBreak(PlayerInteractEvent e) {
|
||||||
|
if (e.getAction().equals(Action.PHYSICAL) && e.getClickedBlock().getType().equals(Material.TURTLE_EGG)) {
|
||||||
|
handleBreak(e, e.getClickedBlock());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handleBreak(Event e, Block b) {
|
||||||
Material mat = b.getType();
|
Material mat = b.getType();
|
||||||
// Special handling for crops that can break in different ways
|
// Special handling for crops that can break in different ways
|
||||||
if (mat.equals(Material.WHEAT_SEEDS)) {
|
if (mat.equals(Material.WHEAT_SEEDS)) {
|
||||||
@ -166,7 +183,7 @@ public class BlockLimitsListener implements Listener {
|
|||||||
process(block, false, mat);
|
process(block, false, mat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
notify(e, User.getInstance(player), process(b, false, mat), mat);
|
process(b, false, mat);
|
||||||
// Player breaks a block and there was a redstone dust/repeater/... above
|
// Player breaks a block and there was a redstone dust/repeater/... above
|
||||||
if (b.getRelative(BlockFace.UP).getType() == Material.REDSTONE_WIRE || b.getRelative(BlockFace.UP).getType() == Material.REPEATER || b.getRelative(BlockFace.UP).getType() == Material.COMPARATOR || b.getRelative(BlockFace.UP).getType() == Material.REDSTONE_TORCH) {
|
if (b.getRelative(BlockFace.UP).getType() == Material.REDSTONE_WIRE || b.getRelative(BlockFace.UP).getType() == Material.REPEATER || b.getRelative(BlockFace.UP).getType() == Material.COMPARATOR || b.getRelative(BlockFace.UP).getType() == Material.REDSTONE_TORCH) {
|
||||||
process(b.getRelative(BlockFace.UP), false);
|
process(b.getRelative(BlockFace.UP), false);
|
||||||
@ -243,6 +260,9 @@ public class BlockLimitsListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||||
public void onBlock(EntityChangeBlockEvent e) {
|
public void onBlock(EntityChangeBlockEvent e) {
|
||||||
process(e.getBlock(), false);
|
process(e.getBlock(), false);
|
||||||
|
if (e.getBlock().getType().equals(Material.FARMLAND)) {
|
||||||
|
process(e.getBlock().getRelative(BlockFace.UP), false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||||
|
Loading…
Reference in New Issue
Block a user