فهرست منبع

Don't use a class variable here.

GJ 11 سال پیش
والد
کامیت
8369ae4616
1فایلهای تغییر یافته به همراه18 افزوده شده و 14 حذف شده
  1. 18 14
      src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java

+ 18 - 14
src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java

@@ -23,26 +23,28 @@ import com.gmail.nossr50.util.player.UserManager;
 import com.google.common.collect.ImmutableList;
 
 public class MctopCommand implements TabExecutor {
-    private SkillType skill;
-
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+        SkillType skill = null;
+
         switch (args.length) {
             case 0:
-                display(1, sender, command);
+                display(1, skill, sender, command);
                 return true;
 
             case 1:
                 if (StringUtils.isInt(args[0])) {
-                    display(Math.abs(Integer.parseInt(args[0])), sender, command);
+                    display(Math.abs(Integer.parseInt(args[0])), skill, sender, command);
                     return true;
                 }
 
-                if (!extractSkill(sender, args[0])) {
+                skill = extractSkill(sender, args[0]);
+
+                if (skill == null) {
                     return true;
                 }
 
-                display(1, sender, command);
+                display(1, skill, sender, command);
                 return true;
 
             case 2:
@@ -50,11 +52,13 @@ public class MctopCommand implements TabExecutor {
                     return true;
                 }
 
-                if (!extractSkill(sender, args[0])) {
+                skill = extractSkill(sender, args[0]);
+
+                if (skill == null) {
                     return true;
                 }
 
-                display(Math.abs(Integer.parseInt(args[1])), sender, command);
+                display(Math.abs(Integer.parseInt(args[1])), skill, sender, command);
                 return true;
 
             default:
@@ -72,7 +76,7 @@ public class MctopCommand implements TabExecutor {
         }
     }
 
-    private void display(int page, CommandSender sender, Command command) {
+    private void display(int page, SkillType skill, CommandSender sender, Command command) {
         if (skill != null && !Permissions.mctop(sender, skill)) {
             sender.sendMessage(command.getPermissionMessage());
             return;
@@ -99,17 +103,17 @@ public class MctopCommand implements TabExecutor {
         new MctopCommandAsyncTask(page, skill, sender, useBoard, useChat).runTaskAsynchronously(mcMMO.p);
     }
 
-    private boolean extractSkill(CommandSender sender, String skillName) {
+    private SkillType extractSkill(CommandSender sender, String skillName) {
         if (CommandUtils.isInvalidSkill(sender, skillName)) {
-            return false;
+            return null;
         }
 
-        skill = SkillType.getSkill(skillName);
+        SkillType skill = SkillType.getSkill(skillName);
 
         if (CommandUtils.isChildSkill(sender, skill)) {
-            return false;
+            return null;
         }
 
-        return true;
+        return skill;
     }
 }