From f5ae3833667b2319a690fbcb267be502cc705631 Mon Sep 17 00:00:00 2001 From: Steffion Date: Mon, 26 Aug 2013 15:23:43 +0200 Subject: [PATCH] * Fixed unable to die when not moving. You'll become unsolid faster. --- src/nl/Steffion/BlockHunt/BlockHunt.java | 71 ++----------------- .../Listeners/OnPlayerInteractEvent.java | 12 ++-- .../Steffion/BlockHunt/SolidBlockHandler.java | 62 ++++++++++++++++ 3 files changed, 76 insertions(+), 69 deletions(-) create mode 100644 src/nl/Steffion/BlockHunt/SolidBlockHandler.java diff --git a/src/nl/Steffion/BlockHunt/BlockHunt.java b/src/nl/Steffion/BlockHunt/BlockHunt.java index eaeb797..388efd6 100644 --- a/src/nl/Steffion/BlockHunt/BlockHunt.java +++ b/src/nl/Steffion/BlockHunt/BlockHunt.java @@ -93,7 +93,7 @@ public class BlockHunt extends JavaPlugin implements Listener { MessageM.broadcastFMessage(ConfigC.error_disguiseCraftNotInstalled, true); } - + if (!getServer().getPluginManager().isPluginEnabled("ProtocolLib")) { MessageM.broadcastFMessage(ConfigC.error_protocolLibNotInstalled, true); @@ -129,8 +129,8 @@ public class BlockHunt extends JavaPlugin implements Listener { if ((Boolean) W.config.get(ConfigC.autoUpdateCheck)) { if ((Boolean) W.config.get(ConfigC.autoDownloadUpdate)) { - new Updater(this, W.pluginName, - this.getFile(), Updater.UpdateType.DEFAULT, true); + new Updater(this, W.pluginName, this.getFile(), + Updater.UpdateType.DEFAULT, true); } else { new Updater(this, W.pluginName, this.getFile(), Updater.UpdateType.NO_DOWNLOAD, true); @@ -479,69 +479,10 @@ public class BlockHunt extends JavaPlugin implements Listener { } } } else { - Block pBlock = player.getLocation() - .getBlock(); - block.setAmount(5); - - if (W.hiddenLoc.get(player) != null) { - pBlock = W.hiddenLoc.get(player) - .getBlock(); - } if (!W.dcAPI.isDisguised(player)) { - for (Player pl : Bukkit - .getOnlinePlayers()) { - if (!pl.equals(player)) { - if (W.hiddenLocWater - .get(player) != null) { - if (W.hiddenLocWater - .get(player)) { - pl.sendBlockChange( - pBlock.getLocation(), - Material.STATIONARY_WATER, - (byte) 0); - } else { - pl.sendBlockChange( - pBlock.getLocation(), - Material.AIR, - (byte) 0); - } - } else { - pl.sendBlockChange( - pBlock.getLocation(), - Material.AIR, - (byte) 0); - } - - W.hiddenLocWater - .remove(player); - } - } - - player.playSound(pLoc, - Sound.BAT_HURT, 1, 1); - block.removeEnchantment(Enchantment.DURABILITY); - - LinkedList data = new LinkedList(); - data.add("blockID:" - + block.getTypeId()); - data.add("blockData:" - + block.getDurability()); - Disguise disguise = new Disguise( - W.dcAPI.newEntityID(), - data, - DisguiseType.FallingBlock); - if (W.dcAPI.isDisguised(player)) { - W.dcAPI.changePlayerDisguise( - player, disguise); - } else { - W.dcAPI.disguisePlayer(player, - disguise); - } - - MessageM.sendFMessage( - player, - ConfigC.normal_ingameNoMoreSolid, - true); + SolidBlockHandler + .makePlayerUnsolid(player, + block); } } } diff --git a/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java b/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java index 0a7cd48..f729bdc 100644 --- a/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java +++ b/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java @@ -3,6 +3,7 @@ package nl.Steffion.BlockHunt.Listeners; import nl.Steffion.BlockHunt.Arena; import nl.Steffion.BlockHunt.ArenaHandler; import nl.Steffion.BlockHunt.SignsHandler; +import nl.Steffion.BlockHunt.SolidBlockHandler; import nl.Steffion.BlockHunt.W; import nl.Steffion.BlockHunt.Managers.ConfigC; import nl.Steffion.BlockHunt.Managers.MessageM; @@ -10,6 +11,7 @@ import nl.Steffion.BlockHunt.Managers.PlayerM; import nl.Steffion.BlockHunt.Managers.PlayerM.PermsC; import nl.Steffion.BlockHunt.Serializables.LocationSerializable; +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.block.Block; @@ -124,10 +126,12 @@ public class OnPlayerInteractEvent implements Listener { if (moveLocBlock.getX() == pLoc.getX() && moveLocBlock.getY() == pLoc.getY() && moveLocBlock.getZ() == pLoc.getZ()) { - W.moveLoc.put(pl, player.getLocation()); - player.getWorld().playSound( - player.getLocation(), Sound.HURT_FLESH, - 1, 1); + W.moveLoc.put(pl, new Location(pl.getWorld(), + 0, 0, 0)); + pl.getWorld().playSound(player.getLocation(), + Sound.HURT_FLESH, 1, 1); + ItemStack block = pl.getInventory().getItem(8); + SolidBlockHandler.makePlayerUnsolid(pl, block); } } } diff --git a/src/nl/Steffion/BlockHunt/SolidBlockHandler.java b/src/nl/Steffion/BlockHunt/SolidBlockHandler.java new file mode 100644 index 0000000..41376e8 --- /dev/null +++ b/src/nl/Steffion/BlockHunt/SolidBlockHandler.java @@ -0,0 +1,62 @@ +package nl.Steffion.BlockHunt; + +import java.util.LinkedList; + +import nl.Steffion.BlockHunt.Managers.ConfigC; +import nl.Steffion.BlockHunt.Managers.MessageM; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import pgDev.bukkit.DisguiseCraft.disguise.Disguise; +import pgDev.bukkit.DisguiseCraft.disguise.DisguiseType; + +public class SolidBlockHandler { + public static void makePlayerUnsolid(Player player, ItemStack block) { + Block pBlock = player.getLocation().getBlock(); + + if (W.hiddenLoc.get(player) != null) { + pBlock = W.hiddenLoc.get(player).getBlock(); + } + block.setAmount(5); + for (Player pl : Bukkit.getOnlinePlayers()) { + if (!pl.equals(player)) { + if (W.hiddenLocWater.get(player) != null) { + if (W.hiddenLocWater.get(player)) { + pl.sendBlockChange(pBlock.getLocation(), + Material.STATIONARY_WATER, (byte) 0); + } else { + pl.sendBlockChange(pBlock.getLocation(), Material.AIR, + (byte) 0); + } + } else { + pl.sendBlockChange(pBlock.getLocation(), Material.AIR, + (byte) 0); + } + + W.hiddenLocWater.remove(player); + } + } + + player.playSound(player.getLocation(), Sound.BAT_HURT, 1, 1); + block.removeEnchantment(Enchantment.DURABILITY); + + LinkedList data = new LinkedList(); + data.add("blockID:" + block.getTypeId()); + data.add("blockData:" + block.getDurability()); + Disguise disguise = new Disguise(W.dcAPI.newEntityID(), data, + DisguiseType.FallingBlock); + if (W.dcAPI.isDisguised(player)) { + W.dcAPI.changePlayerDisguise(player, disguise); + } else { + W.dcAPI.disguisePlayer(player, disguise); + } + + MessageM.sendFMessage(player, ConfigC.normal_ingameNoMoreSolid, true); + } +}