From 417a189f9b1fbd15e4aeeeacfd4c45cbf6203de6 Mon Sep 17 00:00:00 2001 From: 502647092 Date: Mon, 25 Jul 2016 16:55:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=95=BF=E5=BA=A6=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- .../pw/yumc/YumCore/commands/CommandInfo.java | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/java/pw/yumc/YumCore/commands/CommandInfo.java b/src/main/java/pw/yumc/YumCore/commands/CommandInfo.java index 803442b..36f91e9 100644 --- a/src/main/java/pw/yumc/YumCore/commands/CommandInfo.java +++ b/src/main/java/pw/yumc/YumCore/commands/CommandInfo.java @@ -107,23 +107,25 @@ public class CommandInfo { if (method == null) { return false; } - check(cmdArgs); - final Runnable runnable = new Runnable() { - @Override - public void run() { - try { - method.invoke(origin, cmdArgs); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - throw new CommandException(e); + if (check(cmdArgs)) { + final Runnable runnable = new Runnable() { + @Override + public void run() { + try { + method.invoke(origin, cmdArgs); + } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + throw new CommandException(e); + } } + }; + if (async) { + Bukkit.getScheduler().runTaskAsynchronously(P.instance, runnable); + } else { + runnable.run(); } - }; - if (async) { - Bukkit.getScheduler().runTaskAsynchronously(P.instance, runnable); - } else { - runnable.run(); + return true; } - return true; + return false; } /** @@ -185,15 +187,19 @@ public class CommandInfo { Log.toSender(sender, cmdErr); Log.toSender(sender, String.format(cmdUse, cmdArgs.getAlias(), getName(), help.possibleArguments())); Log.toSender(sender, String.format(cmdDes, help.value())); + return false; } if (sender instanceof Player && command.onlyConsole()) { Log.toSender(sender, onlyConsole); + return false; } else if (command.onlyPlayer()) { Log.toSender(sender, onlyPlayer); + return false; } final String perm = command.permission(); if (perm != null && !sender.hasPermission(perm)) { Log.toSender(sender, String.format(losePerm, perm)); + return false; } return true; }