Installed a LocalCommandSender class atop LocalPlayer in the hierarchy and moved the relevant methods there.

Also changed equals to work on LocalCommandSender instead of LocalPlayer.
This commit is contained in:
TomyLobo 2011-12-13 03:27:06 +01:00
parent f5c6678da6
commit 3960726d7a
2 changed files with 119 additions and 110 deletions

View File

@ -0,0 +1,117 @@
package com.sk89q.worldedit;
import java.io.File;
public abstract class LocalCommandSender {
/**
* Server.
*/
protected ServerInterface server;
public LocalCommandSender(ServerInterface server) {
this.server = server;
}
/**
* Get the name of the player.
*
* @return String
*/
public abstract String getName();
/**
* Print a message.
*
* @param msg
*/
public abstract void printRaw(String msg);
/**
* Print a WorldEdit message.
*
* @param msg
*/
public abstract void printDebug(String msg);
/**
* Print a WorldEdit message.
*
* @param msg
*/
public abstract void print(String msg);
/**
* Print a WorldEdit error.
*
* @param msg
*/
public abstract void printError(String msg);
/**
* Get a player's list of groups.
*
* @return
*/
public abstract String[] getGroups();
/**
* Checks if a player has permission.
*
* @param perm
* @return
*/
public abstract boolean hasPermission(String perm);
public void checkPermission(String permission) throws WorldEditPermissionException {
if (!hasPermission(permission)) {
throw new WorldEditPermissionException();
}
}
/**
* Open a file open dialog.
*
* @param extensions null to allow all
* @return
*/
public File openFileOpenDialog(String[] extensions) {
printError("File dialogs are not supported in your environment.");
return null;
}
/**
* Open a file save dialog.
*
* @param extensions null to allow all
* @return
*/
public File openFileSaveDialog(String[] extensions) {
printError("File dialogs are not supported in your environment.");
return null;
}
/**
* Returns true if equal.
*
* @param other
* @return whether the other object is equivalent
*/
@Override
public boolean equals(Object other) {
if (!(other instanceof LocalCommandSender)) {
return false;
}
LocalCommandSender other2 = (LocalCommandSender) other;
return other2.getName().equals(getName());
}
/**
* Gets the hash code.
*
* @return hash code
*/
@Override
public int hashCode() {
return getName().hashCode();
}
}

View File

@ -19,7 +19,6 @@
package com.sk89q.worldedit; package com.sk89q.worldedit;
import java.io.File;
import com.sk89q.worldedit.bags.BlockBag; import com.sk89q.worldedit.bags.BlockBag;
import com.sk89q.worldedit.blocks.BlockID; import com.sk89q.worldedit.blocks.BlockID;
import com.sk89q.worldedit.blocks.BlockType; import com.sk89q.worldedit.blocks.BlockType;
@ -31,19 +30,14 @@ import com.sk89q.worldedit.util.TargetBlock;
* *
* @author sk89q * @author sk89q
*/ */
public abstract class LocalPlayer { public abstract class LocalPlayer extends LocalCommandSender {
/**
* Server.
*/
protected ServerInterface server;
/** /**
* Construct the object. * Construct the object.
* *
* @param server * @param server
*/ */
protected LocalPlayer(ServerInterface server) { protected LocalPlayer(ServerInterface server) {
this.server = server; super(server);
} }
/** /**
@ -412,13 +406,6 @@ public abstract class LocalPlayer {
*/ */
public abstract int getItemInHand(); public abstract int getItemInHand();
/**
* Get the name of the player.
*
* @return String
*/
public abstract String getName();
/** /**
* Get the player's position. * Get the player's position.
* *
@ -514,34 +501,6 @@ public abstract class LocalPlayer {
return false; return false;
} }
/**
* Print a message.
*
* @param msg
*/
public abstract void printRaw(String msg);
/**
* Print a WorldEdit message.
*
* @param msg
*/
public abstract void printDebug(String msg);
/**
* Print a WorldEdit message.
*
* @param msg
*/
public abstract void print(String msg);
/**
* Print a WorldEdit error.
*
* @param msg
*/
public abstract void printError(String msg);
/** /**
* Move the player. * Move the player.
* *
@ -560,13 +519,6 @@ public abstract class LocalPlayer {
setPosition(pos, (float) getPitch(), (float) getYaw()); setPosition(pos, (float) getPitch(), (float) getYaw());
} }
/**
* Get a player's list of groups.
*
* @return
*/
public abstract String[] getGroups();
/** /**
* Get this player's block bag. * Get this player's block bag.
* *
@ -574,36 +526,6 @@ public abstract class LocalPlayer {
*/ */
public abstract BlockBag getInventoryBlockBag(); public abstract BlockBag getInventoryBlockBag();
/**
* Checks if a player has permission.
*
* @param perm
* @return
*/
public abstract boolean hasPermission(String perm);
/**
* Open a file open dialog.
*
* @param extensions null to allow all
* @return
*/
public File openFileOpenDialog(String[] extensions) {
printError("File dialogs are not supported in your environment.");
return null;
}
/**
* Open a file save dialog.
*
* @param extensions null to allow all
* @return
*/
public File openFileSaveDialog(String[] extensions) {
printError("File dialogs are not supported in your environment.");
return null;
}
/** /**
* Returns true if the player can destroy bedrock. * Returns true if the player can destroy bedrock.
* *
@ -627,34 +549,4 @@ public abstract class LocalPlayer {
public void dispatchCUIHandshake() { public void dispatchCUIHandshake() {
} }
/**
* Returns true if equal.
*
* @param other
* @return whether the other object is equivalent
*/
@Override
public boolean equals(Object other) {
if (!(other instanceof LocalPlayer)) {
return false;
}
LocalPlayer other2 = (LocalPlayer) other;
return other2.getName().equals(getName());
}
/**
* Gets the hash code.
*
* @return hash code
*/
@Override
public int hashCode() {
return getName().hashCode();
}
public void checkPermission(String permission) throws WorldEditPermissionException {
if (!hasPermission(permission)) {
throw new WorldEditPermissionException();
}
}
} }