From a9850013f3a56ae80a0f09beb71f5057861e5d75 Mon Sep 17 00:00:00 2001 From: 502647092 Date: Fri, 13 Nov 2015 20:16:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A1=A5=E4=B8=81=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E5=88=B7=E7=89=A9=E5=93=81BUG...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- pom.xml | 4 +-- .../listeners/bugfix/ResidenceBugFix.java | 26 +++++++++++-------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/pom.xml b/pom.xml index 6822d26..92824d7 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 cn.citycraft Residence - 2.8.1.2 + 2.8.1.3 Residence 重制版本的领地插件 - 喵♂呜 @@ -55,7 +55,7 @@ http://ci.citycraft.cn:8080 - &4添加自动检测 1.7版本开启ActionBar时自动关闭... + &d修复补丁导致的刷物品BUG... UTF-8 diff --git a/src/main/java/cn/citycraft/Residence/listeners/bugfix/ResidenceBugFix.java b/src/main/java/cn/citycraft/Residence/listeners/bugfix/ResidenceBugFix.java index 4500c47..e98ce00 100644 --- a/src/main/java/cn/citycraft/Residence/listeners/bugfix/ResidenceBugFix.java +++ b/src/main/java/cn/citycraft/Residence/listeners/bugfix/ResidenceBugFix.java @@ -28,12 +28,6 @@ public class ResidenceBugFix implements Listener { plugin.getLogger().info("防刷生物补丁已加载..."); } - public boolean hasPerm(final ClaimedResidence res, final Player p) { - final FlagPermissions perms = res.getPermissions(); - final String world = p.getWorld().getName(); - return perms.playerHas(p.getName(), world, "place", perms.playerHas(p.getName(), world, "build", false)); - } - public Block getPlaceBlock(final PlayerInteractEvent e) { final Player p = e.getPlayer(); final ItemStack it = p.getItemInHand(); @@ -53,6 +47,12 @@ public class ResidenceBugFix implements Listener { return b.getRelative(BlockFace.DOWN); } + public boolean hasPerm(final ClaimedResidence res, final Player p) { + final FlagPermissions perms = res.getPermissions(); + final String world = p.getWorld().getName(); + return perms.playerHas(p.getName(), world, "place", perms.playerHas(p.getName(), world, "build", false)); + } + @EventHandler public void onBlockPlace(final PlayerInteractEvent e) { if (e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.PHYSICAL) { @@ -102,7 +102,7 @@ public class ResidenceBugFix implements Listener { if (res == null) { return; } - if (b1.getType() != Material.AIR && b2.getType() == Material.AIR) { + if (b1.getType() != Material.AIR && b1.getType() != Material.TORCH && b2.getType() == Material.AIR && checkAround(b2)) { if (!hasPerm(res, p)) { e.setCancelled(true); p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + ChatColor.DARK_RED + " 当前区域不允许此操作!"); @@ -122,9 +122,13 @@ public class ResidenceBugFix implements Listener { @EventHandler public void onSugarCanePhysics(final BlockPhysicsEvent e) { - // final Material mat = e.getChangedType(); - // if (mat == Material.SUGAR_CANE_BLOCK) { - // e.getBlock().getDrops().clear(); - // } + } + + private boolean checkAround(final Block b) { + final Block be = b.getRelative(BlockFace.EAST); + final Block bw = b.getRelative(BlockFace.WEST); + final Block bn = b.getRelative(BlockFace.NORTH); + final Block bs = b.getRelative(BlockFace.SOUTH); + return (be.getType() != Material.AIR || bw.getType() != Material.AIR || bn.getType() != Material.AIR || bs.getType() != Material.AIR); } }