@Override
    public void handleClientRequest(User user, ISFSObject data)
    {
    	trace("Player wants to go to Clan HQ: " + user.getId());
		
    	World world = RoomHelper.getWorld(this);
		ActivePlayer player = world.getPlayer(user);
		if (player == null)
			return;
		
		String clanName = player.getClanName();		
		if (clanName.length() <= 1)
			return;

		player.setInClan(true);
		player.resetInClanTransform();
		
		updateOthers(user, player);
		sendInventory(user, player, player.useUDP);
		sendQuestLog(user, player, player.useUDP);
		
		// Join the user
		Room clanHQ = getParentExtension().getParentZone().getRoomByName(clanName);
		if (clanHQ == null)
		{
			try {
				createClanRoom(getApi(), getParentExtension().getParentZone(), clanName);
			} catch (SFSCreateRoomException e) {
				e.printStackTrace();
				return;
			}
		}
		
		try {
			getApi().joinRoom(user, clanHQ);
			user.subscribeGroup(clanName);
		} catch (SFSJoinRoomException e) {
			e.printStackTrace();
			return;
		}
		trace("Joining clan room...");
		
		user.setPrivilegeId((short) 1);
    }