2010-12-21 15:32:27 +00:00
|
|
|
package org.bukkit;
|
|
|
|
|
2011-06-06 13:23:30 +01:00
|
|
|
import org.bukkit.generator.ChunkGenerator;
|
2011-04-01 16:04:43 +01:00
|
|
|
import com.avaje.ebean.config.ServerConfig;
|
2011-01-15 21:20:59 +00:00
|
|
|
import org.bukkit.entity.Player;
|
2011-04-16 11:34:31 -04:00
|
|
|
import org.bukkit.inventory.Recipe;
|
|
|
|
|
2011-01-07 10:00:00 +00:00
|
|
|
import java.util.List;
|
2011-06-17 04:07:17 +01:00
|
|
|
import java.util.Map;
|
2011-02-20 02:24:47 +00:00
|
|
|
import java.util.logging.Logger;
|
2011-02-28 00:57:32 +00:00
|
|
|
import org.bukkit.command.PluginCommand;
|
2011-01-16 16:30:34 +01:00
|
|
|
|
2011-03-12 17:57:22 +00:00
|
|
|
import org.bukkit.command.CommandSender;
|
2010-12-24 16:41:51 +00:00
|
|
|
import org.bukkit.plugin.PluginManager;
|
2011-05-02 11:31:00 -07:00
|
|
|
import org.bukkit.plugin.ServicesManager;
|
2011-02-02 23:51:52 +00:00
|
|
|
import org.bukkit.scheduler.BukkitScheduler;
|
2010-12-24 16:41:51 +00:00
|
|
|
|
2010-12-21 15:32:27 +00:00
|
|
|
/**
|
|
|
|
* Represents a server implementation
|
|
|
|
*/
|
|
|
|
public interface Server {
|
2011-05-14 23:22:54 +02:00
|
|
|
|
2010-12-21 15:32:27 +00:00
|
|
|
/**
|
|
|
|
* Gets the name of this server implementation
|
|
|
|
*
|
|
|
|
* @return name of this server implementation
|
|
|
|
*/
|
|
|
|
public String getName();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the version string of this server implementation.
|
|
|
|
*
|
|
|
|
* @return version of this server implementation
|
|
|
|
*/
|
|
|
|
public String getVersion();
|
2010-12-22 15:21:16 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets a list of all currently logged in players
|
|
|
|
*
|
|
|
|
* @return An array of Players that are currently online
|
|
|
|
*/
|
|
|
|
public Player[] getOnlinePlayers();
|
2011-02-02 00:02:08 +01:00
|
|
|
|
2011-02-06 13:40:31 +01:00
|
|
|
/**
|
|
|
|
* Get the maximum amount of players which can login to this server
|
|
|
|
*
|
|
|
|
* @return The amount of players this server allows
|
|
|
|
*/
|
|
|
|
public int getMaxPlayers();
|
|
|
|
|
2011-03-12 17:57:22 +00:00
|
|
|
/**
|
|
|
|
* Get the game port that the server runs on
|
|
|
|
*
|
|
|
|
* @return The port number of this servers
|
|
|
|
*/
|
|
|
|
public int getPort();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the IP that this server is bound to or empty string if not specified
|
|
|
|
*
|
|
|
|
* @return The IP string that this server is bound to, otherwise empty string
|
|
|
|
*/
|
|
|
|
public String getIp();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the name of this server
|
|
|
|
*
|
|
|
|
* @return The name of this server
|
|
|
|
*/
|
|
|
|
public String getServerName();
|
|
|
|
|
2011-03-26 01:39:10 -07:00
|
|
|
/**
|
|
|
|
* Get an ID of this server. The ID is a simple generally alphanumeric
|
|
|
|
* ID that can be used for uniquely identifying this server.
|
|
|
|
*
|
|
|
|
* @return The ID of this server
|
|
|
|
*/
|
|
|
|
public String getServerId();
|
|
|
|
|
2011-01-15 13:40:07 -08:00
|
|
|
/**
|
|
|
|
* Broadcast a message to all players.
|
2011-02-02 00:02:08 +01:00
|
|
|
*
|
2011-01-15 13:40:07 -08:00
|
|
|
* @param message the message
|
|
|
|
* @return the number of players
|
|
|
|
*/
|
|
|
|
public int broadcastMessage(String message);
|
2010-12-24 16:41:51 +00:00
|
|
|
|
2011-05-05 16:52:50 -04:00
|
|
|
/**
|
|
|
|
* Gets the name of the update folder. The update folder is used to safely update
|
|
|
|
* plugins at the right moment on a plugin load.
|
|
|
|
*
|
|
|
|
* @return The name of the update folder
|
|
|
|
*/
|
|
|
|
public String getUpdateFolder();
|
|
|
|
|
2011-01-03 00:20:09 +00:00
|
|
|
/**
|
|
|
|
* Gets a player object by the given username
|
|
|
|
*
|
|
|
|
* This method may not return objects for offline players
|
|
|
|
*
|
|
|
|
* @param name Name to look up
|
|
|
|
* @return Player if it was found, otherwise null
|
|
|
|
*/
|
|
|
|
public Player getPlayer(String name);
|
|
|
|
|
2011-01-07 10:00:00 +00:00
|
|
|
/**
|
|
|
|
* Attempts to match any players with the given name, and returns a list
|
|
|
|
* of all possibly matches
|
|
|
|
*
|
|
|
|
* This list is not sorted in any particular order. If an exact match is found,
|
|
|
|
* the returned list will only contain a single result.
|
|
|
|
*
|
|
|
|
* @param name Name to match
|
|
|
|
* @return List of all possible players
|
|
|
|
*/
|
|
|
|
public List<Player> matchPlayer(String name);
|
|
|
|
|
2010-12-24 16:41:51 +00:00
|
|
|
/**
|
|
|
|
* Gets the PluginManager for interfacing with plugins
|
|
|
|
*
|
|
|
|
* @return PluginManager for this Server instance
|
|
|
|
*/
|
|
|
|
public PluginManager getPluginManager();
|
2010-12-27 02:11:52 +00:00
|
|
|
|
2011-02-02 23:51:52 +00:00
|
|
|
/**
|
|
|
|
* Gets the Scheduler for managing scheduled events
|
|
|
|
*
|
|
|
|
* @return Scheduler for this Server instance
|
|
|
|
*/
|
|
|
|
public BukkitScheduler getScheduler();
|
|
|
|
|
2011-05-02 11:31:00 -07:00
|
|
|
/**
|
|
|
|
* Gets a services manager
|
|
|
|
*
|
|
|
|
* @return Services manager
|
|
|
|
*/
|
|
|
|
public ServicesManager getServicesManager();
|
|
|
|
|
2010-12-27 02:11:52 +00:00
|
|
|
/**
|
|
|
|
* Gets a list of all worlds on this server
|
|
|
|
*
|
2011-02-05 19:24:35 +00:00
|
|
|
* @return A list of worlds
|
2010-12-27 02:11:52 +00:00
|
|
|
*/
|
2011-02-05 19:24:35 +00:00
|
|
|
public List<World> getWorlds();
|
2011-02-06 20:47:39 +00:00
|
|
|
|
|
|
|
/**
|
2011-02-08 11:58:28 +00:00
|
|
|
* Creates or loads a world with the given name.
|
|
|
|
* If the world is already loaded, it will just return the equivalent of
|
|
|
|
* getWorld(name)
|
2011-02-06 20:47:39 +00:00
|
|
|
*
|
|
|
|
* @param name Name of the world to load
|
|
|
|
* @param environment Environment type of the world
|
|
|
|
* @return Newly created or loaded World
|
|
|
|
*/
|
|
|
|
public World createWorld(String name, World.Environment environment);
|
2011-01-04 16:23:01 +08:00
|
|
|
|
2011-03-31 21:46:05 +01:00
|
|
|
/**
|
|
|
|
* Creates or loads a world with the given name.
|
|
|
|
* If the world is already loaded, it will just return the equivalent of
|
|
|
|
* getWorld(name)
|
|
|
|
*
|
|
|
|
* @param name Name of the world to load
|
|
|
|
* @param environment Environment type of the world
|
|
|
|
* @param seed Seed value to create the world with
|
|
|
|
* @return Newly created or loaded World
|
|
|
|
*/
|
|
|
|
public World createWorld(String name, World.Environment environment, long seed);
|
|
|
|
|
2011-06-06 13:23:30 +01:00
|
|
|
/**
|
|
|
|
* Creates or loads a world with the given name.
|
|
|
|
* If the world is already loaded, it will just return the equivalent of
|
|
|
|
* getWorld(name)
|
|
|
|
*
|
|
|
|
* @param name Name of the world to load
|
|
|
|
* @param environment Environment type of the world
|
|
|
|
* @param generator ChunkGenerator to use in the construction of the new world
|
|
|
|
* @return Newly created or loaded World
|
|
|
|
*/
|
|
|
|
public World createWorld(String name, World.Environment environment, ChunkGenerator generator);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Creates or loads a world with the given name.
|
|
|
|
* If the world is already loaded, it will just return the equivalent of
|
|
|
|
* getWorld(name)
|
|
|
|
*
|
|
|
|
* @param name Name of the world to load
|
|
|
|
* @param environment Environment type of the world
|
|
|
|
* @param seed Seed value to create the world with
|
|
|
|
* @param generator ChunkGenerator to use in the construction of the new world
|
|
|
|
* @return Newly created or loaded World
|
|
|
|
*/
|
|
|
|
public World createWorld(String name, World.Environment environment, long seed, ChunkGenerator generator);
|
|
|
|
|
2011-06-04 06:46:21 +01:00
|
|
|
/**
|
|
|
|
* Unloads a world with the given name.
|
|
|
|
*
|
|
|
|
* @param name Name of the world to unload
|
|
|
|
* @param save Whether to save the chunks before unloading.
|
|
|
|
* @return Whether the action was Successful
|
|
|
|
*/
|
|
|
|
public boolean unloadWorld(String name, boolean save);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Unloads the given world.
|
|
|
|
*
|
|
|
|
* @param world The world to unload
|
|
|
|
* @param save Whether to save the chunks before unloading.
|
|
|
|
* @return Whether the action was Successful
|
|
|
|
*/
|
|
|
|
public boolean unloadWorld(World world, boolean save);
|
|
|
|
|
2011-02-08 11:58:28 +00:00
|
|
|
/**
|
|
|
|
* Gets the world with the given name
|
|
|
|
*
|
|
|
|
* @param name Name of the world to retrieve
|
|
|
|
* @return World with the given name, or null if none exists
|
|
|
|
*/
|
|
|
|
public World getWorld(String name);
|
|
|
|
|
2011-01-20 03:53:27 +00:00
|
|
|
/**
|
|
|
|
* Reloads the server, refreshing settings and plugin information
|
|
|
|
*/
|
|
|
|
public void reload();
|
2011-02-20 02:24:47 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the primary logger associated with this server instance
|
|
|
|
*
|
|
|
|
* @return Logger associated with this server
|
|
|
|
*/
|
|
|
|
public Logger getLogger();
|
2011-02-28 00:57:32 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets a {@link PluginCommand} with the given name or alias
|
|
|
|
*
|
|
|
|
* @param name Name of the command to retrieve
|
|
|
|
* @return PluginCommand if found, otherwise null
|
|
|
|
*/
|
|
|
|
public PluginCommand getPluginCommand(String name);
|
2011-02-25 21:32:25 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Writes loaded players to disk
|
|
|
|
*/
|
|
|
|
public void savePlayers();
|
2011-03-12 17:57:22 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Dispatches a command on the server, and executes it if found.
|
|
|
|
*
|
|
|
|
* @param cmdLine command + arguments. Example: "test abc 123"
|
|
|
|
* @return targetFound returns false if no target is found.
|
|
|
|
* @throws CommandException Thrown when the executor for the given command fails with an unhandled exception
|
|
|
|
*/
|
|
|
|
public boolean dispatchCommand(CommandSender sender, String commandLine);
|
2011-04-01 16:04:43 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Populates a given {@link ServerConfig} with values attributes to this server
|
|
|
|
*
|
|
|
|
* @param config ServerConfig to populate
|
|
|
|
*/
|
|
|
|
public void configureDbConfig(ServerConfig config);
|
2011-04-16 11:34:31 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Adds a recipe to the crafting manager.
|
|
|
|
* @param recipe The recipe to add.
|
|
|
|
* @return True to indicate that the recipe was added.
|
|
|
|
*/
|
|
|
|
public boolean addRecipe(Recipe recipe);
|
2011-06-17 04:07:17 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets a list of command aliases defined in the server properties.
|
|
|
|
*
|
|
|
|
* @return Map of aliases to command names
|
|
|
|
*/
|
|
|
|
public Map<String, String> getCommandAliases();
|
2011-06-17 04:49:21 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the radius, in blocks, around each worlds spawn point to protect
|
|
|
|
*
|
|
|
|
* @return Spawn radius, or 0 if none
|
|
|
|
*/
|
|
|
|
public int getSpawnRadius();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the radius, in blocks, around each worlds spawn point to protect
|
|
|
|
*
|
|
|
|
* @param value New spawn radius, or 0 if none
|
|
|
|
*/
|
|
|
|
public void setSpawnRadius(int value);
|
2010-12-21 15:32:27 +00:00
|
|
|
}
|