Explorar o código

Make PartyJoinCommand use PartyManager directly for lookup

riking %!s(int64=11) %!d(string=hai) anos
pai
achega
eb10db5b06

+ 11 - 18
src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java

@@ -14,26 +14,23 @@ import com.gmail.nossr50.util.commands.CommandUtils;
 import com.gmail.nossr50.util.player.UserManager;
 import com.gmail.nossr50.util.player.UserManager;
 
 
 public class PartyJoinCommand implements CommandExecutor {
 public class PartyJoinCommand implements CommandExecutor {
-    private McMMOPlayer mcMMOTarget;
-    private Player target;
-    private Party targetParty;
-
     private McMMOPlayer mcMMOPlayer;
     private McMMOPlayer mcMMOPlayer;
     private Player player;
     private Player player;
+    private Party targetParty;
 
 
     @Override
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         switch (args.length) {
         switch (args.length) {
             case 2:
             case 2:
             case 3:
             case 3:
+                player = (Player) sender;
+                mcMMOPlayer = UserManager.getPlayer(player);
+
                 // Verify target exists and is in a different party than the player
                 // Verify target exists and is in a different party than the player
                 if (!canJoinParty(sender, args[1])) {
                 if (!canJoinParty(sender, args[1])) {
                     return true;
                     return true;
                 }
                 }
 
 
-                mcMMOPlayer = UserManager.getPlayer((Player) sender);
-                player = mcMMOPlayer.getPlayer();
-
                 String password = getPassword(args);
                 String password = getPassword(args);
 
 
                 // Make sure party passwords match
                 // Make sure party passwords match
@@ -67,25 +64,21 @@ public class PartyJoinCommand implements CommandExecutor {
     }
     }
 
 
     private boolean canJoinParty(CommandSender sender, String targetName) {
     private boolean canJoinParty(CommandSender sender, String targetName) {
-        targetName = Misc.getMatchedPlayerName(targetName);
-        mcMMOTarget = UserManager.getPlayer(targetName);
-
-        if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
+        // Short-circuit for joining your own party
+        if (sender.getName().equalsIgnoreCase(targetName)) {
+            sender.sendMessage(LocaleLoader.getString("Party.Join.Self"));
             return false;
             return false;
         }
         }
 
 
-        target = mcMMOTarget.getPlayer();
+        targetParty = PartyManager.getPlayerParty(targetName);
 
 
-        if (!mcMMOTarget.inParty()) {
+        if (targetParty == null) {
             sender.sendMessage(LocaleLoader.getString("Party.PlayerNotInParty", targetName));
             sender.sendMessage(LocaleLoader.getString("Party.PlayerNotInParty", targetName));
             return false;
             return false;
         }
         }
 
 
-        player = (Player) sender;
-        mcMMOPlayer = UserManager.getPlayer(player);
-        targetParty = mcMMOTarget.getParty();
-
-        if (player.equals(target) || (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty))) {
+        // Can't join your own party
+        if (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty)) {
             sender.sendMessage(LocaleLoader.getString("Party.Join.Self"));
             sender.sendMessage(LocaleLoader.getString("Party.Join.Self"));
             return false;
             return false;
         }
         }

+ 1 - 3
src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java

@@ -96,9 +96,7 @@ public final class CommandUtils {
             return true;
             return true;
         }
         }
 
 
-        PlayerProfile profile = new PlayerProfile(playerName, false);
-
-        if (unloadedProfile(sender, profile)) {
+        if (unloadedProfile(sender, mcMMOPlayer.getProfile())) {
             return false;
             return false;
         }
         }