private void registerCommands() {
		getCommand("chteam").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				return getGame(sender).cmdChangeTeam(sender, args);
			}
		});

		getCommand("teamhome").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				return getGame(sender).cmdTeamHome(sender);
			}
		});

		getCommand("battle").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				return getGame(sender).cmdBattle(sender, args);
			}
		});

		getCommand("setperiod").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				return getGame(sender).cmdSetPeriod(sender, args);
			}
		});

		getCommand("settime").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				return getGame(sender).cmdSetTime(sender, args);
			}
		});

		getCommand("rebuildbases").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				return getGame(sender).cmdRebuildBases();
			}
		});

		getCommand("startgame").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				return cmdStartGame(sender, args);
			}
		});

		getCommand("stopgame").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				return cmdStopGame(sender, args);
			}
		});

		getCommand("createworld").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) {
				if(args.length < 1)
					return false;

				final String worldName = args[0];

				// Environment environment = Environment.NORMAL;
				// if(args.length > 1) {
				// try {
				// environment = Environment.valueOf(args[1]);
				// } catch(IllegalArgumentException e) {
				// StringBuilder sb = new StringBuilder();
				// for(Environment env : Environment.values()) {
				// sb.append(env.toString()).append(",");
				// }
				// sender.sendMessage("Not a valid environment, choose from: "+sb.toString());
				// System.out.println("Mcbob.registerCommands().new CommandExecutor() {...}.onCommand(), "+e);
				// return false;
				// }
				// }
				// final Environment env = environment;

				getServer().getScheduler().scheduleSyncDelayedTask(Mcbob.this, new Runnable() {
					public void run() {
						if(getServer().createWorld(WorldCreator.name(worldName)) == null) {
							sender.sendMessage("Could not create world.");
						} else {
							sender.sendMessage("World were created.");
						}
					}
				});

				return true;
			}
		});

		getCommand("removeworld").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				// TODO Auto-generated method stub
				return false;
			}
		});

		getCommand("tpworld").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				World world = null;
				if(args.length > 0)
					world = getServer().getWorld(args[0]);

				if(world == null) {
					sender.sendMessage("World does not exist." + getServer().getWorlds());
					return false;
				}

				Location spawnLocation = world.getSpawnLocation();
				if(sender instanceof Player) {
					sender.sendMessage("Sending you of to the new world");
					((Player)sender).teleport(spawnLocation);
					return true;
				} else {
					sender.sendMessage("You'r not a player");
					return false;
				}
			}
		});

		getCommand("reloadconfig").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				reloadConfig();
				sender.sendMessage("Config reloaded from disk");
				return true;
			}
		});

		getCommand("tpteam").setExecutor(new CommandExecutor() {
			@Override
			public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
				if(!(sender instanceof Player)) {
					return false;
				}

				Team playersTeam;
				if(args.length < 1) {
					playersTeam = getGame(sender).getTeamHandler().getTeam((Player)sender);
				} else {
					playersTeam = getGame(sender).getTeamHandler().getTeam(args[0]);
				}

				((Player)sender).teleport(playersTeam.getHome());

				return true;
			}
		});
	}