public boolean moveClient(int clientID, int channelID, String channelPassword)
	{
		resetLastError();
		
		if (!isConnected())
		{
			saveLastError("moveClient(): Not connected to TS3 server!");
			return false;
		}
		
		HashMap<String, String> hmIn;
		try
		{
			String command = "clientmove clid=" + Integer.toString(clientID) + " cid=" + Integer.toString(channelID);
			
			if (channelPassword != null && channelPassword.length() > 0)
			{
				command += " cpw=" + encodeTS3String(channelPassword);
			}
			
			hmIn = doInternalCommand(command);
			if (!hmIn.get("id").equals("0"))
			{
				saveLastError("moveClient()", hmIn.get("id"), hmIn.get("msg"), hmIn.get("extra_msg"), hmIn.get("failed_permid"));
				return false;
			}
			
			if (clientID == queryCurrentClientID)
			{
				queryCurrentChannelID = channelID;
				queryCurrentChannelPassword = channelPassword;
			}
		}
		catch (Exception e)
		{
			if (DEBUG) e.printStackTrace();
			saveLastError("Exception moveClient(): " + e.toString());
			return false;
		}
		
		return true;
	}