From 67f8a083e5a54a1849fe54b4ded39e7a2e30ea53 Mon Sep 17 00:00:00 2001 From: Iseason Date: Fri, 23 Oct 2020 21:36:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../6.1/executionHistory/executionHistory.bin | Bin 234662 -> 234662 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/6.1/fileHashes/fileHashes.bin | Bin 21697 -> 21697 bytes .gradle/6.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .gradle/6.1/javaCompile/classAnalysis.bin | Bin 2370978 -> 2381488 bytes .gradle/6.1/javaCompile/javaCompile.lock | Bin 17 -> 17 bytes .gradle/6.1/javaCompile/taskHistory.bin | Bin 99939 -> 99939 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/checksums/checksums.lock | Bin 17 -> 17 bytes .gradle/checksums/sha1-checksums.bin | Bin 24383 -> 24761 bytes .../iseason/steelSafe/BreakingProtection.java | 1 - .../top/iseason/steelSafe/CreateCommand.java | 28 ++++---------- .../top/iseason/steelSafe/Dependency.java | 3 +- src/main/java/top/iseason/steelSafe/Main.java | 1 - .../java/top/iseason/steelSafe/OpenCheck.java | 16 ++++---- .../top/iseason/steelSafe/OpenWithKey.java | 35 +++++++++++------- .../top/iseason/steelSafe/RemoveCommand.java | 3 +- 17 files changed, 39 insertions(+), 48 deletions(-) diff --git a/.gradle/6.1/executionHistory/executionHistory.bin b/.gradle/6.1/executionHistory/executionHistory.bin index 9ec4f60c4eb8731bd1b8d70fcd38e99795f3d90c..496648faa0f28cba2def3f5840135925088c083e 100644 GIT binary patch delta 975 zcmZ3sl5g2cz72AIN-3qr<(V1jg;_-@=|yQ}{dY~+<8SiZ7S86L+2uzVSApbICQm42 zoi5$O93!A*ux0mC^$^)hcHVmqP3W6Eol%cTV*2Z5X70%jq0vH3h8lBRLvMUGp1ft1 z)DufB#)Z=b86yP&__9p$?mWVrASu>bxBY7q#gtrL2Oz2wdyXcHRyLjQP z$aDG27*|Yhj9^ll>`=@)-QXQlybw>wi8~68*)FpM#JWF!+_(thB(doVlFWS5+asBa zH>*ZYW)f(dQl314OJzrg@qyp3ZsaIUJ~&B#^Y>_GMuEc~_aD9xQ9iFdaaov9e-Z0s zuGmBj!OhjNNA;A_D$Eme3(7OHvXZOva?|rFN>h_ficM1!VL`|}d0mfn^W2{Hxjl^A z=k_qgT_hOnjElEl>}L{Y(XcQ!PBu-oOfpU~GqOxJO*2R{v@}UeN=!~PPBt=0OfgI{ zH8o5%GMqf|nX14ht&rbpxmN<(``OkDywAP2-Ej)jZO-i(Im~ld)rmA|`UX!XRRQk8 z{jc7A3Mfy$ZLni&)Qa8P6N;E!1q3F~G58m2ynbRt?y+F|OW7FMJFp3GIdU$=)+tsU?sENk$K_fO9!0w*4~qTG!+{MqUyzO1*-aZ(I52?V6kr-XfISbL8z5!ADM5#%Trs^df=Owz zLow@ggLh2v)8!(W1tC_8O;?a)=9}Ig$y~fyHF7eOK;i9w&d1;U&U26Tj!w}k;hcPM zlK$rJ(aekj?b4T8gBUAPvf0xn$+o`lo6HrPh#|PSI`*g@;h?IRyspQ(d2Ubp+#bg5 zb9nl>*20{?D4;JDeyn=7chhlMr5g+zB{ipi zxWiZ>;C7vT_rrT;%2T$!6-qg?GBR?;Gtq57x0bF%&2X1l(0X0!_!EQ~b8m-KW>?TGqyT*??UFtV2sN2B@+gh{Zu> zqiOkI{dY~+<8SiZ7S86L+2uzd&Ps9tsssY{sXzivN0Xt(9M{krpN%JPSta$vQVXnO zb&e5O0|VboOdWiN&)&$Sf7=pqM=NUvb8RFK)RGK{7SW=~wSF!^`#lw+pZSa4`IB6F zdWF}v9EhU0+Ym)!N|@%pOz2wdyXcHRyLjQP$aDG2pf0h4>TsXT7!)x%+dsf-@*IPI zvBv8sM&up~wog8y3|6@49Wz9s_$f@I&-T>+x$;$9%1)Qz-@XOyFQG1$namn+ge7!k zQt0Hf0d)$An021+I^lYa&#K++O0y-Y3-aszQ1CLavi5M(8@-I00W=1T{h z_14~#egupaphc@Q??BC%1f$QUkB&0m~ zqnA|uk%zZVY-Fvz`=@=)+KIupCo(WFmIkN3>1F@}txZ5m&lpH(0A0-Y4Tg=9K%;yQ*!=T=Id>2 z5FLrkU=0j>Gck3z6%{nftbSBosaG)bZ7cu0T~IB85G|sgC)fJ91i4*j-~I5Onevpa zZ-r9MEX@Wf0tPcDRFN;Hxw$<@-cAvGikO`3AE4l| zl1Z7%*Q!%x!;9VKi9Aoh3bS_=LKKSsocz#FSlsEK_8WVh5ltB39FdT z@I?O4+fnzy9&A+J()*!};lx+62NwTf)`@o8}C7M7Kr7oPT9ufgey_c6vZVs^n06jb6F#rGn diff --git a/.gradle/6.1/fileHashes/fileHashes.lock b/.gradle/6.1/fileHashes/fileHashes.lock index c7bdd9cd9fa18a67b3a10a72a348198369246230..ad0e16ab19703ba63c014278e14b39a147b56729 100644 GIT binary patch literal 17 VcmZSfSKN6c;lA(!1~A|&1^_WT1b6@d literal 17 VcmZSfSKN6c;lA(!1~A}#1pqOy1nvL; diff --git a/.gradle/6.1/javaCompile/classAnalysis.bin b/.gradle/6.1/javaCompile/classAnalysis.bin index 7614ed9335e582ec71c4be07d342ed3e8676b8eb..98c161481581649b229694ba318b450cdd1ad1e3 100644 GIT binary patch delta 1957 zcmeH`YfzL`7{~X#?CyJU*~79ImfOPHySs|YEf`yLQWj9rF%hHG8bd8>G@u5}Nlj#x zT9Vt6w2vAp16Ts1xx#cRvmvcX(`hmr={A6uAvCmrVH(R>I04*!_vL^7 z=Q;o9T$;b}p(BUtQF#UGVmvwMUD%exY{UmoMm>8Btx(Csp4d!Aa+s9{>|6Twh7ZP0 zE9&BFWd6g<=@8t$J+OyNKd7j4ZxP`Uro)Il-e569g2f@#0n`Llaq38%b!gMp)posN zyzc^eElz#O$xJkOVUC)jp=b%rVSkj+d!%wLyNtu%?%OqUhO6r;|^`o4%fyM#d?1}$#{`#(W0B)u_}(jQv}Kc zijERW(Ni!bjAEdKld&qJe-Irf)$2`bVsO`4F}|)~hEma;ONM-=i#oh?XIoy`*mH`y zunj)kYjR1d^(DWQ&#O&T)cGyrcMX*)fgpoS9=>=(TLpoRE@5nFeoN@Ce%^@QU5C~=f{ib%PK zI8RA0tPV}11vgXH$-v5X#suZFG#a=SY2%<}l_n8hUv4x)(~?*%*rIG0m4ojiF%m*= zs4=*wX=31q(+msmWN92AMrx*-ZwFMVnrLB0W{M1)Tg*>FdZ@p~XFAxDG@rT{hroL?o0s0?NHoC^Vdx zB9z!y6w=)8|N$+h~=Jt;P{Cp^VEb_J8@k>ho_#+$)3X;1063dW;-BKCD|Fft5@At(h MC_lQtyB+HO6=!;a3jhEB delta 515 zcmXZWZ%7ky9LMo}&)eO#yScXA{XE^=b~-PMAbQpYL4x5P=7XXXgdP~>gFTRMa3jjW)1w8-& literal 17 VcmZQR9`5&e=8GFK3}C?i6#zeL1_S^A diff --git a/.gradle/checksums/checksums.lock b/.gradle/checksums/checksums.lock index e80120dc842ecc24e6d2b7aa2980253c20df9096..328a477c6ebc84f7616a7a42eb7e6086feb572aa 100644 GIT binary patch literal 17 UcmZQ(t@rS(Ty1rN0RoN!04Bf$1ONa4 literal 17 UcmZQ(t@rS(Ty1rN0Rnab04B8q`2YX_ diff --git a/.gradle/checksums/sha1-checksums.bin b/.gradle/checksums/sha1-checksums.bin index 4f9676587f75253e2d2cfb3dc1afcf4729e86aa3..44f5da23f35d9c7e32e9c2315d0ff011ed9ec5bf 100644 GIT binary patch delta 315 zcmdnLk8$Tg#tkMCj3tvzB@6_b*OafaTefTxM{Nyc&X#B&? zTct9X1^zwMEjD^N?*vqB^JG!E2LkdZCmpq_+vEvVS~~fyT!w(^VfEkFrmc;G3a*~) zD}O@3OWecl@~*S%q1wea^C~zn3M6cfeR!qm$xf(J`^~P3#*B;~H!A)R-)Nx0yV=p> zpV(yEXg(S4zhA=R9ayekzuDRy{5!s{JI^zTfq}6!)KwvQa-zQxOQ@@^_~f(xQj?Wq zB!HaDe<#<6N=-fr<~(eg{4hppa(b);PpIq1I*4V=pC-2kdT2D;#Lc!&niJ12>A&lg Yjmlc-P&q}g!ERuu`tjLvq4Dy76OwPrT_o{ diff --git a/src/main/java/top/iseason/steelSafe/BreakingProtection.java b/src/main/java/top/iseason/steelSafe/BreakingProtection.java index ad0f5f9..1e80d06 100644 --- a/src/main/java/top/iseason/steelSafe/BreakingProtection.java +++ b/src/main/java/top/iseason/steelSafe/BreakingProtection.java @@ -10,7 +10,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockBurnEvent; import org.bukkit.event.block.BlockExplodeEvent; import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.event.entity.EntityExplodeEvent; diff --git a/src/main/java/top/iseason/steelSafe/CreateCommand.java b/src/main/java/top/iseason/steelSafe/CreateCommand.java index 1757513..c979b18 100644 --- a/src/main/java/top/iseason/steelSafe/CreateCommand.java +++ b/src/main/java/top/iseason/steelSafe/CreateCommand.java @@ -10,18 +10,13 @@ import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.entity.Player; - - -import org.bukkit.util.BlockIterator; - +import org.bukkit.entity.*; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; - -import static org.bukkit.Material.*; import static top.iseason.steelSafe.OpenWithKey.isLocked; +import static top.iseason.steelSafe.OpenWithKey.targetCheck; public class CreateCommand implements CommandExecutor, TabExecutor { @@ -46,22 +41,13 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String sender.sendMessage(ChatColor.DARK_RED + "获取玩家" + Name + "失败,请确认玩家是否在线!"); return false; } - Block targetBlock = getLookingAtBlock((Player) sender); - if (targetBlock.getType() != CHEST && targetBlock.getType() != TRAPPED_CHEST) { - String message = Main.getInstance().getConfig().getString("NotChest"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',message)); - return true; - } - if (!Dependency.pluginCheck(targetBlock, ((Player) sender).getPlayer())) { - String Message = Main.getInstance().getConfig().getString("HaveNoPermission"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',Message)); + Block targetBlock = ((Player) sender).getTargetBlock(null,5); + if(targetCheck(targetBlock,(Player)sender)){ return true; } String World = targetBlock.getWorld().getName(); BlockFace chestface = OpenCheck.getRelativeChestFace(targetBlock); FileConfiguration steelSafeList = Main.getSteelSafesList(); - - if (chestface != null) { Block relativechest = targetBlock.getRelative(chestface); String data1 = World + "," + targetBlock.getLocation().getBlockX() + "," + targetBlock.getLocation().getBlockY() + "," + targetBlock.getLocation().getBlockZ(); @@ -188,7 +174,7 @@ private boolean createCheck(CommandSender sender, String arg, String data, Strin return true; } - + /*todo:检查可用性,如果必须则启用。 public static Block getLookingAtBlock(Player event) { //获取玩家所看的方块 BlockIterator iter = new BlockIterator(event, 5); Block lastBlock = iter.next(); @@ -197,9 +183,9 @@ public static Block getLookingAtBlock(Player event) { //获取玩家所看的 if (lastBlock.getType() == AIR || lastBlock.isLiquid()) //忽略空气和液体 continue; break; - } + }; return lastBlock; - } + }*/ } diff --git a/src/main/java/top/iseason/steelSafe/Dependency.java b/src/main/java/top/iseason/steelSafe/Dependency.java index 71075e8..b21699d 100644 --- a/src/main/java/top/iseason/steelSafe/Dependency.java +++ b/src/main/java/top/iseason/steelSafe/Dependency.java @@ -9,7 +9,6 @@ import com.sk89q.worldguard.bukkit.WorldGuardPlugin; - import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.entity.Player; @@ -62,6 +61,8 @@ public static boolean pluginCheck(Block block, Player player) { if (!(plot.isOwner(uuid) || plot.getTrusted().contains(uuid) || plot.getMembers().contains(uuid))) { return false; } + }else{ + return false; } } if (worldguard != null) { diff --git a/src/main/java/top/iseason/steelSafe/Main.java b/src/main/java/top/iseason/steelSafe/Main.java index da62206..3c57c03 100644 --- a/src/main/java/top/iseason/steelSafe/Main.java +++ b/src/main/java/top/iseason/steelSafe/Main.java @@ -1,6 +1,5 @@ package top.iseason.steelSafe; -import com.plotsquared.core.command.Chat; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; diff --git a/src/main/java/top/iseason/steelSafe/OpenCheck.java b/src/main/java/top/iseason/steelSafe/OpenCheck.java index c2755ee..9c92957 100644 --- a/src/main/java/top/iseason/steelSafe/OpenCheck.java +++ b/src/main/java/top/iseason/steelSafe/OpenCheck.java @@ -12,12 +12,10 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEvent; - import static org.bukkit.Material.CHEST; import static org.bukkit.Material.TRAPPED_CHEST; import static org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK; import static top.iseason.steelSafe.OpenWithKey.isLocked; -import static top.iseason.steelSafe.CreateCommand.getLookingAtBlock; public class OpenCheck implements Listener { @@ -25,7 +23,7 @@ public class OpenCheck implements Listener { public void openChestCheck(PlayerInteractEvent e) { //todo:在打开的瞬间移开可能会绕过取消事件,待解决。 if (e.getAction() == RIGHT_CLICK_BLOCK && ((e.getClickedBlock().getType() == CHEST) || (e.getClickedBlock().getType() == TRAPPED_CHEST))) { FileConfiguration steelSafeList = Main.getSteelSafesList(); - Block targetBlock = getLookingAtBlock(e.getPlayer()); + Block targetBlock = e.getClickedBlock(); if (targetBlock.getType() != CHEST && targetBlock.getType() != TRAPPED_CHEST) { e.getPlayer().closeInventory(); e.setCancelled(true); @@ -41,8 +39,8 @@ public void openChestCheck(PlayerInteractEvent e) { //todo:在打开的瞬间 } e.getPlayer().closeInventory(); e.setCancelled(true); - String message = Message.replace(Main.getInstance().getConfig().getString("TryToOpen"),"%player%",steelSafeList.getString(data1.concat(".owner"))) ; - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&',message)); + String message = Message.replace(Main.getInstance().getConfig().getString("TryToOpen"), "%player%", steelSafeList.getString(data1.concat(".owner"))); + e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', message)); return; } return; @@ -54,8 +52,8 @@ public void openChestCheck(PlayerInteractEvent e) { //todo:在打开的瞬间 } e.getPlayer().closeInventory(); e.setCancelled(true); - String message = Message.replace(Main.getInstance().getConfig().getString("TryToOpen"),"%player%",steelSafeList.getString(data1.concat(".owner"))) ; - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&',message)); + String message = Message.replace(Main.getInstance().getConfig().getString("TryToOpen"), "%player%", steelSafeList.getString(data1.concat(".owner"))); + e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', message)); return; } else if (isLocked(relativechest)) { if (Main.getInstance().getConfig().getBoolean("OpOpen")) { @@ -64,8 +62,8 @@ public void openChestCheck(PlayerInteractEvent e) { //todo:在打开的瞬间 e.getPlayer().closeInventory(); e.setCancelled(true); String data2 = World + "," + relativechest.getLocation().getBlockX() + "," + relativechest.getLocation().getBlockY() + "," + relativechest.getLocation().getBlockZ(); - String message = Message.replace(Main.getInstance().getConfig().getString("TryToOpen"),"%player%",steelSafeList.getString(data2.concat(".owner"))) ; - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&',message)); + String message = Message.replace(Main.getInstance().getConfig().getString("TryToOpen"), "%player%", steelSafeList.getString(data2.concat(".owner"))); + e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', message)); return; } } diff --git a/src/main/java/top/iseason/steelSafe/OpenWithKey.java b/src/main/java/top/iseason/steelSafe/OpenWithKey.java index 0605d88..1cc5a52 100644 --- a/src/main/java/top/iseason/steelSafe/OpenWithKey.java +++ b/src/main/java/top/iseason/steelSafe/OpenWithKey.java @@ -24,21 +24,13 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String if (args.length != 1) { return false; } - Block targetBlock = CreateCommand.getLookingAtBlock((Player) sender); - if (targetBlock.getType() != CHEST && targetBlock.getType() != TRAPPED_CHEST) { - String message = Main.getInstance().getConfig().getString("NotChest"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',message)); - return true; - } - if (!Dependency.pluginCheck(targetBlock, ((Player) sender).getPlayer())) { - String message = Main.getInstance().getConfig().getString("HaveNoPermission"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',message)); - + Block targetBlock = ((Player) sender).getTargetBlock(null, 5); + if (targetCheck(targetBlock, (Player) sender)) { return true; } BlockFace chestface = OpenCheck.getRelativeChestFace(targetBlock); if (!isLocked(targetBlock)) { - String unLocked = ChatColor.translateAlternateColorCodes('&',Main.getInstance().getConfig().getString("UnLocked")); + String unLocked = ChatColor.translateAlternateColorCodes('&', Main.getInstance().getConfig().getString("UnLocked")); if (chestface == null) { sender.sendMessage(unLocked); @@ -53,7 +45,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String return removeChestWithCommand(sender, relative); } else { String message = Main.getInstance().getConfig().getString("PassWordError"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',message)); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', message)); return true; } } @@ -62,7 +54,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String return removeChestWithCommand(sender, targetBlock); } else { String message = Main.getInstance().getConfig().getString("PassWordError"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',message)); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', message)); return true; } } @@ -76,7 +68,7 @@ public static boolean removeChestWithCommand(CommandSender sender, Block targetB return true; } String message = Main.getInstance().getConfig().getString("PassWordCorrect"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',message)); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', message)); return true; } @@ -120,4 +112,19 @@ public static boolean isLocked(Block block) { return steelSafeList.contains(key); } + + public static boolean targetCheck(Block targetBlock, Player player) {//检查是否具有目标的权限 + if (targetBlock.getType() != CHEST && targetBlock.getType() != TRAPPED_CHEST) { + String message = Main.getInstance().getConfig().getString("NotChest"); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', message)); + return true; + } + if (!Dependency.pluginCheck(targetBlock, player)) { + String message = Main.getInstance().getConfig().getString("HaveNoPermission"); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', message)); + + return true; + } + return false; + } } diff --git a/src/main/java/top/iseason/steelSafe/RemoveCommand.java b/src/main/java/top/iseason/steelSafe/RemoveCommand.java index d6da234..8a68a54 100644 --- a/src/main/java/top/iseason/steelSafe/RemoveCommand.java +++ b/src/main/java/top/iseason/steelSafe/RemoveCommand.java @@ -17,7 +17,7 @@ public class RemoveCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (sender.isOp() | sender.hasPermission("steelsafe.admin")) { - Block targetBlock = CreateCommand.getLookingAtBlock((Player) sender); + Block targetBlock = ((Player) sender).getTargetBlock(null,5); if (targetBlock.getType() == CHEST || targetBlock.getType() == TRAPPED_CHEST) { if (isLocked(targetBlock)) { return removeChestWithCommand(sender, targetBlock); @@ -51,4 +51,5 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String return true; } } + }