allowed partial name matching

This commit is contained in:
Tahg 2011-01-17 15:50:37 -05:00
parent ca9d523646
commit 42099e7379

View File

@ -17,12 +17,12 @@ import org.bukkit.plugin.SimpleCommandManager;
import org.bukkit.plugin.SimplePluginManager; import org.bukkit.plugin.SimplePluginManager;
import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.plugin.java.JavaPluginLoader;
public final class CraftServer implements Server { public final class CraftServer implements Server
{
private final String serverName = "Craftbukkit"; private final String serverName = "Craftbukkit";
private final String serverVersion = "1.2_01"; private final String serverVersion = "1.2_01";
private final PluginManager pluginManager = new SimplePluginManager(this); private final PluginManager pluginManager = new SimplePluginManager(this);
private final CommandManager commandManager = new SimpleCommandManager(); private final CommandManager commandManager = new SimpleCommandManager();
protected final MinecraftServer console; protected final MinecraftServer console;
protected final ServerConfigurationManager server; protected final ServerConfigurationManager server;
@ -32,9 +32,9 @@ public final class CraftServer implements Server {
pluginManager.RegisterInterface(JavaPluginLoader.class); pluginManager.RegisterInterface(JavaPluginLoader.class);
} }
public void loadPlugins() { public void loadPlugins() {
File pluginFolder = (File)console.options.valueOf("plugins"); File pluginFolder = (File) console.options.valueOf("plugins");
if (pluginFolder.exists()) { if (pluginFolder.exists()) {
try { try {
@ -42,7 +42,7 @@ public final class CraftServer implements Server {
for (Plugin plugin : plugins) { for (Plugin plugin : plugins) {
if (commandManager.registerCommands(plugin)) { if (commandManager.registerCommands(plugin)) {
pluginManager.enablePlugin(plugin); pluginManager.enablePlugin(plugin);
} else { } else {
Logger.getLogger(CraftServer.class.getName()).log(Level.SEVERE, "Plugin " + plugin.getDescription().getName() + " failed to load. Reason: Requested commands already in use."); Logger.getLogger(CraftServer.class.getName()).log(Level.SEVERE, "Plugin " + plugin.getDescription().getName() + " failed to load. Reason: Requested commands already in use.");
} }
@ -77,15 +77,22 @@ public final class CraftServer implements Server {
public Player getPlayer(final String name) { public Player getPlayer(final String name) {
Player[] players = getOnlinePlayers(); Player[] players = getOnlinePlayers();
Player found = null;
String lowerName = name.toLowerCase();
int delta = Integer.MAX_VALUE;
for (Player player : players) { for (Player player : players) {
if (player.getName().equalsIgnoreCase(name)) { if (player.getName().toLowerCase().startsWith(lowerName)) {
return player; int curDelta = player.getName().length() - lowerName.length();
if(curDelta == 0) break;
if (curDelta < delta) {
found = player;
delta = curDelta;
}
} }
} }
return found;
return null;
} }
public int broadcastMessage(String message) { public int broadcastMessage(String message) {
Player[] players = getOnlinePlayers(); Player[] players = getOnlinePlayers();
@ -99,10 +106,10 @@ public final class CraftServer implements Server {
public Player getPlayer(final EntityPlayerMP entity) { public Player getPlayer(final EntityPlayerMP entity) {
return entity.a.getPlayer(); return entity.a.getPlayer();
} }
public List<Player> matchPlayer(String partialName) { public List<Player> matchPlayer(String partialName) {
List<Player> matchedPlayers = new ArrayList<Player>(); List<Player> matchedPlayers = new ArrayList<Player>();
for (Player iterPlayer : this.getOnlinePlayers()) { for (Player iterPlayer : this.getOnlinePlayers()) {
String iterPlayerName = iterPlayer.getName(); String iterPlayerName = iterPlayer.getName();
@ -126,7 +133,7 @@ public final class CraftServer implements Server {
} }
public World[] getWorlds() { public World[] getWorlds() {
return new World[] { console.e.getWorld() }; return new World[]{console.e.getWorld()};
} }
public long getTime() { public long getTime() {