1
0
mirror of https://github.com/mcMMO-Dev/mcMMO.git synced 2026-02-18 17:53:00 +01:00

Compare commits

...

5 Commits

Author SHA1 Message Date
riking
13f0f396d7 Rearrange checks in PartyInviteCommand 2013-10-28 13:31:22 -07:00
riking
31e04a2d91 ToggleCommand shouldn't hit the database 2013-10-28 13:30:43 -07:00
riking
2fcd3904dc In Kraken command, use getPlayer(name, true) and a null-check 2013-10-28 13:20:26 -07:00
riking
92fa2782d0 Have PtpCommand use getPlayerExact to check for offline 2013-10-28 13:12:57 -07:00
riking
eb10db5b06 Make PartyJoinCommand use PartyManager directly for lookup 2013-10-28 13:04:48 -07:00
7 changed files with 49 additions and 62 deletions

View File

@@ -11,11 +11,10 @@ import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil; import org.bukkit.util.StringUtil;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.commands.CommandUtils;
import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.player.UserManager;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
public class KrakenCommand implements TabExecutor { public class KrakenCommand implements TabExecutor {
@@ -41,10 +40,10 @@ public class KrakenCommand implements TabExecutor {
return true; return true;
} }
String playerName = Misc.getMatchedPlayerName(args[0]); McMMOPlayer mcMMOPlayer = UserManager.getPlayer(args[0], true);
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName);
if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) { if (mcMMOPlayer == null) {
sender.sendMessage(LocaleLoader.getString("Commands.Offline"));
return true; return true;
} }

View File

@@ -11,10 +11,9 @@ import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil; import org.bukkit.util.StringUtil;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.commands.CommandUtils;
import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.player.UserManager;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
public abstract class ToggleCommand implements TabExecutor { public abstract class ToggleCommand implements TabExecutor {
@@ -46,19 +45,15 @@ public abstract class ToggleCommand implements TabExecutor {
return true; return true;
} }
String playerName = Misc.getMatchedPlayerName(args[0]); mcMMOPlayer = UserManager.getPlayer(args[0], true);
mcMMOPlayer = UserManager.getPlayer(playerName);
if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) { if (mcMMOPlayer == null) {
player.sendMessage(LocaleLoader.getString("Commands.Offline"));
return true; return true;
} }
player = mcMMOPlayer.getPlayer(); player = mcMMOPlayer.getPlayer();
if (CommandUtils.isOffline(sender, player)) {
return true;
}
applyCommandAction(); applyCommandAction();
sendSuccessMessage(sender); sendSuccessMessage(sender);
return true; return true;

View File

@@ -9,34 +9,23 @@ import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.party.PartyManager;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.commands.CommandUtils;
import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.player.UserManager;
public class PartyInviteCommand implements CommandExecutor { public class PartyInviteCommand implements CommandExecutor {
@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) { if (CommandUtils.noConsoleUsage(sender)) {
case 2:
String targetName = Misc.getMatchedPlayerName(args[1]);
McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName, true);
if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
return false; return false;
} }
switch (args.length) {
Player target = mcMMOTarget.getPlayer(); case 2:
Player player = (Player) sender; Player player = (Player) sender;
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
String playerName = player.getName(); String playerName = player.getName();
if (player.equals(target)) { if (playerName.equalsIgnoreCase(args[1])) {
sender.sendMessage(LocaleLoader.getString("Party.Invite.Self")); player.sendMessage(LocaleLoader.getString("Party.Invite.Self"));
return true;
}
if (PartyManager.inSameParty(player, target)) {
sender.sendMessage(LocaleLoader.getString("Party.Player.InSameParty", targetName));
return true; return true;
} }
@@ -45,6 +34,20 @@ public class PartyInviteCommand implements CommandExecutor {
return true; return true;
} }
McMMOPlayer mcMMOTarget = UserManager.getPlayer(args[1], true);
if (mcMMOTarget == null) {
player.sendMessage(LocaleLoader.getString("Commands.Offline"));
return true;
}
Player target = mcMMOTarget.getPlayer();
if (PartyManager.inSameParty(player, target)) {
sender.sendMessage(LocaleLoader.getString("Party.Player.InSameParty", target.getName()));
return true;
}
Party playerParty = mcMMOPlayer.getParty(); Party playerParty = mcMMOPlayer.getParty();
mcMMOTarget.setPartyInvite(playerParty); mcMMOTarget.setPartyInvite(playerParty);

View File

@@ -9,31 +9,26 @@ import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.party.PartyManager;
import com.gmail.nossr50.util.Misc;
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 +62,21 @@ public class PartyJoinCommand implements CommandExecutor {
} }
private boolean canJoinParty(CommandSender sender, String targetName) { private boolean canJoinParty(CommandSender sender, String targetName) {
targetName = Misc.getMatchedPlayerName(targetName); // Short-circuit for joining your own party
mcMMOTarget = UserManager.getPlayer(targetName); if (sender.getName().equalsIgnoreCase(targetName)) {
sender.sendMessage(LocaleLoader.getString("Party.Join.Self"));
if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
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; // Can't join your own party
mcMMOPlayer = UserManager.getPlayer(player); if (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty)) {
targetParty = mcMMOTarget.getParty();
if (player.equals(target) || (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty))) {
sender.sendMessage(LocaleLoader.getString("Party.Join.Self")); sender.sendMessage(LocaleLoader.getString("Party.Join.Self"));
return false; return false;
} }

View File

@@ -38,7 +38,7 @@ public class PtpAcceptCommand implements CommandExecutor {
Player target = mcMMOPlayer.getPtpRequest(); Player target = mcMMOPlayer.getPtpRequest();
mcMMOPlayer.removePtpRequest(); mcMMOPlayer.removePtpRequest();
if (!PtpCommand.canTeleport(sender, player, target.getName())) { if (!PtpCommand.canTeleport(player, target.getName())) {
return true; return true;
} }

View File

@@ -88,7 +88,7 @@ public class PtpCommand implements TabExecutor {
} }
} }
sendTeleportRequest(sender, player, Misc.getMatchedPlayerName(args[0])); sendTeleportRequest(player, Misc.getMatchedPlayerName(args[0]));
return true; return true;
default: default:
@@ -113,8 +113,8 @@ public class PtpCommand implements TabExecutor {
} }
} }
private void sendTeleportRequest(CommandSender sender, Player player, String targetName) { private void sendTeleportRequest(Player player, String targetName) {
if (!canTeleport(sender, player, targetName)) { if (!canTeleport(player, targetName)) {
return; return;
} }
@@ -132,20 +132,21 @@ public class PtpCommand implements TabExecutor {
target.sendMessage(LocaleLoader.getString("Commands.ptp.Request2", Config.getInstance().getPTPCommandTimeout())); target.sendMessage(LocaleLoader.getString("Commands.ptp.Request2", Config.getInstance().getPTPCommandTimeout()));
} }
protected static boolean canTeleport(CommandSender sender, Player player, String targetName) { protected static boolean canTeleport(Player player, String targetName) {
mcMMOTarget = UserManager.getPlayer(targetName); target = mcMMO.p.getServer().getPlayerExact(targetName);
if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) { if (target == null) {
player.sendMessage(LocaleLoader.getString("Commands.Offline"));
return false; return false;
} }
target = mcMMOTarget.getPlayer();
if (player.equals(target)) { if (player.equals(target)) {
player.sendMessage(LocaleLoader.getString("Party.Teleport.Self")); player.sendMessage(LocaleLoader.getString("Party.Teleport.Self"));
return false; return false;
} }
mcMMOTarget = UserManager.getPlayer(target);
if (!PartyManager.inSameParty(player, target)) { if (!PartyManager.inSameParty(player, target)) {
player.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName)); player.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName));
return false; return false;

View File

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