World arguments

The WorldArgument class allows a command sender to refer to a loaded Bukkit World.
Example - Unloading world
Say we want to unload a world on our Minecraft server. We want to create a command with the following syntax:
/unloadworld <world>
Using the world from the WorldArgument, we can then unload the world safely using Bukkit.getServer().unloadWorld() and passing true (to save chunks):
new CommandAPICommand("unloadworld")
.withArguments(new WorldArgument("world"))
.executes((sender, args) -> {
World world = (World) args.get("world");
// Unload the world (and save the world's chunks)
Bukkit.getServer().unloadWorld(world, true);
})
.register();
CommandAPICommand("unloadworld")
.withArguments(WorldArgument("world"))
.executes(CommandExecutor { sender, args ->
val world = args["world"] as World
// Unload the world (and save the world's chunks)
Bukkit.getServer().unloadWorld(world, true)
})
.register()
commandAPICommand("unloadworld") {
worldArgument("world")
anyExecutor { sender, args ->
val world = args["world"] as World
// Unload the world (and save the world's chunks)
Bukkit.getServer().unloadWorld(world, true)
}
}