diff --git a/pom.xml b/pom.xml index 79b3a96..8474696 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 cn.citycraft JumpPlate - 1.2 + 1.3 JumpPlate ${project.name} @@ -54,7 +54,7 @@ http://ci.citycraft.cn:8080 - &c修复跳板命令问题... + &c修复使用跳板后不扣血的问题... DEBUG UTF-8 diff --git a/src/main/java/cn/citycraft/JumpPlate/JumpPlate.java b/src/main/java/cn/citycraft/JumpPlate/JumpPlate.java index 7379d85..601eedd 100644 --- a/src/main/java/cn/citycraft/JumpPlate/JumpPlate.java +++ b/src/main/java/cn/citycraft/JumpPlate/JumpPlate.java @@ -69,13 +69,13 @@ public class JumpPlate extends JavaPlugin implements Listener, HandlerCommands { public void onFallDamage(final EntityDamageEvent e) { if (e.getEntity() instanceof Player) { final Player p = (Player) e.getEntity(); - if (e.getCause() == DamageCause.FALL && (fall.contains(p.getName()))) { - final Location gb = p.getLocation(); - final Block loc = gb.add(0.0D, -1.0D, 0.0D).getBlock(); - final Block loc_1 = gb.add(0.0D, -1.0D, 0.0D).getBlock(); - final Block loc_2 = gb.add(0.0D, -1.0D, 0.0D).getBlock(); + if (e.getCause() == DamageCause.FALL && fall.contains(p.getName())) { + final Block gb = p.getLocation().getBlock(); + final Block loc = gb.getRelative(BlockFace.DOWN); + final Block loc_1 = gb.getRelative(BlockFace.DOWN, 2); + final Block loc_2 = gb.getRelative(BlockFace.DOWN, 3); if (loc_1.getType() != Material.GLASS || loc_2.getType() != Material.LAPIS_BLOCK || !ml.contains(loc.getType())) { - fall.remove(p); + fall.remove(p.getName()); } e.setDamage(DamageModifier.BASE, 0); } @@ -95,35 +95,31 @@ public class JumpPlate extends JavaPlugin implements Listener, HandlerCommands { final Block loc = gb.getRelative(BlockFace.DOWN); final Block loc_1 = gb.getRelative(BlockFace.DOWN, 2); final Block loc_2 = gb.getRelative(BlockFace.DOWN, 3); - if ((loc_1.getType() == Material.GLASS) && (loc_2.getType() == Material.LAPIS_BLOCK)) { + if (loc_1.getType() == Material.GLASS && loc_2.getType() == Material.LAPIS_BLOCK && ml.contains(loc.getType())) { if (!p.hasPermission("JumpPlate.use")) { p.sendMessage(pluginname + config.getMessage("no-permission")); return; } switch (loc.getType()) { case IRON_BLOCK: - fall.add(p.getName()); p.setVelocity(p.getVelocity().setY(1)); break; case GOLD_BLOCK: - fall.add(p.getName()); p.setVelocity(p.getVelocity().setY(1.5)); break; case DIAMOND_BLOCK: - fall.add(p.getName()); p.setVelocity(p.getVelocity().setY(2)); break; case EMERALD_BLOCK: - fall.add(p.getName()); p.setVelocity(p.getVelocity().setY(2.5)); break; case BEDROCK: - fall.add(p.getName()); p.setVelocity(p.getVelocity().setY(config.getDouble("BEDROCK"))); break; default: break; } + fall.add(p.getName()); } }