Refactor so a Teleporter can be a CommandSender

This commit is contained in:
Eric Stokes 2011-09-18 10:03:59 -06:00
parent 43fcbc9af9
commit 74aba9d6e8
2 changed files with 13 additions and 9 deletions

View File

@ -65,7 +65,11 @@ public class MVPermissions implements PermissionsInterface {
return returnValue;
}
public boolean canTravelFromLocation(Player teleporter, Location location) {
public boolean canTravelFromLocation(CommandSender sender, Location location) {
if(!(sender instanceof Player)) {
return true;
}
Player teleporter = (Player) sender;
if (!this.worldMgr.isMVWorld(location.getWorld().getName())) {
return false;
}
@ -94,7 +98,11 @@ public class MVPermissions implements PermissionsInterface {
return this.hasPermission(p, "multiverse.access." + worldName, false);
}
public Boolean canEnterDestination(Player p, MVDestination d) {
public Boolean canEnterDestination(CommandSender sender, MVDestination d) {
if(!(sender instanceof Player)) {
return true;
}
Player p = (Player) sender;
if (d == null || d.getLocation(p) == null) {
return false;
}

View File

@ -44,7 +44,7 @@ public class TeleportCommand extends MultiverseCommand {
@Override
public void runCommand(CommandSender sender, List<String> args) {
// Check if the command was sent from a Player.
Player teleporter = null;
CommandSender teleporter = sender;
Player teleportee = null;
if (sender instanceof Player) {
teleporter = (Player) sender;
@ -66,7 +66,6 @@ public class TeleportCommand extends MultiverseCommand {
sender.sendMessage("From the console, you must specify a player to teleport");
return;
}
teleporter = (Player) sender;
teleportee = (Player) sender;
}
// Special case for cannons:
@ -110,9 +109,9 @@ public class TeleportCommand extends MultiverseCommand {
return;
} else if (teleporter != null && !this.plugin.getPermissions().canTravelFromLocation(teleporter, d.getLocation(teleportee))) {
if (teleportee.equals(teleporter)) {
teleporter.sendMessage("DOH! Doesn't look like you can get to " + ChatColor.RED + "THERE from " + ChatColor.GREEN + teleporter.getWorld().getName());
teleporter.sendMessage("DOH! Doesn't look like you can get to " + ChatColor.RED + "THERE from " + ChatColor.GREEN + ((Player)teleporter).getWorld().getName());
} else {
teleporter.sendMessage("DOH! Doesn't look like " + ChatColor.GREEN + teleporter.getWorld().getName() + " can get to " + ChatColor.RED + "THERE from where they are...");
teleporter.sendMessage("DOH! Doesn't look like " + ChatColor.GREEN + ((Player)teleporter).getWorld().getName() + " can get to " + ChatColor.RED + "THERE from where they are...");
}
return;
}
@ -137,9 +136,6 @@ public class TeleportCommand extends MultiverseCommand {
}
private boolean checkSendPermissions(CommandSender teleporter, Player teleportee, MVDestination destination) {
if (teleporter == null) {
return true;
}
if (teleporter.equals(teleportee)) {
if(!this.plugin.getPermissions().hasPermission(teleporter, "multiverse.teleport.self."+destination.getIdentifier(),true)) {
teleporter.sendMessage("You don't have permission to teleport yourself to a " + ChatColor.GREEN + destination.getType() + " Destination.");