From ff491c144398f68178b7108d9ffbbc5e52504246 Mon Sep 17 00:00:00 2001 From: ryanhamshire Date: Fri, 16 Jan 2015 18:03:50 -0800 Subject: [PATCH] Fixed "somebody" instead of name for new players. --- .../GriefPrevention/BlockEventHandler.java | 23 +++++++++++++++++++ .../GriefPrevention/GriefPrevention.java | 8 +++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/me/ryanhamshire/GriefPrevention/BlockEventHandler.java b/src/me/ryanhamshire/GriefPrevention/BlockEventHandler.java index 710909d..13136c4 100644 --- a/src/me/ryanhamshire/GriefPrevention/BlockEventHandler.java +++ b/src/me/ryanhamshire/GriefPrevention/BlockEventHandler.java @@ -39,6 +39,7 @@ import org.bukkit.event.block.BlockDispenseEvent; import org.bukkit.event.block.BlockFromToEvent; import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockIgniteEvent.IgniteCause; +import org.bukkit.event.block.BlockMultiPlaceEvent; import org.bukkit.event.block.BlockPistonExtendEvent; import org.bukkit.event.block.BlockPistonRetractEvent; import org.bukkit.event.block.BlockPlaceEvent; @@ -132,6 +133,28 @@ public class BlockEventHandler implements Listener } } + //when a player places multiple blocks... + @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) + public void onBlocksPlace(BlockMultiPlaceEvent placeEvent) + { + Player player = placeEvent.getPlayer(); + + //don't track in worlds where claims are not enabled + if(!GriefPrevention.instance.claimsEnabledForWorld(placeEvent.getBlock().getWorld())) return; + + //make sure the player is allowed to build at the location + for(BlockState block : placeEvent.getReplacedBlockStates()) + { + String noBuildReason = GriefPrevention.instance.allowBuild(player, block.getLocation(), block.getType()); + if(noBuildReason != null) + { + GriefPrevention.sendMessage(player, TextMode.Err, noBuildReason); + placeEvent.setCancelled(true); + return; + } + } + } + //when a player places a block... @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH) public void onBlockPlace(BlockPlaceEvent placeEvent) diff --git a/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java b/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java index 0ec0f84..162bded 100644 --- a/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java +++ b/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java @@ -2236,11 +2236,11 @@ public class GriefPrevention extends JavaPlugin static String lookupPlayerName(UUID playerID) { //parameter validation - if(playerID == null) return "someone"; + if(playerID == null) return "somebody"; //check the cache OfflinePlayer player = GriefPrevention.instance.getServer().getOfflinePlayer(playerID); - if(player.hasPlayedBefore()) + if(player.hasPlayedBefore() || player.isOnline()) { return player.getName(); } @@ -2454,9 +2454,9 @@ public class GriefPrevention extends JavaPlugin return reason; } - else + //but it's fine in survival mode + else { - //but it's fine in survival mode return null; } }